diff --git a/go.mod b/go.mod index f558ef154..d611dad80 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/coder/websocket v1.8.14 github.com/confiant-inc/go-socks5 v0.0.0-20210816151940-c1124825b1d6 github.com/creack/pty v1.1.24 - github.com/gin-gonic/gin v1.11.0 + github.com/gin-gonic/gin v1.12.0 github.com/go-chi/chi/v5 v5.2.5 github.com/go-redis/redis/v8 v8.11.5 github.com/hashicorp/yamux v0.1.2 @@ -23,7 +23,7 @@ require ( github.com/skycoin/skywire v1.3.35-0.20260222235451-f11c46808634 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 - golang.org/x/net v0.50.0 + golang.org/x/net v0.51.0 golang.org/x/sys v0.41.0 golang.org/x/term v0.40.0 ) @@ -87,6 +87,7 @@ require ( github.com/ugorji/go/codec v1.3.1 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/valyala/histogram v1.2.0 // indirect + go.mongodb.org/mongo-driver/v2 v2.5.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect go.opentelemetry.io/otel v1.39.0 // indirect diff --git a/go.sum b/go.sum index a8de0cf55..a6bac0e88 100644 --- a/go.sum +++ b/go.sum @@ -63,8 +63,8 @@ github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9 github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= -github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk= -github.com/gin-gonic/gin v1.11.0/go.mod h1:+iq/FyxlGzII0KHiBGjuNn4UNENUlKbGlNmc+W50Dls= +github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= +github.com/gin-gonic/gin v1.12.0/go.mod h1:VxccKfsSllpKshkBWgVgRniFFAzFb9csfngsqANjnLc= github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug= github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -204,6 +204,8 @@ github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OL github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY= github.com/xtaci/smux v1.5.56 h1:Eyv/dUULmkGZZNucLUisnkzJ/4UQ5YZTschhugFBM0U= github.com/xtaci/smux v1.5.56/go.mod h1:IGQ9QYrBphmb/4aTnLEcJby0TNr3NV+OslIOMrX825Q= +go.mongodb.org/mongo-driver/v2 v2.5.0 h1:yXUhImUjjAInNcpTcAlPHiT7bIXhshCTL3jVBkF3xaE= +go.mongodb.org/mongo-driver/v2 v2.5.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= @@ -231,8 +233,8 @@ golang.org/x/arch v0.24.0 h1:qlJ3M9upxvFfwRM51tTg3Yl+8CP9vCC1E7vlFpgv99Y= golang.org/x/arch v0.24.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= -golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= -golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= +golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200428200454-593003d681fa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/pkg/dmsgpty/cli.go b/pkg/dmsgpty/cli.go index cba702228..f1ad51b40 100644 --- a/pkg/dmsgpty/cli.go +++ b/pkg/dmsgpty/cli.go @@ -117,7 +117,10 @@ func (cli *CLI) servePty(ctx context.Context, ptyC *PtyClient, cmd string, args WithField("cmd", fmt.Sprint(append([]string{cmd}, args...))). Debugf("Executing...") - if err := ptyC.Start(cmd, args...); err != nil { + // Capture essential environment variables from the client to pass to the remote PTY + env := cli.captureEnv() + + if err := ptyC.Start(cmd, env, args...); err != nil { return fmt.Errorf("failed to start command on pty: %v", err) } @@ -152,3 +155,31 @@ func (cli *CLI) servePty(ctx context.Context, ptyC *PtyClient, cmd string, args return nil } + +// captureEnv captures essential environment variables from the client to pass to the remote PTY. +// This ensures the remote shell has proper terminal settings. +func (cli *CLI) captureEnv() []string { + // List of environment variables to pass from client to remote PTY + envVars := []string{"TERM", "COLORTERM", "LANG", "LC_ALL"} + var env []string + + for _, name := range envVars { + if val := os.Getenv(name); val != "" { + env = append(env, name+"="+val) + } + } + + // If TERM is not set, default to a sensible value + hasTerm := false + for _, e := range env { + if strings.HasPrefix(e, "TERM=") { + hasTerm = true + break + } + } + if !hasTerm { + env = append(env, "TERM=xterm-256color") + } + + return env +} diff --git a/pkg/dmsgpty/host_test.go b/pkg/dmsgpty/host_test.go index c52023236..48931300e 100644 --- a/pkg/dmsgpty/host_test.go +++ b/pkg/dmsgpty/host_test.go @@ -240,9 +240,9 @@ func tempWhitelist(t *testing.T, c *dmsg.Client) (Whitelist, func()) { func checkPty(t *testing.T, ptyC *PtyClient, msg string) { if runtime.GOOS == "windows" { - require.NoError(t, ptyC.Start(DefaultCmd, "-Command", "Write-Host "+msg)) + require.NoError(t, ptyC.Start(DefaultCmd, nil, "-Command", "Write-Host "+msg)) } else { - require.NoError(t, ptyC.Start(DefaultCmd, "-c", "echo "+msg)) + require.NoError(t, ptyC.Start(DefaultCmd, nil, "-c", "echo "+msg)) } readB := make([]byte, len(msg)) diff --git a/pkg/dmsgpty/pty_client.go b/pkg/dmsgpty/pty_client.go index 058c757a3..64da62197 100644 --- a/pkg/dmsgpty/pty_client.go +++ b/pkg/dmsgpty/pty_client.go @@ -104,18 +104,19 @@ func (sc *PtyClient) call(method string, args, reply interface{}) error { } } -// Start starts the pty. -func (sc *PtyClient) Start(name string, arg ...string) error { +// Start starts the pty with optional environment variables. +func (sc *PtyClient) Start(name string, env []string, arg ...string) error { return sc.call("Start", &CommandReq{ Name: name, Arg: arg, Size: nil, + Env: env, }, &empty) } -// StartWithSize starts the pty with a specified size. -func (sc *PtyClient) StartWithSize(name string, arg []string, c *WinSize) error { - return sc.call("Start", &CommandReq{Name: name, Arg: arg, Size: c}, &empty) +// StartWithSize starts the pty with a specified size and optional environment variables. +func (sc *PtyClient) StartWithSize(name string, arg []string, c *WinSize, env []string) error { + return sc.call("Start", &CommandReq{Name: name, Arg: arg, Size: c, Env: env}, &empty) } // SetPtySize sets the pty size. diff --git a/pkg/dmsgpty/pty_gateway.go b/pkg/dmsgpty/pty_gateway.go index 5bf70335a..dab7ea9c2 100644 --- a/pkg/dmsgpty/pty_gateway.go +++ b/pkg/dmsgpty/pty_gateway.go @@ -23,6 +23,7 @@ type CommandReq struct { Name string Arg []string Size *WinSize + Env []string // Environment variables to pass to the PTY (e.g., TERM=xterm-256color) } // LocalPtyGateway is the gateway to a local pty. @@ -50,7 +51,7 @@ func (g *LocalPtyGateway) Read(reqN *int, respB *[]byte) error { // Start starts the local pty. func (g *LocalPtyGateway) Start(req *CommandReq, _ *struct{}) error { - return g.ses.Start(req.Name, req.Arg, req.Size) + return g.ses.Start(req.Name, req.Arg, req.Size, req.Env) } // Write writes to the local pty. @@ -82,7 +83,7 @@ func NewProxyGateway(ptyC *PtyClient) PtyGateway { // Start starts the remote pty. func (g *ProxiedPtyGateway) Start(req *CommandReq, _ *struct{}) error { - return g.ptyC.Start(req.Name, req.Arg...) + return g.ptyC.Start(req.Name, req.Env, req.Arg...) } // Stop stops the remote pty. diff --git a/pkg/dmsgpty/pty_unix.go b/pkg/dmsgpty/pty_unix.go index 82de0cd02..02f12142b 100644 --- a/pkg/dmsgpty/pty_unix.go +++ b/pkg/dmsgpty/pty_unix.go @@ -8,6 +8,7 @@ import ( "errors" "os" "os/exec" + "strings" "sync" "github.com/creack/pty" @@ -68,8 +69,9 @@ func (s *Pty) Write(b []byte) (int, error) { return s.pty.Write(b) } -// Start runs a command with the given command name, args and optional window size. -func (s *Pty) Start(name string, args []string, size *WinSize) error { +// Start runs a command with the given command name, args, optional window size, and optional environment variables. +// If env is provided, those variables will be merged with (and override) the host's environment. +func (s *Pty) Start(name string, args []string, size *WinSize, env []string) error { s.mx.Lock() defer s.mx.Unlock() @@ -78,7 +80,7 @@ func (s *Pty) Start(name string, args []string, size *WinSize) error { } cmd := exec.Command(name, args...) //nolint:gosec - cmd.Env = os.Environ() + cmd.Env = mergeEnv(os.Environ(), env) var sz *pty.Winsize var err error @@ -97,6 +99,38 @@ func (s *Pty) Start(name string, args []string, size *WinSize) error { return nil } +// mergeEnv merges the base environment with override variables. +// Variables in override will replace any matching variables in base. +func mergeEnv(base, override []string) []string { + if len(override) == 0 { + return base + } + + // Build a map of override variables for quick lookup + overrideMap := make(map[string]string) + for _, e := range override { + if idx := strings.Index(e, "="); idx > 0 { + overrideMap[e[:idx]] = e + } + } + + // Filter base, keeping only variables not in override + result := make([]string, 0, len(base)+len(override)) + for _, e := range base { + if idx := strings.Index(e, "="); idx > 0 { + key := e[:idx] + if _, exists := overrideMap[key]; !exists { + result = append(result, e) + } + } + } + + // Add all override variables + result = append(result, override...) + + return result +} + // SetPtySize sets the pty size. func (s *Pty) SetPtySize(size *WinSize) error { s.mx.RLock() diff --git a/pkg/dmsgpty/pty_windows.go b/pkg/dmsgpty/pty_windows.go index bad035f91..fe2e262a2 100644 --- a/pkg/dmsgpty/pty_windows.go +++ b/pkg/dmsgpty/pty_windows.go @@ -7,6 +7,7 @@ package dmsgpty import ( "errors" "os" + "strings" "sync" "syscall" @@ -69,8 +70,9 @@ func (s *Pty) Write(b []byte) (int, error) { return int(res), err } -// Start runs a command with the given command name, args and optional window size. -func (s *Pty) Start(name string, args []string, size *WinSize) error { +// Start runs a command with the given command name, args, optional window size, and optional environment variables. +// If env is provided, those variables will be merged with (and override) the host's environment. +func (s *Pty) Start(name string, args []string, size *WinSize, env []string) error { s.mx.Lock() defer s.mx.Unlock() @@ -99,7 +101,7 @@ func (s *Pty) Start(name string, args []string, size *WinSize) error { name, args, &syscall.ProcAttr{ - Env: os.Environ(), + Env: mergeEnv(os.Environ(), env), }, ) @@ -111,6 +113,38 @@ func (s *Pty) Start(name string, args []string, size *WinSize) error { return nil } +// mergeEnv merges the base environment with override variables. +// Variables in override will replace any matching variables in base. +func mergeEnv(base, override []string) []string { + if len(override) == 0 { + return base + } + + // Build a map of override variables for quick lookup + overrideMap := make(map[string]string) + for _, e := range override { + if idx := strings.Index(e, "="); idx > 0 { + overrideMap[e[:idx]] = e + } + } + + // Filter base, keeping only variables not in override + result := make([]string, 0, len(base)+len(override)) + for _, e := range base { + if idx := strings.Index(e, "="); idx > 0 { + key := e[:idx] + if _, exists := overrideMap[key]; !exists { + result = append(result, e) + } + } + } + + // Add all override variables + result = append(result, override...) + + return result +} + // SetPtySize sets the pty size. func (s *Pty) SetPtySize(size *WinSize) error { s.mx.RLock() diff --git a/pkg/dmsgpty/ui.go b/pkg/dmsgpty/ui.go index 42a0b1b63..8315f507b 100644 --- a/pkg/dmsgpty/ui.go +++ b/pkg/dmsgpty/ui.go @@ -3,6 +3,7 @@ package dmsgpty import ( "bytes" + stdjson "encoding/json" "fmt" "io" "net" @@ -155,8 +156,6 @@ func (ui *UI) Handler(customCommands map[string][]string) http.HandlerFunc { defer func() { log.WithError(ptyC.Close()).Debug("Closed ptyC.") }() if err = ui.uiStartSize(ptyC); err != nil { - log.Print("xxxx") - writeWSError(log, wsConn, err) return } @@ -181,6 +180,14 @@ func (ui *UI) Handler(customCommands map[string][]string) http.HandlerFunc { // urlCommands from URL | set DMSGPTYTERM=1 all times ptyC.Write([]byte(urlCommands(r, customCommands))) //nolint + // Create WebSocket reader that handles resize messages + wsReader := newWSReader(ws, ptyC, log, r) + defer func() { + if err := wsReader.Close(); err != nil { + log.WithError(err).Debug("Error closing wsReader") + } + }() + // io done, once := make(chan struct{}), new(sync.Once) closeDone := func() { once.Do(func() { close(done) }) } @@ -189,7 +196,7 @@ func (ui *UI) Handler(customCommands map[string][]string) http.HandlerFunc { closeDone() }() go func() { - _, _ = io.Copy(ptyC, wsConn) //nolint:errcheck + _, _ = io.Copy(ptyC, wsReader) //nolint:errcheck closeDone() }() <-done @@ -255,3 +262,80 @@ func urlCommands(r *http.Request, customCommands map[string][]string) string { stringCommands += "\n" return stringCommands } + +// resizeMsg represents a terminal resize message from the client. +type resizeMsg struct { + Type string `json:"type"` + Cols int `json:"cols"` + Rows int `json:"rows"` +} + +// wsReader reads from a WebSocket connection, handling resize messages separately. +// Resize messages are JSON objects with type="resize", cols, and rows fields. +// All other data is passed through to the PTY. +type wsReader struct { + ws *websocket.Conn + ptyC *PtyClient + log logrus.FieldLogger + ctx *http.Request + closed bool + mu sync.Mutex +} + +func newWSReader(ws *websocket.Conn, ptyC *PtyClient, log logrus.FieldLogger, r *http.Request) *wsReader { + return &wsReader{ + ws: ws, + ptyC: ptyC, + log: log, + ctx: r, + } +} + +func (wr *wsReader) Read(p []byte) (int, error) { + for { + wr.mu.Lock() + if wr.closed { + wr.mu.Unlock() + return 0, io.EOF + } + wr.mu.Unlock() + + msgType, data, err := wr.ws.Read(wr.ctx.Context()) + if err != nil { + return 0, err + } + + // Try to parse as resize message + if msgType == websocket.MessageText && len(data) > 0 && data[0] == '{' { + var msg resizeMsg + if err := stdjson.Unmarshal(data, &msg); err == nil && msg.Type == "resize" { + // Handle resize (with bounds checking for uint16) + if msg.Cols > 0 && msg.Rows > 0 && msg.Cols <= 0xFFFF && msg.Rows <= 0xFFFF { + size := &WinSize{ + Cols: uint16(msg.Cols), //nolint:gosec // bounds checked above + Rows: uint16(msg.Rows), //nolint:gosec // bounds checked above + X: uint16(msg.Cols), //nolint:gosec // bounds checked above + Y: uint16(msg.Rows), //nolint:gosec // bounds checked above + } + if err := wr.ptyC.SetPtySize(size); err != nil { + wr.log.WithError(err).Debug("Failed to set PTY size") + } else { + wr.log.WithField("cols", msg.Cols).WithField("rows", msg.Rows).Debug("Resized PTY") + } + } + continue // Don't pass resize message to PTY, read next message + } + } + + // Regular data - copy to output buffer + n := copy(p, data) + return n, nil + } +} + +func (wr *wsReader) Close() error { + wr.mu.Lock() + defer wr.mu.Unlock() + wr.closed = true + return nil +} diff --git a/pkg/dmsgpty/ui_html.go b/pkg/dmsgpty/ui_html.go index a6f5aef08..841ca7931 100644 --- a/pkg/dmsgpty/ui_html.go +++ b/pkg/dmsgpty/ui_html.go @@ -13,2156 +13,4312 @@ import ( func writeTermHTML(w io.Writer) (int64, error) { gz, err := gzip.NewReader(bytes.NewBuffer([]byte{ - 0x1F, 0x8B, 0x08, 0x08, 0x30, 0xCF, 0xB9, 0x62, 0x00, 0x03, 0x74, 0x65, 0x72, 0x6D, 0x2E, 0x68, - 0x74, 0x6D, 0x6C, 0x00, 0xEC, 0x3B, 0x6B, 0x77, 0xDB, 0x38, 0xAE, 0xDF, 0xF3, 0x2B, 0xD8, 0xCC, - 0xB9, 0x63, 0xBB, 0x75, 0x6C, 0xC7, 0x69, 0x9A, 0x36, 0xE9, 0xCC, 0x9E, 0x3C, 0xDC, 0xD6, 0x3B, - 0x49, 0x9C, 0x93, 0xB8, 0xD3, 0x9D, 0x93, 0xED, 0xE9, 0xD0, 0x12, 0x65, 0xAB, 0x95, 0x25, 0x8D, - 0x44, 0xC7, 0xF1, 0xCE, 0x66, 0x7E, 0xFB, 0x05, 0xC0, 0x87, 0x28, 0xF9, 0x91, 0x74, 0xCF, 0x7E, - 0xB8, 0x1F, 0xEE, 0x74, 0x4E, 0x6B, 0x82, 0x20, 0x00, 0x02, 0x20, 0x08, 0x82, 0xD4, 0xDB, 0x67, - 0x7E, 0xE2, 0xC9, 0x45, 0x2A, 0xD8, 0x44, 0x4E, 0xA3, 0x9F, 0xB7, 0xDE, 0xE6, 0x72, 0x11, 0x89, - 0x9F, 0xB7, 0x18, 0x1B, 0x25, 0xFE, 0x82, 0xFD, 0xC9, 0x46, 0xDC, 0xFB, 0x36, 0xCE, 0x92, 0x59, - 0xEC, 0x1F, 0xB2, 0x1F, 0x3A, 0x9D, 0xCE, 0x11, 0x7B, 0x80, 0xCE, 0x96, 0x14, 0xD9, 0x34, 0x8C, - 0x79, 0x04, 0x18, 0x41, 0x12, 0xCB, 0x9D, 0x3C, 0xFC, 0x97, 0x38, 0x64, 0xBB, 0xAF, 0xD2, 0x7B, - 0x44, 0x78, 0xDB, 0xD6, 0x64, 0xDE, 0xE6, 0x5E, 0x16, 0xA6, 0xF2, 0xE7, 0xAD, 0xA3, 0x7A, 0x30, - 0x8B, 0x3D, 0x19, 0x26, 0x71, 0xBD, 0xC1, 0xFE, 0x04, 0x0A, 0xF3, 0x30, 0xF6, 0x93, 0x79, 0x2B, - 0x89, 0xA3, 0x84, 0xFB, 0xEC, 0x27, 0x56, 0xE9, 0x66, 0xEC, 0x8E, 0x67, 0x2C, 0xCD, 0x12, 0x99, - 0x78, 0x49, 0x04, 0xFD, 0xF5, 0x28, 0xF1, 0x38, 0x22, 0xB4, 0x0A, 0xE0, 0x4F, 0x6C, 0x7B, 0x22, - 0x65, 0x9A, 0x1F, 0x6E, 0x37, 0xD8, 0xDF, 0xD8, 0xF6, 0x3C, 0xCF, 0xB7, 0xD9, 0x21, 0xFE, 0xBB, - 0x6D, 0x29, 0xE4, 0x89, 0xF7, 0x4D, 0x48, 0x18, 0x1F, 0x8B, 0x39, 0xFB, 0x24, 0x46, 0x37, 0xD4, - 0xAE, 0x1B, 0x1A, 0x2F, 0xB6, 0x0F, 0xDB, 0xED, 0xED, 0x17, 0x96, 0xF6, 0x24, 0xC9, 0x65, 0xD1, - 0x4A, 0xB9, 0x9C, 0xC4, 0x7C, 0x2A, 0x0A, 0x48, 0x2E, 0x78, 0xE6, 0x4D, 0x1A, 0x47, 0x44, 0x5F, - 0xD1, 0x86, 0x29, 0x24, 0xA9, 0x88, 0x57, 0x4D, 0x41, 0x89, 0x80, 0xAA, 0xD2, 0x02, 0x0C, 0xB5, - 0xD6, 0xEA, 0xA6, 0x9F, 0x31, 0x10, 0x22, 0x07, 0xC5, 0x75, 0x3A, 0x4D, 0x0B, 0xCA, 0x92, 0x39, - 0x80, 0xF6, 0x1C, 0xC8, 0x2C, 0x17, 0x37, 0xA8, 0xD0, 0x43, 0x26, 0xB3, 0x99, 0x28, 0xE0, 0xA0, - 0x5D, 0x21, 0xE2, 0x5F, 0xC4, 0x22, 0x57, 0x3D, 0xBA, 0xE3, 0x41, 0x0B, 0xC8, 0x88, 0x37, 0x08, - 0x58, 0xAF, 0xF9, 0x5C, 0xF2, 0x5A, 0xB3, 0x10, 0x11, 0xDB, 0x20, 0xA6, 0x99, 0x43, 0x2E, 0x62, - 0x5F, 0xC1, 0x8E, 0x96, 0x46, 0xC3, 0xE4, 0xEA, 0xE0, 0x24, 0xB3, 0xA9, 0x88, 0x65, 0x0B, 0xBD, - 0xC2, 0xF6, 0x5B, 0x05, 0x4C, 0x45, 0x9E, 0xF3, 0xB1, 0x70, 0x75, 0x20, 0xEE, 0x00, 0x1D, 0x39, - 0x10, 0x91, 0x79, 0x16, 0x4A, 0xA1, 0x60, 0x2D, 0xC3, 0x66, 0x89, 0x8A, 0x17, 0x25, 0xB9, 0xA8, - 0xE8, 0x51, 0x0D, 0xF7, 0x45, 0x2E, 0xB3, 0x64, 0x51, 0x2F, 0x86, 0xA1, 0x13, 0xC2, 0xCF, 0x87, - 0x46, 0xCB, 0xE3, 0x51, 0x54, 0x97, 0x93, 0x30, 0x07, 0xB1, 0xC0, 0xEF, 0xB4, 0xBF, 0x59, 0xC7, - 0x6B, 0x3F, 0x7F, 0xBE, 0xC5, 0x9E, 0x2B, 0x32, 0x5F, 0x73, 0xB6, 0xC3, 0x78, 0xCC, 0xEE, 0xC9, - 0x24, 0x62, 0x3A, 0x8B, 0xB8, 0x4C, 0x32, 0xEC, 0x3E, 0x4D, 0xD2, 0x45, 0x16, 0x8E, 0x27, 0x92, - 0xD5, 0xBD, 0x06, 0xEB, 0x76, 0x76, 0xBB, 0x3B, 0xF0, 0xD7, 0x5E, 0x93, 0x9D, 0x4E, 0xB2, 0x30, - 0x97, 0x49, 0x3A, 0x11, 0x19, 0xFB, 0xBB, 0x08, 0x82, 0x4C, 0x2C, 0x58, 0xFD, 0xA2, 0x3F, 0x64, - 0xE7, 0xA1, 0x27, 0xE2, 0x5C, 0x34, 0x70, 0xB4, 0x72, 0xC2, 0x76, 0x7B, 0x1C, 0xCA, 0xC9, 0x6C, - 0xD4, 0xF2, 0x92, 0x69, 0xDB, 0x9B, 0x7C, 0xFD, 0xDA, 0xD6, 0x4C, 0x01, 0x05, 0xB1, 0xAE, 0xD0, - 0xF8, 0x79, 0x0E, 0x13, 0x63, 0x61, 0xCE, 0x80, 0xA0, 0x18, 0x2D, 0xD8, 0x38, 0xE3, 0xB1, 0x14, - 0x3E, 0x58, 0x06, 0x2C, 0xC9, 0x92, 0x80, 0x79, 0x13, 0x9E, 0x8D, 0x45, 0x93, 0xC9, 0x04, 0x24, - 0x5D, 0xB0, 0x54, 0x64, 0x39, 0x0C, 0x48, 0x46, 0x92, 0x87, 0x71, 0x18, 0x8F, 0x19, 0x07, 0x8F, - 0x49, 0x17, 0x48, 0x0F, 0x90, 0x71, 0xDA, 0xA0, 0xBF, 0x40, 0xCE, 0x79, 0x26, 0x00, 0xDF, 0x67, - 0x3C, 0x07, 0x75, 0x86, 0x1C, 0x48, 0x32, 0x63, 0x33, 0xF2, 0x5C, 0x16, 0x84, 0x91, 0xC8, 0x19, - 0x28, 0x4A, 0xB0, 0xED, 0x1B, 0x3D, 0x62, 0xBB, 0x41, 0x7C, 0x7C, 0xC1, 0x23, 0x24, 0x18, 0xC6, - 0x0C, 0xBB, 0x4D, 0x2F, 0x2C, 0x51, 0x39, 0x49, 0x66, 0x92, 0x65, 0xA8, 0xFD, 0x90, 0x4C, 0xD2, - 0x04, 0x24, 0x2F, 0x9A, 0xF9, 0x28, 0x89, 0xE9, 0x8E, 0xC2, 0x69, 0xA8, 0x99, 0xE0, 0x70, 0x52, - 0x63, 0x4E, 0x3A, 0x4F, 0xD0, 0x71, 0x9B, 0x24, 0x70, 0x93, 0x4D, 0x13, 0x3F, 0x0C, 0xF0, 0x5F, - 0x41, 0xF3, 0x4B, 0x67, 0xA3, 0x28, 0xCC, 0x27, 0x4D, 0xE6, 0x87, 0x48, 0x7D, 0x34, 0x93, 0x00, - 0xCC, 0x11, 0x48, 0x7A, 0x6D, 0xE2, 0x6C, 0xDA, 0x09, 0x2C, 0x60, 0x11, 0x91, 0x70, 0x40, 0x24, - 0x84, 0x09, 0xD0, 0xA4, 0x0B, 0x19, 0x09, 0x0D, 0x19, 0xA5, 0xA8, 0x5C, 0xA9, 0xD5, 0x95, 0x23, - 0x64, 0x3E, 0x49, 0xA6, 0xE5, 0xF9, 0x84, 0x24, 0x55, 0x30, 0xCB, 0x62, 0x60, 0x2C, 0x68, 0x98, - 0x9F, 0x80, 0xFA, 0x88, 0xEF, 0x57, 0xE1, 0x49, 0x84, 0xE0, 0x88, 0x20, 0x89, 0xA2, 0x64, 0x8E, - 0x73, 0xF4, 0x92, 0xD8, 0x0F, 0x71, 0x6A, 0xF9, 0xA1, 0xB6, 0xE2, 0x10, 0xFA, 0xF9, 0x28, 0xB9, - 0x13, 0x34, 0x2D, 0xE5, 0x33, 0x71, 0x22, 0x41, 0x6A, 0x25, 0x0A, 0x5A, 0x24, 0x2D, 0x2C, 0xAD, - 0xBB, 0xF2, 0x09, 0x78, 0x29, 0x1B, 0x09, 0xAD, 0x3E, 0x60, 0x1E, 0xC6, 0x48, 0x0D, 0xA1, 0x66, - 0x66, 0x19, 0x8A, 0x91, 0x4B, 0xF0, 0x87, 0x10, 0xE2, 0x6A, 0x9A, 0x64, 0xC4, 0xB7, 0x3A, 0xE3, - 0x96, 0x91, 0xE3, 0x43, 0x8F, 0xDD, 0x0C, 0xDE, 0x0D, 0x3F, 0x1D, 0x5F, 0xF7, 0x58, 0xFF, 0x86, - 0x5D, 0x5D, 0x0F, 0x7E, 0xED, 0x9F, 0xF5, 0xCE, 0xD8, 0xF6, 0xF1, 0x0D, 0xB4, 0xB7, 0x9B, 0xEC, - 0x53, 0x7F, 0xF8, 0x61, 0xF0, 0x71, 0xC8, 0x00, 0xE3, 0xFA, 0xF8, 0x72, 0xF8, 0x1B, 0x1B, 0xBC, - 0x63, 0xC7, 0x97, 0xBF, 0xB1, 0x5F, 0xFA, 0x97, 0x67, 0x4D, 0xD6, 0xFB, 0xC7, 0xD5, 0x75, 0xEF, - 0xE6, 0x86, 0x0D, 0xAE, 0x91, 0x5A, 0xFF, 0xE2, 0xEA, 0xBC, 0xDF, 0x03, 0x70, 0xFF, 0xF2, 0xF4, - 0xFC, 0xE3, 0x59, 0xFF, 0xF2, 0x3D, 0x3B, 0x81, 0xA1, 0x97, 0x03, 0x70, 0xF4, 0x3E, 0xB8, 0x3B, - 0xD0, 0x1D, 0x0E, 0x88, 0xA7, 0xA6, 0xD6, 0xEF, 0xDD, 0x20, 0xBD, 0x8B, 0xDE, 0xF5, 0xE9, 0x07, - 0x68, 0x1E, 0x9F, 0xF4, 0xCF, 0xFB, 0xC3, 0xDF, 0x9A, 0x48, 0xEB, 0x5D, 0x7F, 0x78, 0x89, 0x94, - 0xDF, 0x0D, 0xAE, 0xD9, 0x31, 0xBB, 0x3A, 0xBE, 0x1E, 0xF6, 0x4F, 0x3F, 0x9E, 0x1F, 0x5F, 0xB3, - 0xAB, 0x8F, 0xD7, 0x57, 0x83, 0x9B, 0x1E, 0x08, 0x71, 0x06, 0x94, 0x2F, 0xFB, 0x97, 0xEF, 0xAE, - 0x81, 0x51, 0xEF, 0xA2, 0x77, 0x39, 0x6C, 0x01, 0x63, 0x80, 0xB1, 0xDE, 0xAF, 0xD0, 0x60, 0x37, - 0x1F, 0x8E, 0xCF, 0xCF, 0x91, 0x1B, 0x92, 0x3B, 0xFE, 0x08, 0xD3, 0xB8, 0x46, 0x41, 0xD9, 0xE9, - 0xE0, 0xEA, 0xB7, 0xEB, 0xFE, 0xFB, 0x0F, 0x43, 0xF6, 0x61, 0x70, 0x7E, 0xD6, 0x03, 0xE0, 0x49, - 0x0F, 0xE4, 0x3B, 0x3E, 0x39, 0xEF, 0x29, 0x6E, 0x30, 0xBB, 0xD3, 0xF3, 0xE3, 0xFE, 0x45, 0x93, - 0x9D, 0x1D, 0x5F, 0x1C, 0xBF, 0xEF, 0xD1, 0xA8, 0x01, 0x10, 0xA2, 0x49, 0x22, 0xA6, 0x12, 0x93, - 0x7D, 0xFA, 0xD0, 0x43, 0x28, 0x72, 0x3D, 0x86, 0xFF, 0x4F, 0x87, 0xFD, 0xC1, 0x25, 0xCE, 0xE7, - 0x74, 0x70, 0x39, 0xBC, 0x86, 0x66, 0x13, 0xA6, 0x7B, 0x3D, 0xB4, 0xA3, 0x3F, 0xF5, 0x6F, 0x7A, - 0x4D, 0x76, 0x7C, 0xDD, 0xBF, 0x41, 0xCD, 0xBC, 0xBB, 0x1E, 0x5C, 0xD0, 0x4C, 0x51, 0xBB, 0x30, - 0x68, 0x40, 0x74, 0x60, 0xE8, 0x65, 0x4F, 0x11, 0x42, 0xCD, 0x97, 0x0D, 0x04, 0x28, 0xD8, 0xFE, - 0x78, 0xD3, 0xB3, 0x34, 0xD9, 0x59, 0xEF, 0xF8, 0x1C, 0xC8, 0x81, 0xB5, 0x2E, 0xAB, 0x06, 0x35, - 0x46, 0x1E, 0x80, 0x7F, 0xE1, 0x7E, 0x11, 0x2D, 0xC0, 0x27, 0xB3, 0x6F, 0xE0, 0x36, 0x41, 0x06, - 0x5E, 0x5D, 0xC7, 0xA5, 0x47, 0x5E, 0xC1, 0x67, 0xB0, 0x06, 0xB3, 0x9A, 0xEB, 0x72, 0x0D, 0xF4, - 0x54, 0x88, 0x90, 0xEF, 0xF8, 0x28, 0x43, 0xD7, 0x3B, 0x81, 0x05, 0xC4, 0x33, 0x1F, 0x70, 0xBE, - 0xF2, 0x3B, 0xAE, 0xC2, 0x22, 0xBB, 0x93, 0xB0, 0xE3, 0x20, 0x4D, 0xF6, 0x35, 0x8F, 0xC2, 0x78, - 0x76, 0xAF, 0x07, 0x61, 0x24, 0x83, 0x40, 0x36, 0x52, 0x63, 0x5A, 0x49, 0x36, 0x6E, 0x6B, 0x84, - 0xB6, 0x42, 0x58, 0x0A, 0x94, 0xBB, 0x55, 0x46, 0x0A, 0x0F, 0x97, 0x49, 0xA2, 0xA5, 0x87, 0x00, - 0x93, 0x87, 0xE3, 0x18, 0xE2, 0xC8, 0x14, 0x82, 0x58, 0xDE, 0xA2, 0x4E, 0x9B, 0x40, 0x84, 0x12, - 0x96, 0x78, 0xA0, 0xD9, 0xF3, 0x1C, 0x16, 0x09, 0x6C, 0xA6, 0x02, 0x42, 0x74, 0xEC, 0xAB, 0x35, - 0xAA, 0x97, 0x8C, 0x8E, 0xDA, 0xA7, 0x37, 0x7D, 0x58, 0x31, 0x40, 0x11, 0x96, 0xFE, 0x34, 0x89, - 0xC7, 0x6A, 0x60, 0x22, 0x31, 0x40, 0x07, 0x82, 0xCB, 0x19, 0x44, 0x2B, 0x54, 0x5F, 0x7B, 0xAB, - 0x9A, 0x73, 0x98, 0xAD, 0xC0, 0x6C, 0xC2, 0xAC, 0x47, 0x1B, 0x00, 0xAE, 0xD2, 0x6B, 0x11, 0x40, - 0x38, 0x8E, 0x3D, 0x91, 0x97, 0xF5, 0x40, 0x6A, 0x6A, 0xC5, 0x42, 0xB6, 0x4B, 0xE0, 0x30, 0xBE, - 0x0B, 0xF3, 0x70, 0x14, 0x89, 0x9D, 0x30, 0x8F, 0x60, 0xD5, 0x13, 0x06, 0x89, 0xD7, 0xF6, 0x64, - 0x94, 0x8B, 0x3F, 0x72, 0xF3, 0x6F, 0x4B, 0xDE, 0xCB, 0xFF, 0x74, 0x28, 0x26, 0x64, 0x8F, 0x8F, - 0xBD, 0x93, 0x12, 0xC2, 0x73, 0x59, 0xBE, 0xF9, 0x7C, 0xDE, 0x0A, 0xE3, 0x39, 0x4F, 0x69, 0x2B, - 0x4A, 0xFD, 0x74, 0xB7, 0xD3, 0xE6, 0x71, 0x1E, 0xA2, 0xDE, 0x96, 0x24, 0x22, 0xEB, 0xB6, 0xFC, - 0x50, 0x10, 0xB9, 0x29, 0x8F, 0xDB, 0x2F, 0xDB, 0x10, 0xF6, 0xF2, 0x24, 0x12, 0x5F, 0x48, 0xD1, - 0x8F, 0x60, 0x1F, 0xB4, 0x67, 0xD9, 0xFD, 0x9D, 0x54, 0x2A, 0xAF, 0x41, 0xC0, 0x67, 0x6A, 0xB7, - 0xA8, 0x1D, 0x59, 0x8D, 0xDF, 0xC0, 0x9E, 0x26, 0x7C, 0x85, 0x81, 0x19, 0x91, 0xCA, 0xFD, 0x60, - 0xA7, 0xC7, 0x68, 0x09, 0x1B, 0x79, 0xD3, 0xEE, 0x55, 0x1A, 0xD6, 0x32, 0xED, 0x82, 0x46, 0x0F, - 0x73, 0x87, 0x1E, 0xC4, 0x78, 0xD0, 0x95, 0xA2, 0x64, 0x8C, 0x5B, 0xEA, 0xD2, 0xB9, 0x17, 0x11, - 0xF9, 0x42, 0xF9, 0x46, 0x6E, 0x68, 0x9A, 0xE6, 0xBF, 0xFF, 0xCD, 0xFE, 0xC4, 0xD4, 0x61, 0x6B, - 0xCB, 0x1D, 0xA8, 0xD2, 0x4A, 0xCC, 0x84, 0x5B, 0xDC, 0xF7, 0xCF, 0x61, 0x53, 0x12, 0x31, 0xB8, - 0x94, 0x93, 0x8D, 0x60, 0x5F, 0x13, 0x76, 0x3B, 0xD5, 0xB3, 0xCC, 0xE7, 0x16, 0x11, 0x3E, 0x57, - 0xB8, 0x69, 0x20, 0xF0, 0xBC, 0xFD, 0x7C, 0xB4, 0x72, 0x40, 0x2B, 0x9D, 0xE5, 0x93, 0xBA, 0x25, - 0x0B, 0x82, 0x1D, 0xAD, 0x95, 0x2C, 0xC1, 0x34, 0xF3, 0x71, 0xA9, 0xD7, 0x13, 0x80, 0x25, 0x08, - 0x5B, 0xD7, 0x53, 0x67, 0x17, 0x06, 0xAC, 0xFE, 0x6C, 0x59, 0xE2, 0x06, 0xAC, 0x64, 0x58, 0x67, - 0x31, 0xB0, 0x51, 0x19, 0x6E, 0x32, 0xFA, 0xBA, 0x72, 0xDA, 0x94, 0xA9, 0x41, 0xCA, 0x00, 0x9D, - 0x80, 0xD2, 0x8A, 0x44, 0x3C, 0x96, 0x13, 0x1A, 0x35, 0x9F, 0x40, 0x3A, 0xC2, 0xEA, 0xE1, 0xCE, - 0x8E, 0xC9, 0x95, 0x91, 0x17, 0x20, 0xDD, 0x86, 0xA0, 0x41, 0x48, 0xEC, 0x8D, 0x20, 0xA8, 0x39, - 0x05, 0x6E, 0x59, 0x90, 0xDB, 0x5F, 0xA4, 0xDA, 0xC8, 0x21, 0x4F, 0x31, 0x7D, 0xA8, 0x87, 0x4D, - 0xB6, 0x6B, 0x93, 0x54, 0x23, 0xAB, 0xCD, 0x1A, 0x37, 0x2A, 0x38, 0x08, 0xD6, 0x6B, 0xB8, 0xAC, - 0xBC, 0xC7, 0x94, 0x7C, 0x1C, 0x45, 0x06, 0x35, 0xAF, 0x2A, 0xBA, 0x50, 0xEF, 0x2A, 0xED, 0xFA, - 0x22, 0x12, 0x52, 0xAC, 0xD0, 0xE7, 0x23, 0xBE, 0xE1, 0x89, 0xC7, 0x0C, 0x6A, 0x97, 0x4C, 0xE5, - 0x9C, 0x05, 0x29, 0x27, 0xCA, 0x78, 0x9C, 0x65, 0x7C, 0xE1, 0x90, 0xCC, 0x51, 0x9B, 0x2A, 0xC1, - 0x06, 0x0C, 0x5A, 0x90, 0xB9, 0xD6, 0x2B, 0x09, 0x57, 0x56, 0x88, 0xE6, 0x08, 0x3B, 0x90, 0x42, - 0x51, 0x8A, 0xB7, 0x12, 0xB4, 0x78, 0x9A, 0x46, 0x0B, 0x9A, 0x70, 0x93, 0x18, 0x12, 0x1A, 0x5A, - 0x04, 0xCE, 0x55, 0x85, 0x6D, 0x2D, 0x3E, 0xF6, 0x6A, 0x12, 0xC4, 0xCC, 0x4E, 0x89, 0x18, 0x6C, - 0x50, 0x84, 0xC0, 0x44, 0x70, 0xAD, 0xC2, 0x9F, 0xE2, 0xCF, 0xDF, 0xA1, 0x0E, 0xF4, 0x34, 0xED, - 0xE6, 0x8F, 0xAC, 0x82, 0xA8, 0xB4, 0x0A, 0x9C, 0xA5, 0xD1, 0x21, 0xBE, 0xB8, 0x17, 0xD7, 0x8F, - 0x00, 0xF0, 0x96, 0x45, 0xF0, 0xCF, 0x8B, 0x17, 0xC6, 0x3E, 0xDA, 0xFB, 0xD7, 0x68, 0x6F, 0x83, - 0x1E, 0xA2, 0xCD, 0xDE, 0xE7, 0xEA, 0xF6, 0xE9, 0x11, 0xEC, 0xC1, 0x89, 0xEA, 0x90, 0xF4, 0xD3, - 0xEE, 0xA0, 0xA3, 0x7A, 0x9C, 0x64, 0x53, 0x8E, 0xB3, 0xEC, 0x50, 0x48, 0x17, 0xB9, 0xC7, 0x53, - 0x81, 0x47, 0xFB, 0x5D, 0x6A, 0x7B, 0x39, 0x4E, 0xB6, 0x4B, 0xBF, 0x93, 0xDC, 0x83, 0xDF, 0x7B, - 0x0A, 0x0E, 0x9B, 0x43, 0x4E, 0x47, 0xF4, 0x97, 0x6A, 0x2B, 0xF0, 0x50, 0xE0, 0x7D, 0xFA, 0x0D, - 0x59, 0x43, 0x92, 0xA1, 0x57, 0xBF, 0x3A, 0x5A, 0xDA, 0xBE, 0x2B, 0x9B, 0x80, 0x3D, 0x5A, 0x27, - 0x29, 0xE5, 0xCD, 0x6A, 0x92, 0x54, 0x02, 0x80, 0xF4, 0x42, 0xCF, 0x89, 0x34, 0x4D, 0x5E, 0x40, - 0x9A, 0x84, 0xD4, 0x02, 0xF3, 0x6D, 0x4F, 0x40, 0x8E, 0x6D, 0xC6, 0x37, 0x8C, 0xDE, 0xB5, 0x7E, - 0x4A, 0xC7, 0x76, 0x6B, 0xF6, 0xDB, 0xCE, 0x67, 0x32, 0x83, 0x6E, 0xED, 0x96, 0x5A, 0xDD, 0xCF, - 0xDA, 0x38, 0xF0, 0x57, 0xC9, 0x36, 0xEE, 0x51, 0xD5, 0xAC, 0x7F, 0x50, 0x2E, 0x70, 0xD7, 0x42, - 0x53, 0x68, 0xAB, 0xC5, 0xB3, 0xE9, 0x48, 0x64, 0x35, 0xEB, 0x00, 0xA6, 0xCF, 0x86, 0x3A, 0x55, - 0x33, 0x28, 0x09, 0x63, 0x82, 0x1D, 0x95, 0x0E, 0x4A, 0x82, 0xE9, 0x9E, 0x09, 0x24, 0x0C, 0x91, - 0xC8, 0x0E, 0x4B, 0x72, 0xAA, 0xA0, 0x68, 0x85, 0x2D, 0x38, 0x99, 0x5F, 0x7A, 0xAF, 0x84, 0x3E, - 0xC1, 0xBD, 0x49, 0xFD, 0x9B, 0x58, 0xE4, 0x75, 0xA3, 0x0D, 0x38, 0x95, 0x07, 0x7C, 0x16, 0x41, - 0x48, 0x70, 0xEA, 0x0A, 0x80, 0x51, 0x8A, 0xE8, 0x8A, 0xCE, 0x2D, 0x80, 0x31, 0xAE, 0xB3, 0x78, - 0x16, 0x45, 0x4E, 0xC8, 0x2E, 0xF5, 0x5A, 0x35, 0xB7, 0x5C, 0xB8, 0x09, 0xE3, 0xED, 0x36, 0x3B, - 0x17, 0x63, 0xEE, 0x2D, 0x0E, 0x35, 0x00, 0xC9, 0x9B, 0x11, 0x8A, 0xC2, 0xB3, 0x9F, 0x1C, 0x1A, - 0x46, 0x38, 0xEA, 0x2A, 0x58, 0xAE, 0x65, 0x5A, 0x62, 0xF6, 0xB0, 0x55, 0xFC, 0x8D, 0xEE, 0x63, - 0x90, 0xAB, 0x82, 0x3D, 0x14, 0x86, 0xD4, 0x5D, 0x90, 0x71, 0x45, 0x49, 0x96, 0xEB, 0x55, 0x4E, - 0xF6, 0x7C, 0x5D, 0x31, 0xA4, 0x46, 0x29, 0xC8, 0x99, 0x31, 0x90, 0x75, 0x79, 0x5C, 0x16, 0xFA, - 0xFD, 0xA2, 0xE1, 0x14, 0x77, 0xEA, 0xAF, 0x1B, 0xCA, 0xAB, 0x98, 0x80, 0xF4, 0xF0, 0x11, 0x96, - 0xBB, 0xAF, 0xFE, 0x3B, 0x3C, 0x81, 0xCE, 0x77, 0x30, 0xED, 0x3C, 0x95, 0xA9, 0x22, 0xDE, 0x69, - 0xB2, 0x9D, 0x6E, 0xC3, 0x48, 0xA0, 0x35, 0xBF, 0x6E, 0xF2, 0x84, 0xDB, 0x5C, 0x4D, 0x08, 0x7A, - 0xBE, 0x43, 0xCA, 0xEF, 0x35, 0xC7, 0x66, 0xC1, 0x76, 0x5F, 0x3D, 0x49, 0x32, 0x93, 0xF9, 0xAD, - 0xE1, 0x45, 0x5E, 0xA4, 0x76, 0xB9, 0xEA, 0x12, 0xA4, 0x2E, 0x70, 0x7E, 0x3D, 0x3C, 0x96, 0x70, - 0x34, 0x2A, 0x8D, 0x57, 0x10, 0x58, 0xA8, 0x2A, 0xAB, 0x3E, 0x72, 0xD0, 0x9D, 0xAC, 0xDA, 0xE0, - 0x5B, 0x10, 0x0C, 0x28, 0x92, 0x6C, 0xCD, 0x3C, 0x85, 0x34, 0xBD, 0x84, 0x4D, 0x35, 0x60, 0xCC, - 0xC0, 0x74, 0x5B, 0x21, 0x90, 0x46, 0x00, 0x6A, 0xAB, 0x82, 0xEC, 0x6F, 0x96, 0x56, 0x6B, 0x2C, - 0x64, 0x2F, 0x12, 0x14, 0x60, 0x4E, 0x16, 0x43, 0x3E, 0xBE, 0xE4, 0x53, 0x51, 0xAF, 0x21, 0xA1, - 0x5A, 0x03, 0x02, 0x15, 0x3B, 0x54, 0x31, 0xA0, 0x98, 0x31, 0x06, 0xB3, 0xB2, 0x42, 0x72, 0x97, - 0xE5, 0x58, 0x24, 0x53, 0x21, 0xB3, 0x05, 0x8C, 0xB5, 0x72, 0x62, 0x94, 0x73, 0x86, 0x50, 0x73, - 0xD5, 0x90, 0xDD, 0xCF, 0x4B, 0xCB, 0x53, 0x87, 0x41, 0xE3, 0x03, 0x26, 0xB3, 0x30, 0xF5, 0xD1, - 0x2A, 0x9A, 0x0D, 0x8D, 0x84, 0xB8, 0x18, 0x71, 0x2A, 0x50, 0x76, 0xAC, 0x24, 0x0B, 0x3F, 0xCC, - 0xD3, 0x12, 0xE4, 0xBE, 0xDC, 0x5F, 0x6A, 0x79, 0xB3, 0x2C, 0x4F, 0x32, 0xDA, 0x37, 0x57, 0xC0, - 0x3F, 0x84, 0xBE, 0xAF, 0xEA, 0xC8, 0x1C, 0xDC, 0xB8, 0xE8, 0x4C, 0xE2, 0x3B, 0x91, 0xC9, 0x5E, - 0x12, 0x59, 0x50, 0xBE, 0x44, 0xE1, 0x8F, 0x99, 0x98, 0x21, 0xA4, 0x56, 0x2B, 0x90, 0xBC, 0x2C, - 0x89, 0xA2, 0x61, 0x52, 0x16, 0x4F, 0x41, 0x4F, 0x12, 0x29, 0x93, 0xA9, 0xD9, 0xE8, 0x49, 0x7F, - 0x3B, 0x6C, 0xD7, 0xB8, 0xDA, 0x54, 0x9D, 0xFA, 0x54, 0x27, 0xE6, 0x1D, 0xA1, 0xAA, 0x7E, 0xFF, - 0x22, 0x16, 0xA9, 0xAA, 0xD5, 0x97, 0x04, 0x74, 0x30, 0x4E, 0x69, 0x22, 0x4B, 0x18, 0xAA, 0x10, - 0x70, 0x01, 0x64, 0x97, 0xBA, 0x60, 0x07, 0x86, 0xC9, 0xAD, 0xEC, 0x9A, 0x67, 0x1C, 0xFC, 0x0D, - 0x6F, 0x1E, 0x56, 0x76, 0xDB, 0x74, 0x03, 0xFD, 0xC9, 0x88, 0x0E, 0xC1, 0x1A, 0xEB, 0x78, 0xA5, - 0x19, 0xA4, 0x99, 0x08, 0xC2, 0xFB, 0x95, 0x34, 0x14, 0xFA, 0xCA, 0x2E, 0x38, 0x6A, 0xCF, 0x78, - 0xB4, 0x66, 0x14, 0x5E, 0x02, 0x6C, 0xE8, 0x3A, 0x4B, 0xE6, 0xB1, 0x05, 0xC1, 0x4A, 0xC8, 0x16, - 0x65, 0xD3, 0x10, 0xE8, 0x8A, 0xC4, 0xC2, 0x8E, 0x1B, 0x1A, 0x74, 0xC8, 0x0A, 0x84, 0x2F, 0x99, - 0xE0, 0x85, 0xB9, 0xBF, 0x28, 0x31, 0x85, 0x5F, 0x40, 0x70, 0xCD, 0xC3, 0x5A, 0xE4, 0x66, 0xDE, - 0x3A, 0x89, 0xB2, 0x3E, 0x63, 0x73, 0x2A, 0xA5, 0x1C, 0x0D, 0x1E, 0xAF, 0x83, 0x47, 0x90, 0xEA, - 0x45, 0x65, 0x97, 0x54, 0x98, 0xB8, 0xCC, 0x6E, 0x11, 0xF7, 0x73, 0xE1, 0x1C, 0x78, 0xC4, 0x87, - 0x2C, 0x33, 0x05, 0xBB, 0x85, 0x85, 0x96, 0x7D, 0xE1, 0x9D, 0xE3, 0x2D, 0x49, 0x92, 0x15, 0x4B, - 0x61, 0xB7, 0x73, 0x81, 0xD8, 0x85, 0x4E, 0x65, 0xB7, 0xB3, 0x04, 0xDA, 0xAB, 0x82, 0x94, 0x61, - 0xCB, 0x30, 0xE2, 0x4A, 0xB9, 0x54, 0xEE, 0xE8, 0x3A, 0xF6, 0xDF, 0x41, 0xD8, 0x29, 0x20, 0x33, - 0x19, 0x94, 0x87, 0xE5, 0xE3, 0xAC, 0x0C, 0xA0, 0x52, 0x85, 0x06, 0xE9, 0xF9, 0x84, 0xB9, 0x67, - 0xED, 0xA2, 0x02, 0x97, 0xA3, 0x84, 0x30, 0xF2, 0x21, 0xE2, 0x15, 0x81, 0x47, 0x04, 0x99, 0xC8, - 0x27, 0xB0, 0x82, 0x33, 0x59, 0x05, 0xF6, 0xE2, 0xC2, 0x3E, 0x39, 0xBF, 0x13, 0xFE, 0x3F, 0xCA, - 0xCD, 0xDF, 0xCA, 0xCD, 0x53, 0x88, 0x73, 0xD6, 0x6B, 0x25, 0x98, 0x72, 0x5A, 0xD0, 0xE3, 0x3E, - 0x1F, 0x45, 0xE8, 0x5C, 0x78, 0xA7, 0xE3, 0xAC, 0x87, 0x50, 0x96, 0xE0, 0x85, 0xEA, 0x83, 0x63, - 0x29, 0x71, 0xD9, 0xD5, 0x3B, 0xEC, 0xED, 0x5B, 0xDA, 0xE2, 0x20, 0x3A, 0x77, 0xF7, 0x0F, 0xB0, - 0xF5, 0x46, 0x37, 0x5E, 0x61, 0xA3, 0xD3, 0x70, 0x83, 0x8E, 0x1E, 0xE5, 0x12, 0x29, 0xA8, 0xC2, - 0xDA, 0xE3, 0x53, 0xB2, 0xFF, 0x67, 0x77, 0x0C, 0x6E, 0x00, 0x57, 0xD8, 0x55, 0x72, 0x97, 0xD4, - 0x3A, 0x73, 0xE1, 0xC4, 0x69, 0x92, 0xCB, 0x02, 0x68, 0xA0, 0x51, 0x18, 0x8B, 0x82, 0x2A, 0xE6, - 0xE7, 0xA1, 0x1B, 0x87, 0x10, 0xB8, 0x5C, 0x1C, 0x28, 0x46, 0xAA, 0x6A, 0x09, 0xB5, 0x47, 0x11, - 0x8F, 0xBF, 0x9D, 0x03, 0xB0, 0xDE, 0xA8, 0xC4, 0x69, 0x50, 0x93, 0xEB, 0x26, 0x72, 0x96, 0xDE, - 0xC8, 0x24, 0xCD, 0xEB, 0x0D, 0xAA, 0xFA, 0x84, 0xF1, 0x44, 0x80, 0x2A, 0x8B, 0x44, 0xB6, 0x59, - 0xCA, 0xD2, 0x71, 0x6B, 0x02, 0x9B, 0xE0, 0xBD, 0xA7, 0xDA, 0xEA, 0xBF, 0x88, 0x0C, 0xC3, 0xBE, - 0x2E, 0x2E, 0xD2, 0x41, 0x8D, 0x0A, 0x76, 0xAD, 0x2D, 0x9B, 0x13, 0x38, 0x87, 0x4F, 0xC4, 0xD5, - 0x7A, 0xAD, 0xDC, 0x07, 0x02, 0x51, 0x7B, 0xE2, 0x0F, 0xF3, 0x7A, 0x4D, 0x5D, 0xDE, 0xD5, 0x1A, - 0x8D, 0xD2, 0x51, 0xCC, 0xDA, 0xC1, 0x9E, 0x40, 0xEA, 0x25, 0x23, 0xFF, 0xC8, 0xFE, 0xEA, 0xDC, - 0xEF, 0x06, 0x01, 0x59, 0xB5, 0x64, 0xC8, 0x1F, 0x99, 0xEA, 0x28, 0x1D, 0xD2, 0x4E, 0x29, 0xBF, - 0x50, 0x67, 0x25, 0x10, 0x40, 0x35, 0x59, 0x67, 0x67, 0x77, 0xBF, 0x90, 0x1E, 0x8E, 0x40, 0xE3, - 0xE4, 0xD4, 0x64, 0x26, 0xB7, 0x4A, 0x54, 0x9F, 0x67, 0xDF, 0x30, 0xD5, 0xAE, 0xFD, 0xD0, 0x15, - 0x7B, 0x2F, 0xF7, 0x5E, 0xD5, 0x9A, 0xD4, 0xF0, 0xBC, 0x0E, 0xFC, 0xA7, 0x1B, 0x2F, 0xC5, 0x1B, - 0xDE, 0xB1, 0x3D, 0x2F, 0x79, 0xD1, 0xB3, 0xF7, 0xF2, 0xD5, 0x3E, 0x7F, 0xA9, 0x1B, 0x07, 0xFB, - 0xFB, 0x9D, 0x83, 0x91, 0x6E, 0x74, 0x5E, 0xBD, 0x79, 0xFD, 0x86, 0xEB, 0x86, 0xBF, 0xE7, 0x1F, - 0x78, 0x01, 0x35, 0x50, 0xE5, 0x54, 0x58, 0x56, 0x4C, 0xF7, 0xF7, 0xF7, 0x0F, 0xF6, 0xF7, 0x34, - 0x9A, 0x08, 0xBA, 0x6F, 0xBA, 0x6F, 0x74, 0xE3, 0x35, 0x17, 0xDD, 0x3D, 0x43, 0x3A, 0xF0, 0xC4, - 0x9B, 0x97, 0x81, 0xE1, 0xD3, 0x7D, 0x13, 0x78, 0xA6, 0xC1, 0xFD, 0x83, 0x80, 0xBF, 0xB6, 0xE2, - 0x88, 0xAE, 0xE8, 0x1A, 0x6A, 0xF8, 0x9F, 0x57, 0xDB, 0xC2, 0x90, 0x66, 0x75, 0x40, 0x16, 0x5D, - 0xAF, 0x83, 0x4E, 0x47, 0x4D, 0x9B, 0xC4, 0x8C, 0xC0, 0x35, 0xD4, 0x94, 0xFD, 0x02, 0x9A, 0x09, - 0x7F, 0x4F, 0xA3, 0x22, 0x58, 0x01, 0xC7, 0x68, 0xE1, 0x3D, 0x8D, 0x5B, 0x80, 0x17, 0x02, 0xEF, - 0x97, 0xF6, 0x2C, 0x65, 0x21, 0x0C, 0xE5, 0x99, 0xE8, 0x5A, 0xCA, 0x9E, 0xAF, 0xA0, 0x53, 0x3E, - 0xC6, 0x5B, 0xBC, 0x82, 0xBA, 0xE9, 0xF0, 0x16, 0x5C, 0x13, 0x17, 0xFB, 0xF8, 0xC7, 0xF0, 0xE4, - 0x8B, 0x37, 0x9D, 0x65, 0x8D, 0x1E, 0x04, 0xF8, 0xA7, 0xC0, 0xD9, 0xEF, 0x28, 0x0D, 0x06, 0xA5, - 0x39, 0x68, 0x26, 0x08, 0x75, 0xA6, 0xA0, 0x31, 0x0B, 0xA8, 0x9A, 0x81, 0xB2, 0x94, 0xB7, 0xEF, - 0x05, 0x9A, 0x6E, 0x36, 0x1E, 0x1D, 0xEE, 0x7B, 0x6D, 0xF8, 0x3F, 0x08, 0x2C, 0x75, 0xD3, 0xA9, - 0xE7, 0x61, 0x39, 0x18, 0x38, 0x4E, 0xC3, 0x32, 0x00, 0x20, 0x49, 0x0E, 0x31, 0x40, 0x0A, 0x32, - 0x51, 0xD9, 0x6B, 0xD9, 0x0B, 0x38, 0xDC, 0xEC, 0x74, 0xF7, 0xF7, 0x11, 0x7E, 0x31, 0xF3, 0xF0, - 0x1A, 0x04, 0xC2, 0x00, 0xDD, 0xF8, 0x0D, 0x93, 0x64, 0x08, 0x27, 0xEC, 0x4B, 0x4C, 0x8E, 0x70, - 0x95, 0x62, 0xC0, 0xC4, 0x4B, 0x3C, 0x5A, 0x25, 0x85, 0xA9, 0x6D, 0x0E, 0x5E, 0x7D, 0x92, 0x80, - 0xC1, 0xC8, 0x76, 0xAE, 0x5A, 0x1D, 0x3A, 0xAB, 0x37, 0x05, 0x1F, 0x5C, 0xE3, 0xB7, 0x9D, 0xFB, - 0x0E, 0x1C, 0x64, 0x3A, 0xF7, 0xFB, 0x01, 0xFE, 0xFD, 0xFA, 0x00, 0xFF, 0xE6, 0xF4, 0xDB, 0xA7, - 0xDF, 0x41, 0x60, 0xCB, 0xA0, 0x26, 0xDC, 0xE3, 0x04, 0xF6, 0xB0, 0x28, 0x12, 0x9A, 0x18, 0xEA, - 0x14, 0x7F, 0xBA, 0xBB, 0xAF, 0xCA, 0xE5, 0x9F, 0x99, 0xAC, 0x67, 0xB7, 0xF5, 0x90, 0xB5, 0xD9, - 0x1E, 0x9C, 0xEA, 0xFE, 0x87, 0xBD, 0x82, 0x85, 0x8F, 0xD5, 0x07, 0x0D, 0xAC, 0xC0, 0x42, 0x6C, - 0x39, 0xF5, 0x07, 0x60, 0xD7, 0xDD, 0xEB, 0xA2, 0xC2, 0x58, 0x1D, 0x4C, 0xB9, 0x68, 0xAC, 0x63, - 0xFB, 0xB2, 0xC4, 0x15, 0xA7, 0xF6, 0x1A, 0x74, 0x1D, 0x42, 0x08, 0xD9, 0xED, 0x1C, 0x15, 0x92, - 0x00, 0x0F, 0xF8, 0xBF, 0xA0, 0x5F, 0x54, 0x14, 0x55, 0xEF, 0xB8, 0xC9, 0x46, 0x86, 0x88, 0x3E, - 0x0A, 0x51, 0xC4, 0xAE, 0xFD, 0x50, 0x03, 0x72, 0x13, 0x71, 0x5F, 0x87, 0xDC, 0x5B, 0xFD, 0x18, - 0x9B, 0x1F, 0xA3, 0xC6, 0x0A, 0x7A, 0xD8, 0xE1, 0x59, 0x4A, 0x20, 0x8E, 0xD7, 0x92, 0xC9, 0x8D, - 0xCC, 0xC0, 0xA0, 0x78, 0x2C, 0x2D, 0x95, 0x18, 0x3D, 0x73, 0xC0, 0x83, 0x79, 0xC0, 0x59, 0xA4, - 0xD6, 0x41, 0x5E, 0x1E, 0x1C, 0x35, 0x3C, 0x4B, 0xD7, 0x60, 0xEA, 0xE3, 0xD6, 0x43, 0xA3, 0xAE, - 0xE3, 0xFC, 0x99, 0xAA, 0x13, 0xB0, 0x93, 0xF7, 0xED, 0x77, 0xEF, 0xAB, 0x4E, 0x72, 0x0B, 0xDB, - 0x26, 0x9E, 0xFB, 0x6D, 0x00, 0x38, 0x5A, 0x81, 0x71, 0xA0, 0x30, 0x82, 0x0E, 0xFE, 0xA9, 0xB9, - 0x41, 0xE5, 0xCB, 0xB2, 0x37, 0x95, 0x8E, 0x87, 0x0D, 0x17, 0xF9, 0x6E, 0xA3, 0x5F, 0xE2, 0x45, - 0x3B, 0x6E, 0x9A, 0xDA, 0x97, 0xD6, 0x11, 0x36, 0xAE, 0xA6, 0xAB, 0x70, 0x16, 0xB5, 0x5A, 0x62, - 0x84, 0x79, 0x95, 0xEC, 0x4D, 0x48, 0x30, 0x28, 0xC5, 0xAC, 0xAF, 0x1F, 0xCB, 0xBA, 0x9E, 0x5D, - 0xF8, 0xB9, 0x45, 0x97, 0xD2, 0x4A, 0xED, 0x70, 0xCC, 0xB5, 0xAA, 0x07, 0x81, 0x94, 0x65, 0x6F, - 0xB7, 0xD4, 0x01, 0x59, 0x0D, 0x61, 0x3F, 0xFF, 0x4C, 0xD5, 0x87, 0x1F, 0xC9, 0xF5, 0x9B, 0x4B, - 0x7D, 0xAF, 0xAB, 0x5D, 0xAA, 0x47, 0xC1, 0x08, 0xE4, 0x38, 0xAF, 0x36, 0x1A, 0xB0, 0x2A, 0x2C, - 0xA6, 0xB6, 0xB5, 0x81, 0x3A, 0xA7, 0xA9, 0x7D, 0x6D, 0xA9, 0xE6, 0xA3, 0x4B, 0x65, 0x6A, 0x0E, - 0x87, 0x55, 0x1D, 0x35, 0xA9, 0xCB, 0x1C, 0xAA, 0x0E, 0x55, 0x06, 0x8F, 0x40, 0xDC, 0x02, 0xF0, - 0xB8, 0x0A, 0x99, 0x38, 0x6D, 0x07, 0xB4, 0x5F, 0x98, 0xC3, 0xE4, 0x21, 0xBB, 0x7D, 0x0D, 0x0B, - 0xBD, 0xFB, 0x92, 0x2A, 0x6A, 0xEA, 0xC4, 0x76, 0x02, 0x29, 0xC9, 0xB7, 0xE2, 0x4D, 0x8E, 0x3A, - 0x32, 0xE0, 0x35, 0xA8, 0x43, 0x34, 0x4D, 0xD2, 0x41, 0x5C, 0x81, 0xA9, 0x43, 0x18, 0x66, 0x18, - 0xF4, 0xF2, 0xA7, 0xA3, 0x61, 0xF6, 0x29, 0x8F, 0x45, 0xF4, 0xC5, 0x68, 0x36, 0x76, 0xDA, 0xC5, - 0x3B, 0x20, 0x02, 0xA9, 0xF5, 0x0D, 0xC9, 0x07, 0xC4, 0xF3, 0xE9, 0x3B, 0x7D, 0xF9, 0xE9, 0xA0, - 0x43, 0x67, 0x80, 0x09, 0x72, 0x89, 0xEA, 0x83, 0xEB, 0x74, 0x4E, 0x6D, 0x11, 0xE1, 0xDF, 0x5B, - 0xE4, 0x2B, 0xD7, 0xDF, 0xD6, 0x55, 0xDF, 0x8E, 0x1C, 0xCC, 0xD6, 0x9A, 0xF2, 0x5B, 0x75, 0xC4, - 0x83, 0x63, 0x6C, 0x4A, 0xF2, 0x85, 0x5F, 0xA9, 0xFC, 0xDA, 0x91, 0x34, 0xC5, 0xE2, 0x1C, 0xB8, - 0x22, 0x29, 0x33, 0x18, 0x95, 0x75, 0xE5, 0x56, 0x10, 0x0D, 0xCE, 0x4F, 0x2A, 0x17, 0x2D, 0x5D, - 0x09, 0x2C, 0xE3, 0x99, 0x65, 0x53, 0x86, 0x42, 0x46, 0x3A, 0xCB, 0xEA, 0x85, 0xFB, 0xDA, 0x6C, - 0xCF, 0x9E, 0x54, 0x1A, 0xC5, 0xC9, 0xA5, 0x5E, 0xFB, 0xE7, 0xFD, 0xEE, 0xE8, 0xB6, 0x5F, 0x2B, - 0x32, 0xF2, 0x7C, 0x92, 0xCC, 0xD5, 0x09, 0xBA, 0xDE, 0xB0, 0x65, 0x1F, 0x38, 0x3B, 0xEA, 0xE4, - 0xB1, 0x7C, 0x48, 0x51, 0x2C, 0x15, 0x37, 0xE8, 0x7C, 0x60, 0x70, 0xF6, 0x82, 0xDD, 0xB0, 0x2E, - 0x1A, 0x05, 0xBE, 0xE9, 0x73, 0x4B, 0x48, 0x78, 0x3B, 0x52, 0xAF, 0xD1, 0xE0, 0x9A, 0xE2, 0xB2, - 0xA4, 0x48, 0x55, 0x29, 0x7F, 0x58, 0xAD, 0x4B, 0x9C, 0xE3, 0x93, 0x54, 0xF9, 0x6C, 0x95, 0x2A, - 0x37, 0x96, 0x41, 0xF4, 0x41, 0x4A, 0xE9, 0x6C, 0xD1, 0xD4, 0x15, 0x14, 0x9A, 0xE1, 0x53, 0x54, - 0x39, 0xA8, 0x3D, 0x41, 0x6B, 0x85, 0x89, 0xBE, 0x5F, 0x69, 0x38, 0x76, 0x9D, 0xCE, 0x94, 0xF3, - 0x39, 0x89, 0x77, 0x3F, 0x0E, 0xF1, 0x1D, 0x4F, 0xF8, 0x2F, 0xC1, 0xC6, 0x51, 0x32, 0xE2, 0xF8, - 0xFA, 0x67, 0xC2, 0xEF, 0xC2, 0x24, 0xAB, 0xB8, 0x6F, 0xA1, 0xDA, 0x10, 0x86, 0xBC, 0x57, 0xB8, - 0x4B, 0x0A, 0xC6, 0x3D, 0x60, 0xC3, 0x25, 0xB9, 0x5B, 0x9F, 0x1C, 0x61, 0xC9, 0xE4, 0x2C, 0xF1, - 0x4A, 0xDB, 0x83, 0x03, 0xB5, 0x77, 0xD1, 0xA8, 0xD4, 0xBF, 0xC2, 0xD8, 0x17, 0xF7, 0x83, 0xA0, - 0xBE, 0x02, 0xB3, 0xB8, 0x96, 0xAF, 0x5C, 0x8A, 0x98, 0x92, 0xE6, 0x8A, 0x31, 0x6A, 0x4F, 0xB0, - 0xE3, 0xCA, 0xA2, 0x8D, 0x80, 0xD9, 0x15, 0xCF, 0xA5, 0xD8, 0x84, 0x80, 0xC1, 0x6A, 0x53, 0x3F, - 0xBE, 0x40, 0xA9, 0xF4, 0x3B, 0xC7, 0xAA, 0x7E, 0xCA, 0xFD, 0xE5, 0xD5, 0x19, 0xDE, 0x23, 0xDC, - 0x1D, 0x55, 0x5D, 0xA2, 0x26, 0xB2, 0x2E, 0x8D, 0x55, 0x05, 0x2A, 0xEA, 0xB3, 0xE3, 0x9B, 0x6E, - 0x31, 0x97, 0x72, 0x84, 0x2A, 0xE4, 0xC0, 0xEC, 0x62, 0x8E, 0x47, 0x9C, 0x84, 0xFA, 0xA9, 0x1A, - 0x6A, 0x80, 0xD1, 0xE5, 0x5A, 0xC5, 0x15, 0xAC, 0x7E, 0x5C, 0xFB, 0x5B, 0xA1, 0x8D, 0x8B, 0x0E, - 0xE9, 0xD1, 0x9F, 0x10, 0x53, 0xF5, 0xCC, 0x2D, 0xC9, 0xBE, 0xB1, 0x39, 0xEC, 0x2F, 0xB4, 0xBD, - 0x7B, 0x32, 0x8B, 0x76, 0x7E, 0xA5, 0x97, 0x68, 0xD3, 0xD0, 0xF7, 0x23, 0xB1, 0xE3, 0x41, 0xA6, - 0xF1, 0x4D, 0x6F, 0x06, 0xC8, 0xD3, 0x3E, 0xDB, 0xC3, 0xE7, 0x43, 0x54, 0x3D, 0x86, 0x93, 0xAF, - 0xAF, 0x2B, 0x0B, 0x48, 0x4C, 0x95, 0xDC, 0x5A, 0xDA, 0xE7, 0xEC, 0x53, 0x0D, 0x5B, 0xE0, 0xD5, - 0x81, 0xFA, 0xD7, 0x50, 0x50, 0xAD, 0x19, 0x24, 0x54, 0x38, 0x4D, 0x56, 0xA3, 0x99, 0xB9, 0xAF, - 0x4C, 0xC5, 0x9D, 0x7B, 0xCB, 0xAC, 0x1F, 0xC2, 0x96, 0xD7, 0x8E, 0xCA, 0x26, 0xD4, 0xCD, 0x2C, - 0x74, 0x34, 0x4A, 0xF7, 0xF5, 0x08, 0x16, 0x77, 0x2D, 0x98, 0x43, 0x3A, 0x4A, 0x78, 0xE6, 0x9F, - 0xA9, 0x57, 0xAB, 0x3A, 0x75, 0xA0, 0x43, 0x38, 0x05, 0x80, 0x2A, 0x0E, 0x56, 0xA1, 0xF1, 0xDF, - 0x7A, 0x0D, 0x0B, 0x65, 0xED, 0x34, 0xE2, 0x21, 0x1E, 0xB4, 0x15, 0x51, 0xE7, 0x9A, 0x80, 0x28, - 0xE8, 0x12, 0xFA, 0xE3, 0x5C, 0xD6, 0x63, 0x17, 0xFC, 0x86, 0xD0, 0x57, 0x70, 0xDA, 0xD2, 0x37, - 0x57, 0x97, 0x89, 0x64, 0xB1, 0xF0, 0xF0, 0x95, 0x6C, 0xB6, 0x68, 0xB1, 0xB3, 0x84, 0x85, 0x12, - 0x9F, 0x77, 0xCE, 0x39, 0x3D, 0xEC, 0x62, 0xE3, 0x24, 0x01, 0x83, 0x09, 0x9E, 0xCF, 0xE8, 0x81, - 0x9F, 0xE1, 0x6A, 0x82, 0x56, 0xD5, 0x4C, 0x90, 0x6E, 0xEA, 0x22, 0x46, 0xAD, 0x9C, 0x07, 0xE3, - 0x5D, 0x66, 0x84, 0x5A, 0x37, 0x97, 0x53, 0x8E, 0xFB, 0xE9, 0xC8, 0xA2, 0x8A, 0x68, 0xC4, 0x15, - 0x76, 0x5A, 0x75, 0x2D, 0x18, 0xD2, 0x33, 0xAA, 0xAA, 0x27, 0xE2, 0x42, 0xDC, 0xE8, 0x88, 0x9F, - 0xF0, 0x5D, 0x63, 0x32, 0x8B, 0x7C, 0x70, 0x82, 0x68, 0x01, 0x13, 0x54, 0xEF, 0xB5, 0xBC, 0x89, - 0xF0, 0xBE, 0xB1, 0xDF, 0x25, 0xBE, 0x63, 0x95, 0xB4, 0xA3, 0x62, 0xF5, 0xFF, 0x77, 0x88, 0x7F, - 0x70, 0x64, 0x34, 0x47, 0x7D, 0x70, 0xC0, 0xB9, 0x40, 0x81, 0x35, 0x3A, 0xB8, 0x66, 0xB6, 0x80, - 0x35, 0x04, 0xC7, 0xB5, 0x55, 0x0A, 0x71, 0xD8, 0x83, 0x9F, 0x81, 0xE0, 0xE0, 0x70, 0xF1, 0x6A, - 0x4F, 0x23, 0x57, 0xAA, 0x6E, 0xD7, 0xAE, 0x53, 0x91, 0x2B, 0x6A, 0xE1, 0x80, 0x6F, 0x4B, 0xFF, - 0x86, 0xB0, 0x08, 0x8D, 0x3C, 0xF3, 0x7A, 0x45, 0x15, 0xD0, 0x38, 0x26, 0x61, 0x2C, 0xBB, 0xA6, - 0x33, 0xC5, 0x4A, 0x26, 0xA0, 0x2D, 0xB7, 0x65, 0x2E, 0x1D, 0x81, 0xF8, 0x7A, 0x64, 0xED, 0x52, - 0x4F, 0x43, 0x36, 0x6A, 0x78, 0x1A, 0x36, 0x6A, 0xFE, 0x31, 0x4C, 0x5B, 0x4C, 0x7E, 0x1A, 0x49, - 0x75, 0x07, 0x54, 0xAC, 0x0F, 0xED, 0x7B, 0x15, 0x2C, 0x30, 0x11, 0x56, 0xC1, 0x8D, 0x2F, 0xEA, - 0xA7, 0x37, 0x4D, 0xCA, 0x95, 0x55, 0xD0, 0x5E, 0x32, 0x69, 0x0A, 0x9B, 0x7F, 0xFE, 0xFF, 0x36, - 0xFD, 0x3F, 0x6D, 0xD3, 0x2B, 0xB4, 0xD1, 0x06, 0xA3, 0xC2, 0xD2, 0xEE, 0x07, 0xB4, 0xB2, 0x71, - 0xDB, 0x61, 0x39, 0x9C, 0x9D, 0xE6, 0xF8, 0xD2, 0x5D, 0x3F, 0xD0, 0xC4, 0x5A, 0x0D, 0xE3, 0x3A, - 0xB1, 0xB2, 0xD5, 0xD7, 0x59, 0xAC, 0xB2, 0x28, 0xE9, 0x3C, 0x0B, 0x5D, 0x5E, 0xF4, 0x74, 0x05, - 0xF0, 0x1F, 0x2E, 0x7B, 0xEB, 0x23, 0x74, 0xCB, 0xF1, 0x24, 0xFF, 0x10, 0x51, 0x65, 0xB8, 0x9F, - 0x58, 0xF5, 0xD0, 0xB6, 0x14, 0x6D, 0xF0, 0x91, 0xB2, 0x5B, 0x3D, 0x98, 0x8A, 0xB6, 0xE2, 0x1E, - 0x69, 0x75, 0x5F, 0x26, 0xBE, 0xD6, 0xDA, 0xA6, 0x83, 0x44, 0xB5, 0x9C, 0x9B, 0x2E, 0xD8, 0x0D, - 0x5D, 0x07, 0x61, 0x91, 0x64, 0xDE, 0x66, 0xA7, 0xB8, 0xE3, 0x9F, 0xB2, 0xBA, 0x02, 0x32, 0xBC, - 0x95, 0x6A, 0xAC, 0x08, 0xE6, 0x34, 0x70, 0x6D, 0x30, 0x7F, 0xC2, 0x4E, 0xBF, 0x65, 0x0B, 0xD8, - 0xCF, 0xEA, 0xB5, 0x24, 0x1E, 0x09, 0x08, 0xD3, 0x02, 0x9F, 0xC0, 0xD7, 0xF0, 0xBB, 0x81, 0x4A, - 0xA2, 0x48, 0x89, 0x34, 0x15, 0xEE, 0xE8, 0x69, 0x3B, 0x6C, 0x0A, 0xCF, 0x71, 0x8B, 0x78, 0xAE, - 0x92, 0x0E, 0xB3, 0x73, 0xB6, 0x0C, 0xA6, 0x9B, 0x43, 0x10, 0xC9, 0xC2, 0xC2, 0x2C, 0x28, 0x8C, - 0x4C, 0xB8, 0x8F, 0xA4, 0x12, 0x1A, 0x67, 0x65, 0x3E, 0x51, 0xED, 0x2B, 0x2E, 0xD6, 0x56, 0x60, - 0x29, 0x2E, 0x74, 0xD7, 0x4E, 0xB8, 0x70, 0xC4, 0x1E, 0xE1, 0xE6, 0x5E, 0x2F, 0x50, 0xF4, 0x2E, - 0x6D, 0xA9, 0xB4, 0xEE, 0x77, 0x9B, 0x4B, 0xA0, 0x6E, 0x73, 0xC3, 0x80, 0xC5, 0xF2, 0x80, 0x45, - 0xB7, 0xE1, 0x48, 0xA1, 0xD2, 0x00, 0x3A, 0x7D, 0x68, 0xC5, 0xA0, 0x4C, 0x2E, 0xC6, 0x52, 0xEA, - 0x93, 0xAF, 0x48, 0x7D, 0xAA, 0xC3, 0x1E, 0x8A, 0x9F, 0xA5, 0x89, 0x9B, 0x43, 0x4F, 0x61, 0xB7, - 0x34, 0x0B, 0xA7, 0x90, 0xB3, 0xE8, 0x8B, 0x55, 0x34, 0xC8, 0x73, 0xC8, 0x18, 0x9E, 0x2F, 0x19, - 0xF1, 0x72, 0x30, 0xEC, 0x1D, 0xAA, 0xD4, 0x74, 0x0A, 0x49, 0x0D, 0x65, 0xA5, 0x23, 0x81, 0xF7, - 0x29, 0x60, 0x5D, 0xD8, 0xE7, 0x53, 0xBA, 0x3B, 0x49, 0x27, 0xDC, 0x56, 0x26, 0x60, 0x97, 0x9F, - 0xE5, 0xAA, 0x3C, 0x2B, 0xD8, 0xEF, 0x85, 0x3F, 0xFD, 0xAE, 0x52, 0xE3, 0xD6, 0xD6, 0x46, 0xBF, - 0xF8, 0xAF, 0xA4, 0x96, 0x1B, 0xBC, 0xA0, 0x70, 0x00, 0x8C, 0xA2, 0xD6, 0x09, 0x84, 0xC4, 0x85, - 0x34, 0xD4, 0xE0, 0x7A, 0xA3, 0x8C, 0xBA, 0xCA, 0x57, 0xBE, 0xC7, 0x4D, 0xBE, 0xCB, 0x43, 0x36, - 0x3A, 0x07, 0xB3, 0xA2, 0xBB, 0x75, 0x02, 0x07, 0x8A, 0x3F, 0x4E, 0x55, 0x5A, 0x49, 0x52, 0xDF, - 0xCB, 0x0A, 0xC2, 0x1D, 0x8F, 0xE8, 0x45, 0xC1, 0x8A, 0x2E, 0xF0, 0x30, 0x1B, 0x82, 0xAE, 0x79, - 0x3C, 0xA6, 0xA7, 0x3C, 0x94, 0x14, 0xAB, 0x32, 0xAC, 0xF9, 0x3C, 0x4E, 0xC8, 0x61, 0x38, 0x15, - 0x58, 0x18, 0x5E, 0xF1, 0x65, 0x5C, 0x29, 0xC1, 0x2D, 0xC9, 0xA8, 0xFB, 0x4A, 0xB0, 0x07, 0xF3, - 0xA2, 0xB7, 0x12, 0x0F, 0xDF, 0x85, 0xF7, 0x2C, 0xBC, 0xE2, 0x3E, 0xDB, 0x61, 0x31, 0x24, 0xD5, - 0x3E, 0x98, 0x2A, 0xD4, 0x9F, 0x45, 0xA1, 0x0B, 0x56, 0x0B, 0x84, 0xFA, 0x20, 0xB8, 0x39, 0x10, - 0x3A, 0x46, 0xB7, 0xA1, 0xD0, 0x83, 0xB6, 0x14, 0x7A, 0x97, 0x50, 0x4B, 0x0B, 0x51, 0x74, 0xF1, - 0xC6, 0x2A, 0x06, 0x4F, 0x89, 0x78, 0xEF, 0x49, 0x9F, 0x0C, 0x61, 0x9A, 0xCE, 0x47, 0x79, 0x12, - 0xCD, 0xE0, 0x50, 0xB4, 0x02, 0x2F, 0x12, 0x01, 0xEA, 0xBE, 0xB6, 0xB3, 0xD7, 0xED, 0x74, 0x3A, - 0xE9, 0xFD, 0x2A, 0x1C, 0x49, 0xCF, 0x37, 0x36, 0xA2, 0xCC, 0x43, 0x1F, 0x9F, 0x36, 0xB1, 0xDA, - 0x9A, 0xFE, 0x89, 0xA0, 0xCF, 0x35, 0xD6, 0x23, 0x24, 0x29, 0xF7, 0x42, 0x49, 0x4F, 0x14, 0x3A, - 0xAB, 0xFA, 0x8B, 0x2F, 0x40, 0x4F, 0x75, 0x95, 0xB8, 0x26, 0x33, 0x1E, 0xE7, 0x6A, 0x17, 0x5B, - 0x39, 0x22, 0xC9, 0x7C, 0x91, 0xD1, 0x99, 0x19, 0xB1, 0xE3, 0x24, 0x5E, 0xA9, 0x00, 0xF0, 0x0C, - 0xBC, 0xD3, 0xAD, 0xE2, 0x6D, 0xB1, 0x27, 0xBF, 0x26, 0xC2, 0xB7, 0x27, 0x70, 0x32, 0x3B, 0xC5, - 0x7B, 0xFA, 0xBA, 0xA1, 0x5E, 0xA9, 0x19, 0x7C, 0x29, 0x2D, 0x62, 0xE7, 0xD9, 0xC4, 0x26, 0xFF, - 0x5C, 0xB5, 0x7A, 0xD0, 0x07, 0xC1, 0x0A, 0x8D, 0x4A, 0x99, 0x07, 0xCB, 0x03, 0x8C, 0x33, 0xBD, - 0x59, 0x32, 0x9A, 0x5A, 0xC5, 0xED, 0x9C, 0x1A, 0xC2, 0x2A, 0xD7, 0x6B, 0xB2, 0xD1, 0x18, 0x22, - 0xDB, 0xD8, 0x79, 0xB2, 0xAA, 0x51, 0x57, 0xE8, 0xE1, 0x64, 0xD1, 0xF7, 0xD1, 0x01, 0xB3, 0xE9, - 0x0E, 0x61, 0xD5, 0x6C, 0x7D, 0x2C, 0x57, 0xF5, 0x8B, 0xCA, 0x5B, 0xE6, 0x89, 0x20, 0x7F, 0x7F, - 0x44, 0xA3, 0x88, 0x45, 0x1A, 0x35, 0xC4, 0x9E, 0x21, 0x64, 0x89, 0xD8, 0x92, 0x5C, 0x95, 0x75, - 0xE1, 0x48, 0xA4, 0x4C, 0x1C, 0xFA, 0xE4, 0x2E, 0x85, 0xB4, 0xB6, 0x42, 0xE7, 0xC4, 0x1F, 0x3F, - 0x11, 0x79, 0x5C, 0x93, 0x4E, 0x29, 0x83, 0xBE, 0x6F, 0xEA, 0xF7, 0xE8, 0x28, 0xA8, 0xBF, 0x48, - 0x66, 0x3A, 0x56, 0xE0, 0xC7, 0x3D, 0x86, 0x78, 0x1C, 0x8B, 0xEC, 0xC3, 0xF0, 0xE2, 0x9C, 0x9E, - 0x18, 0x90, 0xDD, 0x5E, 0xB0, 0x9A, 0xF3, 0x69, 0xF2, 0x3F, 0x63, 0x0B, 0x65, 0x2C, 0x88, 0x12, - 0x2E, 0x0F, 0x19, 0xAE, 0xBA, 0xA3, 0x52, 0x87, 0xF2, 0xD6, 0x43, 0x86, 0x97, 0x46, 0xA3, 0x31, - 0xC1, 0x60, 0xD1, 0x82, 0xE4, 0xFB, 0xE9, 0x7D, 0x19, 0x93, 0xBE, 0x74, 0x0E, 0xF8, 0x34, 0x8C, - 0x16, 0x87, 0x6C, 0xFB, 0x4C, 0x7C, 0xE5, 0xBF, 0xCE, 0xD8, 0x0D, 0x2C, 0x05, 0x48, 0xBB, 0xE2, - 0x64, 0xBB, 0xC9, 0xB6, 0xCF, 0xC3, 0x91, 0xC8, 0xD4, 0x37, 0x45, 0x1A, 0x34, 0x85, 0x7F, 0x60, - 0xA9, 0x78, 0x62, 0x05, 0x29, 0xFD, 0xD1, 0xF4, 0x6E, 0x95, 0x0F, 0x95, 0x91, 0x94, 0x40, 0x01, - 0x09, 0x54, 0x11, 0xD8, 0xF9, 0x24, 0xBB, 0x10, 0xDA, 0xC5, 0x79, 0x70, 0x7E, 0x3B, 0x3F, 0xAD, - 0x6A, 0x76, 0x54, 0x09, 0xB6, 0xA2, 0x21, 0x87, 0xED, 0x32, 0xC9, 0x65, 0xB6, 0xCB, 0xA2, 0x21, - 0x5B, 0x63, 0xE0, 0xE2, 0xD2, 0x4A, 0x3D, 0x09, 0xC1, 0xF2, 0x13, 0xDE, 0x2E, 0x54, 0x2F, 0x63, - 0x8A, 0xE5, 0x40, 0x80, 0x26, 0x0B, 0x9D, 0x64, 0x0F, 0x3D, 0x31, 0xA4, 0x3C, 0xBB, 0xBB, 0xFF, - 0xAA, 0x94, 0x04, 0x22, 0xE9, 0x17, 0x3F, 0xE1, 0xEC, 0x68, 0x52, 0x3B, 0xA3, 0xF1, 0x0E, 0x8D, - 0xDF, 0x31, 0xEB, 0xD0, 0xFD, 0x72, 0x7D, 0xC7, 0x99, 0x99, 0xBA, 0x6F, 0x42, 0xC1, 0xD9, 0x83, - 0x11, 0x4C, 0x1D, 0x64, 0x96, 0x38, 0x1E, 0x6C, 0xE4, 0x18, 0x2C, 0x73, 0x7C, 0x3A, 0x9B, 0xB5, - 0xE2, 0xD7, 0xE8, 0xD2, 0x15, 0xF5, 0xFD, 0x7D, 0x13, 0x58, 0x2B, 0x9D, 0x4B, 0xF0, 0x11, 0x2A, - 0x36, 0x2B, 0xAC, 0x2E, 0x2F, 0x20, 0x4C, 0xF4, 0xC9, 0x99, 0xC8, 0xC0, 0x18, 0x1D, 0x74, 0x58, - 0x3B, 0xA1, 0xCC, 0x4D, 0x45, 0x9F, 0xA6, 0xEA, 0x08, 0xC2, 0x2C, 0x97, 0x14, 0x94, 0xCB, 0xC1, - 0x72, 0x80, 0xDF, 0xC9, 0xAF, 0xB9, 0xC5, 0x71, 0x3E, 0x64, 0xA9, 0x7C, 0x4D, 0xEF, 0x1E, 0x4E, - 0x2B, 0xEF, 0xF9, 0xC9, 0xF1, 0xCA, 0xD7, 0x9D, 0x7E, 0x78, 0x57, 0x7A, 0xC3, 0xA4, 0x12, 0x1C, - 0xFD, 0x03, 0x0F, 0xC1, 0x05, 0xBC, 0xF8, 0x1A, 0xC0, 0x01, 0x16, 0x4F, 0x8E, 0x32, 0x38, 0x0D, - 0xE1, 0xEB, 0xFF, 0x5E, 0x96, 0x25, 0x19, 0x56, 0xF6, 0x74, 0x58, 0xC9, 0xC4, 0x1F, 0xB3, 0x10, - 0xCE, 0xC1, 0x10, 0xF4, 0x35, 0x59, 0x93, 0xC6, 0xD4, 0x4A, 0xF7, 0xEE, 0xEF, 0x21, 0x0B, 0x34, - 0xB5, 0x7F, 0x37, 0x78, 0x55, 0x5E, 0xF2, 0x3A, 0xBC, 0x5B, 0x70, 0xBA, 0x15, 0xD9, 0xD9, 0x9A, - 0x4A, 0x6B, 0xF5, 0x49, 0xEF, 0xDA, 0x81, 0x16, 0x99, 0x9E, 0xEF, 0x56, 0x2E, 0x0B, 0x1E, 0xDB, - 0x52, 0xCD, 0xFA, 0xBD, 0xC2, 0x9B, 0x60, 0xBC, 0x70, 0xCC, 0x76, 0xE8, 0xDD, 0x06, 0x53, 0x97, - 0xC0, 0x34, 0x03, 0x5B, 0x35, 0x37, 0xC5, 0xD0, 0x98, 0xDF, 0x85, 0x63, 0x7C, 0xFB, 0xC7, 0x7E, - 0xFC, 0x91, 0xAD, 0xEE, 0xC1, 0x0A, 0x7B, 0x76, 0x3C, 0x2E, 0x69, 0x98, 0x2A, 0xF6, 0x17, 0x1C, - 0x6F, 0xF7, 0x9F, 0x3D, 0xFB, 0xEB, 0xB1, 0x71, 0x2D, 0x73, 0x55, 0x51, 0x83, 0x21, 0x35, 0xF7, - 0x3B, 0x24, 0x55, 0xF6, 0xFF, 0x5E, 0x2A, 0x98, 0x37, 0x56, 0xC8, 0x5C, 0xDC, 0xC0, 0xA6, 0xF3, - 0xBD, 0xC2, 0xC0, 0x98, 0xB2, 0xE1, 0x4F, 0x69, 0x53, 0x84, 0x25, 0x93, 0x31, 0xFC, 0xE0, 0xB5, - 0xF8, 0xD4, 0xD5, 0xF8, 0x89, 0xB1, 0x8F, 0x6E, 0x2F, 0x99, 0xA8, 0xB2, 0xAB, 0x82, 0x4B, 0x3B, - 0xB7, 0x84, 0xB6, 0x28, 0x1C, 0xF1, 0x3C, 0x47, 0xE3, 0x99, 0x1D, 0x16, 0x59, 0xD4, 0x96, 0xD0, - 0x4A, 0xA9, 0x56, 0x39, 0x1B, 0x2B, 0xA1, 0x09, 0x89, 0x8F, 0xC8, 0xE8, 0x3B, 0x7C, 0x48, 0x2F, - 0xF8, 0x88, 0xE6, 0x07, 0x47, 0x8A, 0xCE, 0x32, 0xE7, 0x75, 0x69, 0x61, 0xF5, 0x52, 0x64, 0xCD, - 0x40, 0x6F, 0x25, 0xFA, 0x81, 0xF5, 0x3C, 0xAD, 0x3E, 0x3C, 0x16, 0xAA, 0xC7, 0x82, 0x98, 0x05, - 0xA0, 0x32, 0xDD, 0xDA, 0x50, 0xE9, 0x7D, 0xA6, 0x7D, 0x4E, 0xE8, 0xBC, 0x70, 0x28, 0x5E, 0x14, - 0xBA, 0xEF, 0x1C, 0x40, 0x95, 0x4F, 0xD6, 0x76, 0x45, 0x78, 0x37, 0xD5, 0x04, 0x1C, 0x17, 0xC5, - 0xC8, 0xA1, 0x2F, 0xBF, 0x74, 0xE7, 0x43, 0x39, 0x0A, 0x95, 0x73, 0x55, 0x87, 0xB2, 0xAD, 0x9C, - 0x9D, 0x65, 0x7C, 0x4E, 0xD3, 0x56, 0x6F, 0x01, 0xEC, 0x34, 0xCD, 0xBD, 0x68, 0xA7, 0x59, 0x7E, - 0xAF, 0x5D, 0x94, 0xDC, 0x96, 0xEE, 0x1A, 0xB9, 0xA7, 0xEE, 0xF5, 0xE5, 0x84, 0x4B, 0x85, 0x63, - 0xAA, 0xF3, 0x23, 0xD0, 0x2C, 0xFF, 0xDF, 0xF6, 0xDE, 0xAE, 0xB7, 0xAD, 0x64, 0x59, 0x14, 0x7B, - 0xF7, 0xAF, 0xE8, 0xF1, 0x99, 0x33, 0xA4, 0xB6, 0x48, 0x89, 0xA4, 0x3E, 0x2C, 0x59, 0xFE, 0x38, - 0xB2, 0x24, 0x8F, 0xB5, 0x47, 0xB2, 0xB5, 0x25, 0xD9, 0x33, 0xB3, 0x35, 0x9E, 0x99, 0x45, 0x72, - 0x51, 0x5A, 0x36, 0xC9, 0xC5, 0xE1, 0x5A, 0x94, 0xC8, 0x3D, 0xA3, 0xC1, 0xC5, 0x7D, 0x08, 0x70, - 0x81, 0xE0, 0x22, 0x08, 0x0E, 0x92, 0x3C, 0xE4, 0x21, 0x40, 0x92, 0xB7, 0x3C, 0x24, 0x40, 0x80, - 0x00, 0xF9, 0x78, 0xC9, 0x1F, 0xC8, 0x7F, 0x38, 0xBF, 0x24, 0x5D, 0x55, 0xFD, 0xBD, 0x7A, 0x2D, - 0x2E, 0xCA, 0xF2, 0xDE, 0xFB, 0xDC, 0x73, 0x8D, 0x19, 0x5B, 0x5A, 0xDD, 0x5D, 0x5D, 0x5D, 0x5D, - 0xDD, 0x5D, 0x5D, 0x55, 0x5D, 0xF5, 0x31, 0x84, 0x27, 0x80, 0xD8, 0x97, 0x22, 0x83, 0xEC, 0x4D, - 0x5B, 0x21, 0xB5, 0x15, 0xFA, 0x60, 0x08, 0x8A, 0x78, 0xA8, 0x8F, 0x61, 0x14, 0xF8, 0xCE, 0xE7, - 0x28, 0xAC, 0x64, 0x63, 0x25, 0x2E, 0x53, 0x3B, 0x74, 0x94, 0x65, 0x6D, 0x70, 0x93, 0x90, 0x37, - 0x7D, 0x92, 0x3C, 0x54, 0x83, 0x04, 0x6A, 0xA0, 0x1F, 0x85, 0x6E, 0x25, 0x0D, 0x65, 0xFB, 0x6F, - 0x8E, 0x99, 0x78, 0xB3, 0x3B, 0x0E, 0xFB, 0x10, 0xD3, 0x42, 0xC8, 0x8E, 0x31, 0xB9, 0x35, 0xA0, - 0x99, 0x8B, 0xAC, 0x69, 0xD2, 0xB6, 0x2A, 0xB4, 0x06, 0x26, 0x79, 0x6B, 0x4C, 0x58, 0xBB, 0x6B, - 0xAE, 0x4D, 0x95, 0xDE, 0xF6, 0xD8, 0x17, 0x4D, 0x14, 0xA4, 0xE1, 0xAB, 0x6D, 0x4A, 0xF4, 0xDD, - 0x27, 0x9C, 0x1B, 0xEA, 0x03, 0xF5, 0x1C, 0x48, 0xDA, 0xE8, 0x3A, 0x01, 0xDF, 0x2E, 0x12, 0x96, - 0xF4, 0xE1, 0x02, 0x06, 0x4F, 0xF8, 0x27, 0xC3, 0x8F, 0x33, 0x0B, 0x55, 0x50, 0x83, 0x64, 0xB0, - 0x45, 0x33, 0x73, 0x06, 0x59, 0x3C, 0xE5, 0x11, 0x33, 0xDB, 0x84, 0xAD, 0x94, 0xE9, 0x0E, 0x14, - 0xAF, 0xBA, 0x34, 0x6F, 0xDC, 0x1A, 0xF1, 0x3D, 0xD0, 0xDB, 0xA2, 0x91, 0x89, 0x08, 0xAB, 0x2D, - 0x82, 0x35, 0xA1, 0xAE, 0x71, 0x8C, 0x51, 0x2B, 0xC6, 0x80, 0xF9, 0x19, 0xDE, 0xE6, 0xDF, 0x66, - 0xC2, 0x2C, 0x24, 0x65, 0x7A, 0xA1, 0xF0, 0x59, 0x59, 0x59, 0x41, 0xBB, 0x4F, 0x44, 0x12, 0xFF, - 0x0A, 0xBF, 0xBC, 0x73, 0xCE, 0x8E, 0xA7, 0x10, 0xBD, 0x00, 0xFA, 0x7A, 0xA0, 0x6C, 0x94, 0xA9, - 0x36, 0x6F, 0xA2, 0x65, 0x09, 0x2F, 0x06, 0xB0, 0xB6, 0x25, 0xE9, 0x93, 0xE7, 0xE5, 0xC7, 0x6C, - 0x2B, 0x8A, 0x38, 0x02, 0x29, 0x5E, 0xCD, 0xC3, 0xEB, 0x15, 0xF1, 0xF3, 0x17, 0x64, 0xBD, 0x17, - 0xF3, 0xFC, 0x9C, 0x2D, 0xAB, 0x22, 0xF1, 0xE9, 0x31, 0x54, 0xBE, 0xB9, 0x8A, 0x3A, 0x57, 0x4E, - 0x5D, 0xA8, 0xAD, 0x8A, 0xEA, 0xF8, 0xCE, 0x51, 0xB6, 0x50, 0x8F, 0x12, 0x68, 0x65, 0xF3, 0xF1, - 0xF2, 0xFB, 0xCC, 0x36, 0x28, 0x91, 0x01, 0xE7, 0xE7, 0x2E, 0xAF, 0xC1, 0x21, 0xA2, 0x79, 0x4D, - 0x21, 0x29, 0x7F, 0x80, 0x77, 0x4B, 0xBC, 0xAF, 0x06, 0x07, 0x6C, 0x7C, 0x5A, 0xE7, 0x9F, 0x9A, - 0xEA, 0x93, 0x64, 0x43, 0x05, 0x5A, 0x0D, 0x8F, 0xCB, 0xB2, 0x8E, 0x2E, 0x1B, 0x7B, 0x2D, 0xB0, - 0x2E, 0x82, 0x42, 0xBF, 0x52, 0x46, 0x8B, 0x33, 0x0F, 0x90, 0x32, 0x53, 0x02, 0x15, 0x2A, 0xE8, - 0x81, 0x54, 0x71, 0x35, 0x3A, 0x8E, 0xFD, 0x80, 0x9E, 0x13, 0xE3, 0x74, 0xD3, 0x5B, 0x03, 0xB1, - 0x05, 0x60, 0x74, 0x15, 0xD0, 0x3B, 0xC0, 0x4E, 0x20, 0x36, 0x82, 0xAB, 0x70, 0xC0, 0xA2, 0x21, - 0x44, 0x6D, 0x91, 0x47, 0xAC, 0x7A, 0x9E, 0x80, 0xE1, 0x9D, 0xF4, 0xC6, 0x04, 0xE7, 0x19, 0xFA, - 0xFD, 0xEB, 0x6D, 0xE6, 0x65, 0x74, 0x09, 0x9B, 0x1A, 0x48, 0xB6, 0x37, 0x57, 0x21, 0xDA, 0x27, - 0xDA, 0x31, 0xE7, 0xDA, 0x30, 0xE1, 0x9D, 0xF5, 0x7A, 0x61, 0x07, 0xA2, 0xD8, 0x88, 0x6E, 0xF0, - 0x81, 0x05, 0xDF, 0x54, 0x43, 0xD0, 0x93, 0x83, 0xBE, 0x25, 0xEE, 0xE9, 0x9B, 0x1D, 0x5E, 0xE6, - 0x94, 0x60, 0xA4, 0xD5, 0xEE, 0xE3, 0x98, 0xEF, 0xB3, 0x2F, 0x38, 0x48, 0xF7, 0xE5, 0xA3, 0xB7, - 0x0A, 0xDF, 0x57, 0xE1, 0x87, 0x17, 0xF8, 0xA9, 0x6A, 0x1D, 0x51, 0x96, 0x74, 0x61, 0x38, 0xA4, - 0x80, 0xA4, 0x5C, 0x71, 0xF7, 0x9C, 0x21, 0x6C, 0xF1, 0x7C, 0xA0, 0xBD, 0x09, 0xB9, 0x04, 0xC0, - 0xDA, 0xE2, 0xEB, 0x56, 0x2C, 0xC2, 0x20, 0xA1, 0x1B, 0x76, 0x40, 0xE6, 0x16, 0xD4, 0x9D, 0xF5, - 0xA2, 0xE9, 0xCA, 0x1C, 0x7D, 0x88, 0x35, 0xCF, 0x19, 0x9D, 0x88, 0x94, 0xF2, 0x57, 0xD9, 0x77, - 0x30, 0x34, 0x6B, 0xDE, 0xE0, 0xEB, 0xDD, 0x62, 0x5F, 0xFC, 0x03, 0xCE, 0xD7, 0x3F, 0xB6, 0x1A, - 0xE7, 0x9C, 0xF2, 0x70, 0x7E, 0x00, 0xA8, 0xF3, 0x58, 0xAA, 0x95, 0xF9, 0x96, 0x14, 0x8E, 0xE1, - 0xF9, 0x2E, 0x04, 0xDD, 0x09, 0x93, 0xF0, 0x81, 0x98, 0x29, 0x0A, 0x13, 0x02, 0x91, 0x2B, 0xE0, - 0xA4, 0x02, 0xB3, 0x32, 0xBF, 0x94, 0xF4, 0x47, 0x9C, 0x1C, 0x8F, 0xA1, 0xCA, 0x29, 0x1F, 0xC5, - 0x75, 0xC0, 0xB7, 0x18, 0x0C, 0x88, 0x84, 0x9F, 0xE4, 0x82, 0x5B, 0xE9, 0xD0, 0x6B, 0x64, 0xCE, - 0x3D, 0x1D, 0xF8, 0x19, 0x9E, 0x86, 0xAC, 0x74, 0xEC, 0x46, 0x82, 0x30, 0xF0, 0x74, 0x98, 0x7A, - 0x5A, 0x95, 0x6D, 0x05, 0xA8, 0x17, 0xE9, 0x70, 0x8F, 0xF7, 0x5D, 0x63, 0xF0, 0x9C, 0xE0, 0x05, - 0x96, 0x89, 0xDF, 0xF9, 0xB2, 0x88, 0xC7, 0xF4, 0xA5, 0xC6, 0xCE, 0x42, 0xC1, 0x8F, 0x27, 0x42, - 0x5B, 0xE8, 0xF5, 0xB5, 0x92, 0x4C, 0xEB, 0xF7, 0x07, 0x42, 0x73, 0x92, 0xB9, 0x05, 0x8A, 0x2B, - 0x50, 0xF6, 0x82, 0x84, 0xA6, 0x55, 0x7C, 0x8B, 0xBD, 0xD6, 0x52, 0xCA, 0x1C, 0xCE, 0xF4, 0x61, - 0x1F, 0xDD, 0x01, 0x60, 0xA5, 0xC6, 0x43, 0x9C, 0x35, 0xFC, 0x58, 0xA1, 0x50, 0x50, 0x91, 0x6D, - 0xC6, 0x7C, 0x2E, 0x36, 0x58, 0xAA, 0xF2, 0x80, 0xF6, 0xB9, 0x0A, 0x3F, 0xA4, 0x11, 0xC5, 0x33, - 0xF4, 0x69, 0x54, 0xD7, 0x7F, 0xAC, 0x39, 0x19, 0xD5, 0x98, 0xDA, 0x93, 0xC5, 0x8F, 0xD8, 0x9A, - 0xEA, 0xA0, 0x02, 0x14, 0x0D, 0x85, 0x8F, 0xD9, 0x8F, 0x17, 0x17, 0xC7, 0x6C, 0xED, 0x09, 0xFC, - 0xF3, 0x0F, 0x6B, 0x4F, 0x0C, 0x18, 0x58, 0x9F, 0x4D, 0x46, 0x54, 0xE5, 0xE7, 0x35, 0x08, 0x4D, - 0xA7, 0x8C, 0x43, 0xE0, 0x96, 0x41, 0x14, 0xF5, 0x6E, 0xF3, 0x62, 0x93, 0xE2, 0xE3, 0x8F, 0x13, - 0xBD, 0x19, 0x83, 0xE1, 0x4F, 0x31, 0x0A, 0xA9, 0xA5, 0xCC, 0xFA, 0x6A, 0xF3, 0xE5, 0xF5, 0x34, - 0x6C, 0xBB, 0x39, 0x31, 0x78, 0x27, 0x8E, 0xC7, 0x5D, 0x3E, 0x65, 0xF8, 0x0A, 0x9E, 0x81, 0xAB, - 0x67, 0x42, 0xCD, 0xF6, 0xA0, 0xC0, 0x30, 0x93, 0xE2, 0x1D, 0x93, 0x97, 0x66, 0x76, 0xE1, 0x61, - 0x17, 0xE9, 0x2F, 0xB6, 0x6A, 0xC4, 0x53, 0xF6, 0x94, 0xDC, 0x44, 0xE4, 0x9A, 0x76, 0xBD, 0xA2, - 0xDF, 0xEC, 0xC3, 0x9F, 0x0E, 0x3C, 0x46, 0x31, 0x8E, 0x3A, 0xF9, 0x1E, 0x9A, 0x19, 0xB3, 0x6C, - 0x9E, 0x08, 0x38, 0x26, 0x7E, 0x66, 0x7E, 0xDC, 0xC9, 0x02, 0x98, 0x8C, 0x8C, 0xE6, 0x7C, 0x6C, - 0x1F, 0xC3, 0x70, 0x84, 0xAE, 0x29, 0x44, 0x21, 0x98, 0x20, 0xB3, 0x58, 0xA2, 0xF9, 0x61, 0x92, - 0xA4, 0xC0, 0x22, 0x00, 0x69, 0xC5, 0xD3, 0x3D, 0x30, 0x59, 0x7E, 0xD7, 0x9A, 0xEF, 0xAC, 0xBE, - 0x87, 0x31, 0xBA, 0x7F, 0xAC, 0xF0, 0x33, 0x92, 0x0B, 0x0E, 0x66, 0x09, 0xDF, 0xE1, 0xC3, 0x31, - 0x04, 0xE8, 0x41, 0xBD, 0xA0, 0x59, 0xF2, 0xB3, 0xE8, 0xF3, 0xE7, 0x15, 0x5F, 0x7F, 0xB7, 0xC6, - 0xAE, 0x39, 0x88, 0x91, 0x61, 0xC2, 0x69, 0x30, 0x18, 0xF5, 0x31, 0xD0, 0x5A, 0x60, 0xF2, 0x1F, - 0x55, 0x32, 0x98, 0xF0, 0x9F, 0xD6, 0xE9, 0x9F, 0x0D, 0xFA, 0x67, 0x93, 0xFE, 0x79, 0x44, 0x0C, - 0xFA, 0xE8, 0x89, 0xCB, 0x84, 0xC7, 0xF1, 0x75, 0x98, 0x27, 0x69, 0x08, 0x1C, 0x3D, 0xCC, 0xB8, - 0x28, 0xC3, 0xA8, 0x29, 0x00, 0x23, 0x1B, 0x86, 0x83, 0xE2, 0xDB, 0x38, 0x8D, 0x2C, 0x91, 0x15, - 0x30, 0xD0, 0xD9, 0x90, 0x5F, 0x20, 0x60, 0x43, 0xE0, 0x35, 0xDA, 0x33, 0x3E, 0x1D, 0x26, 0x63, - 0x2F, 0xAB, 0x4D, 0x20, 0x9F, 0x03, 0x35, 0xDD, 0xC2, 0x21, 0xEE, 0xA4, 0xA2, 0x2D, 0xDF, 0x6C, - 0xE9, 0xB3, 0xB2, 0x71, 0xA0, 0xBF, 0x8F, 0x38, 0x1A, 0x13, 0x93, 0x2A, 0xD4, 0x10, 0x63, 0x0A, - 0xC2, 0xAE, 0x6A, 0x99, 0xE9, 0xF1, 0x34, 0x91, 0x8F, 0xF5, 0x96, 0x2C, 0xB3, 0x7A, 0xE7, 0x4A, - 0x28, 0xDF, 0x36, 0xD4, 0xB3, 0x28, 0x00, 0x41, 0x37, 0xAB, 0x86, 0xB2, 0x10, 0x89, 0xAA, 0xCF, - 0x58, 0xB3, 0xF5, 0x68, 0x89, 0x41, 0x23, 0xF8, 0x49, 0x96, 0xEA, 0x16, 0x2A, 0x56, 0xA3, 0x70, - 0xFA, 0xF2, 0x75, 0xD5, 0x58, 0x7F, 0x54, 0xA6, 0xAF, 0x27, 0xD4, 0xD7, 0xAF, 0x8A, 0xD3, 0x3C, - 0xBD, 0x64, 0xFA, 0x31, 0x30, 0xA5, 0x7E, 0x10, 0x55, 0xF8, 0x71, 0xC7, 0x03, 0xA7, 0x31, 0xDD, - 0x6B, 0xC0, 0xB3, 0x2E, 0xA8, 0xFF, 0x8C, 0x6D, 0x2E, 0x2D, 0xF9, 0x2B, 0x6D, 0xC9, 0x4A, 0xE0, - 0x35, 0xBF, 0xF6, 0x52, 0x57, 0xBB, 0xCD, 0xB0, 0x3D, 0x4C, 0x30, 0xE7, 0x74, 0xE3, 0x40, 0x16, - 0xAC, 0x3E, 0x0E, 0x2F, 0x27, 0xFD, 0x60, 0xBC, 0xCA, 0x67, 0x61, 0x4B, 0xEC, 0xBE, 0x7B, 0x6D, - 0xB6, 0x37, 0x65, 0x7B, 0x33, 0xAA, 0x80, 0x2F, 0x25, 0xB1, 0x04, 0x0A, 0x76, 0xA0, 0x88, 0xFF, - 0x35, 0x63, 0xC7, 0x02, 0xF0, 0xE5, 0xD8, 0x57, 0xB8, 0x3A, 0xA0, 0x62, 0x7C, 0xD6, 0x49, 0x15, - 0x5A, 0xEB, 0xD5, 0xE6, 0xEA, 0xDA, 0xEA, 0xC6, 0xD2, 0xEF, 0xEC, 0x02, 0x2A, 0xD6, 0xA0, 0xE2, - 0x7B, 0xF6, 0xC3, 0x58, 0x1C, 0x02, 0xF4, 0x68, 0xF4, 0x31, 0x06, 0xF6, 0x3A, 0x61, 0x21, 0x07, - 0x74, 0xC2, 0xDA, 0xF8, 0xF7, 0x18, 0xFF, 0xEE, 0xE0, 0xDF, 0x23, 0x3E, 0xD8, 0x1B, 0x77, 0xD5, - 0x65, 0x59, 0x57, 0x10, 0x1E, 0x47, 0x0E, 0x12, 0x0B, 0x8A, 0x49, 0x38, 0x7A, 0x7E, 0x25, 0x50, - 0x65, 0x8C, 0x4D, 0x1F, 0x43, 0xF5, 0x95, 0x29, 0x97, 0xDA, 0xD7, 0x84, 0xE9, 0x15, 0xBF, 0xCF, - 0x72, 0xBE, 0x53, 0x1F, 0x8F, 0xCD, 0x73, 0x42, 0x5F, 0xBE, 0x0C, 0x49, 0x5E, 0x3F, 0x67, 0xD5, - 0x9C, 0xA2, 0xAC, 0xE3, 0x6F, 0x21, 0xDA, 0x88, 0xB8, 0x32, 0x89, 0x02, 0x23, 0x60, 0x97, 0x8E, - 0x35, 0xC6, 0xC5, 0xBE, 0x64, 0x95, 0x43, 0x9A, 0x4E, 0xEB, 0x97, 0xA3, 0x55, 0xBE, 0xBC, 0x46, - 0x7C, 0x71, 0x35, 0x37, 0x44, 0x40, 0x30, 0x66, 0xAC, 0xE5, 0xAF, 0xF8, 0x5A, 0x96, 0x93, 0x2F, - 0xF0, 0x36, 0x77, 0x5F, 0xF8, 0x34, 0xB3, 0x3F, 0xA1, 0x1F, 0x31, 0xE7, 0x25, 0x38, 0xF2, 0xD1, - 0x6B, 0xBA, 0xB5, 0x5E, 0x31, 0x19, 0xDD, 0xB8, 0x5E, 0x34, 0x96, 0xA8, 0x26, 0xA8, 0x95, 0x9B, - 0xAA, 0x92, 0xF2, 0x9D, 0x34, 0xEF, 0x26, 0x46, 0xCD, 0xB5, 0xC2, 0x9A, 0x2D, 0xA3, 0xE6, 0x46, - 0x61, 0xCD, 0x35, 0xDB, 0x1A, 0x2F, 0x2A, 0xA9, 0xC6, 0x8D, 0x8A, 0xB9, 0xD8, 0xF1, 0xD3, 0xEF, - 0x17, 0xA0, 0xD8, 0x26, 0x32, 0x2C, 0xB3, 0x4A, 0x4D, 0xFE, 0x36, 0x83, 0xDF, 0xDE, 0xFF, 0x30, - 0x56, 0x2D, 0x70, 0xA6, 0x8C, 0x88, 0xA7, 0xE2, 0xB3, 0x1D, 0x28, 0xCA, 0x9E, 0x57, 0xFD, 0xBA, - 0xB9, 0xC4, 0xBC, 0xDE, 0x79, 0x72, 0xB2, 0x13, 0xA0, 0x0E, 0x91, 0xD6, 0x1C, 0xFA, 0xAB, 0x8A, - 0xEB, 0x73, 0xC8, 0xAF, 0x2A, 0x6E, 0xCE, 0xA1, 0xBE, 0xAA, 0xB8, 0x96, 0xA5, 0x1B, 0xB1, 0x4E, - 0x45, 0xED, 0x4E, 0xCB, 0xB6, 0xC0, 0x85, 0xC6, 0xA0, 0x1D, 0xB3, 0xD8, 0x82, 0xCD, 0x25, 0xC9, - 0x75, 0x2E, 0x3A, 0x36, 0x96, 0x72, 0xAB, 0x23, 0x6D, 0x0A, 0x4B, 0xA7, 0xF9, 0x5D, 0x41, 0xF1, - 0x08, 0xA2, 0xD1, 0xFE, 0xF6, 0x9B, 0xD3, 0xC7, 0x57, 0x37, 0x95, 0x52, 0xB3, 0xAD, 0x5F, 0x89, - 0xEB, 0xD9, 0x2E, 0x37, 0x83, 0x58, 0x6B, 0x79, 0xD9, 0xAA, 0xA1, 0x7F, 0xCD, 0x10, 0x50, 0x11, - 0x8E, 0x46, 0x61, 0xB2, 0xEF, 0x8E, 0xC5, 0xBE, 0xC7, 0xE5, 0x10, 0x97, 0xEF, 0xDD, 0x17, 0x45, - 0xDB, 0x45, 0xEC, 0x89, 0x45, 0x50, 0x39, 0x79, 0x5F, 0x01, 0x5B, 0xC8, 0x19, 0x54, 0xDF, 0x7E, - 0x5F, 0x53, 0x2A, 0x88, 0xE2, 0x09, 0xCD, 0x9F, 0x32, 0x77, 0xBA, 0xFD, 0x3D, 0x56, 0x06, 0x15, - 0xB8, 0x70, 0x1C, 0x57, 0x96, 0x8A, 0x68, 0x61, 0x6C, 0x70, 0x17, 0xEF, 0xC5, 0xF6, 0x6C, 0xC9, - 0x22, 0x02, 0xD5, 0x9D, 0x6C, 0x09, 0x22, 0x99, 0x57, 0x30, 0x5B, 0x32, 0x75, 0x27, 0x06, 0xAD, - 0x8E, 0x61, 0xA2, 0xE8, 0x61, 0xE2, 0x0A, 0x44, 0xE7, 0xDC, 0xE3, 0xE2, 0x10, 0xDC, 0xF8, 0x44, - 0xC4, 0x2E, 0x2A, 0xA9, 0x21, 0x4E, 0xBE, 0x77, 0x8E, 0xD6, 0x2D, 0x23, 0xFF, 0x06, 0x93, 0x5C, - 0x45, 0x4A, 0x16, 0x87, 0x18, 0xBA, 0x69, 0xA0, 0x7E, 0x01, 0x9F, 0x7F, 0x5D, 0x12, 0x77, 0xB5, - 0xB0, 0x98, 0xDE, 0xC4, 0xFC, 0x7C, 0xBD, 0x61, 0xED, 0x28, 0x4D, 0x1E, 0xCB, 0x8F, 0x0D, 0x4E, - 0x19, 0x25, 0xD8, 0xC3, 0x6B, 0x54, 0xFE, 0x3B, 0xBD, 0x15, 0x90, 0x5F, 0x5A, 0xFC, 0x0B, 0x3E, - 0x1C, 0x96, 0x1F, 0xD6, 0xE0, 0x03, 0xBF, 0x63, 0x06, 0x89, 0xAA, 0x23, 0xAF, 0x65, 0xAB, 0x70, - 0x07, 0x51, 0xB0, 0x9B, 0x14, 0x8F, 0xB7, 0xC5, 0x8F, 0x4F, 0x34, 0xE1, 0x6F, 0xAE, 0xB3, 0xA0, - 0xDB, 0x15, 0xB2, 0xEF, 0x1D, 0x6E, 0x34, 0x73, 0xB5, 0x75, 0xF0, 0xC7, 0xA3, 0xB1, 0x83, 0x3F, - 0x05, 0x5A, 0x3B, 0x6A, 0xE5, 0xD5, 0xDC, 0x51, 0x4B, 0x43, 0x7B, 0x07, 0x7F, 0x72, 0x15, 0x75, - 0x16, 0x8E, 0x8B, 0x2B, 0xEB, 0x88, 0x6D, 0x15, 0xA0, 0x32, 0x97, 0xB4, 0xEC, 0xAE, 0xEC, 0x6D, - 0xE8, 0xDC, 0xCA, 0xFD, 0x14, 0xED, 0x72, 0x2E, 0x8A, 0xFA, 0x5C, 0xB0, 0x6D, 0x58, 0xD4, 0xDC, - 0x5C, 0xB7, 0xA8, 0xB8, 0xB9, 0x31, 0xFF, 0x1E, 0x49, 0x2A, 0x01, 0x7F, 0x2F, 0x58, 0xB6, 0x1F, - 0xF6, 0xD3, 0xE0, 0x7B, 0x2E, 0x05, 0xDF, 0xA5, 0xAB, 0x5B, 0xC5, 0xD0, 0x43, 0x30, 0x99, 0xA6, - 0x57, 0x10, 0x2A, 0x1B, 0x78, 0x1A, 0x2F, 0x3B, 0x70, 0x51, 0xC5, 0xD8, 0xD2, 0x11, 0xBF, 0x81, - 0x28, 0x4E, 0x5C, 0xE7, 0x9D, 0xE3, 0x9A, 0xA9, 0xB1, 0x2D, 0x60, 0xF0, 0x10, 0xD6, 0x71, 0x73, - 0x13, 0xDE, 0x11, 0xC7, 0xC3, 0x94, 0x13, 0x85, 0x58, 0x12, 0x6A, 0x10, 0x9A, 0xF8, 0xE3, 0x37, - 0xE1, 0x4C, 0x1E, 0x4E, 0xD4, 0x35, 0xB4, 0xA3, 0x72, 0xF8, 0x89, 0x8A, 0xB7, 0x74, 0x31, 0x2C, - 0x3D, 0x2A, 0x86, 0x9F, 0xA8, 0x98, 0x77, 0xA2, 0x9B, 0xC7, 0x5D, 0x89, 0x07, 0x17, 0xD9, 0x11, - 0xD8, 0x6F, 0xD8, 0x48, 0xAF, 0xD1, 0x61, 0x0C, 0xB5, 0x12, 0x57, 0x8C, 0x6C, 0xF9, 0xC4, 0x48, - 0xEC, 0x0E, 0x34, 0xE2, 0xE2, 0x13, 0x80, 0xE7, 0x52, 0x06, 0x01, 0x44, 0x4A, 0xE9, 0xC3, 0x9C, - 0x2E, 0x59, 0x46, 0x2C, 0x15, 0x0D, 0x89, 0xB0, 0x6A, 0xB8, 0xC4, 0x55, 0xB7, 0x46, 0xB8, 0xD4, - 0x9D, 0x9D, 0x3C, 0xB0, 0x26, 0xB2, 0xBA, 0xD6, 0x82, 0x8D, 0x19, 0x9A, 0x3E, 0x79, 0xC2, 0xE5, - 0x88, 0x25, 0x75, 0x74, 0x89, 0xA1, 0x88, 0x0B, 0x94, 0x66, 0xEF, 0x5B, 0x53, 0x13, 0x64, 0xEA, - 0x4A, 0xE4, 0xBB, 0x8E, 0x2E, 0xAA, 0x10, 0xE2, 0x7E, 0xB2, 0x0A, 0x06, 0x2D, 0x67, 0x4F, 0xD4, - 0x37, 0x62, 0x63, 0x4F, 0x9C, 0xD6, 0xD8, 0xAC, 0xC6, 0x6E, 0x6A, 0xEC, 0xAA, 0xC6, 0x07, 0xAA, - 0x69, 0x28, 0xC2, 0x04, 0xB6, 0x01, 0x0E, 0xC4, 0x3B, 0x94, 0x4F, 0x9C, 0x40, 0x0A, 0xF8, 0x0E, - 0x95, 0xA0, 0x43, 0x0C, 0x56, 0xA0, 0x1E, 0x14, 0x51, 0x81, 0xD2, 0xCA, 0x5A, 0x97, 0xEC, 0x29, - 0x4D, 0x28, 0x56, 0x21, 0x12, 0xCD, 0xF4, 0x97, 0xEF, 0xC5, 0xE9, 0x00, 0xB3, 0x6E, 0xEA, 0x44, - 0x35, 0x2E, 0xE2, 0x45, 0x8C, 0x32, 0x85, 0xD0, 0xF3, 0x96, 0xB8, 0xD7, 0x4B, 0x42, 0x88, 0x9B, - 0x22, 0xB5, 0x74, 0xE2, 0x0D, 0x0C, 0x7A, 0x2A, 0x82, 0xCF, 0x2C, 0xE0, 0x0F, 0x21, 0xBF, 0x41, - 0x8E, 0xC4, 0x0A, 0xDA, 0x65, 0xFC, 0xAB, 0xAF, 0xA0, 0x3F, 0x50, 0xE3, 0x93, 0x28, 0xAA, 0xDC, - 0x03, 0xC4, 0x0F, 0x07, 0xD2, 0xE7, 0x5C, 0xCE, 0x2F, 0x9E, 0xF7, 0x61, 0x7F, 0x85, 0x3A, 0x3D, - 0x02, 0x87, 0x27, 0x51, 0x32, 0xB3, 0x4A, 0xCE, 0xE3, 0x91, 0x96, 0x01, 0x51, 0x07, 0x68, 0x60, - 0x89, 0x3A, 0xC0, 0xD0, 0xB2, 0x74, 0xC8, 0x76, 0xC6, 0x30, 0x68, 0xDD, 0x5A, 0x2E, 0xED, 0x2E, - 0x5B, 0x89, 0xA7, 0xD6, 0xA8, 0x29, 0x30, 0x26, 0x9B, 0x8F, 0xD0, 0xA1, 0x21, 0xF8, 0x31, 0xF3, - 0x7F, 0xBE, 0x05, 0xFD, 0x3A, 0x01, 0xB9, 0xF2, 0xD7, 0x78, 0x85, 0x1E, 0x8D, 0x3B, 0x6A, 0xB6, - 0x8E, 0x83, 0xF4, 0x6A, 0x05, 0x6D, 0x54, 0xD5, 0xEA, 0x94, 0xF1, 0xB3, 0x69, 0x89, 0xFD, 0x81, - 0xDA, 0x41, 0x87, 0x4B, 0x7A, 0x12, 0xCD, 0x8A, 0x33, 0x5E, 0xF1, 0x4A, 0x55, 0x04, 0xA4, 0x0C, - 0x1D, 0x5F, 0x3B, 0x64, 0x64, 0xF0, 0x8C, 0x59, 0x70, 0x1D, 0x47, 0x5D, 0xBC, 0x6D, 0xE2, 0x2B, - 0x29, 0x51, 0x1E, 0x74, 0x95, 0x0A, 0x24, 0x91, 0x51, 0xE3, 0xC5, 0x3B, 0x6C, 0xC5, 0x67, 0x53, - 0xD8, 0x59, 0x97, 0xD8, 0x54, 0xAF, 0x35, 0xFA, 0xFA, 0xCC, 0xC0, 0x0D, 0x4B, 0xD5, 0xAF, 0xBA, - 0xD6, 0x8C, 0xDA, 0xCE, 0xEC, 0xB6, 0x33, 0xD9, 0x16, 0xD1, 0xC5, 0x52, 0xF5, 0xAB, 0x46, 0x9E, - 0x14, 0xE0, 0x80, 0x71, 0xC2, 0xC0, 0xA2, 0xDC, 0x9E, 0xC1, 0xA2, 0x23, 0xD5, 0x8D, 0x70, 0xEF, - 0x09, 0xC6, 0xB0, 0x79, 0xA6, 0x5C, 0x02, 0x64, 0xD5, 0xB3, 0x93, 0x25, 0x5C, 0x22, 0xE0, 0x9D, - 0xB5, 0x22, 0x68, 0xBA, 0xAC, 0x85, 0xC3, 0x99, 0xA5, 0x30, 0x12, 0xAB, 0x5C, 0x71, 0xDA, 0x63, - 0xBE, 0x26, 0x25, 0x6F, 0x3D, 0xE6, 0x8B, 0x53, 0xFC, 0x0C, 0xE7, 0x3B, 0x9E, 0xBF, 0x98, 0x59, - 0x04, 0x8E, 0x3F, 0xAD, 0xF4, 0x33, 0x38, 0x2A, 0xA3, 0x4F, 0x16, 0xEC, 0x44, 0xED, 0x88, 0x8F, - 0xD4, 0x56, 0x02, 0x12, 0x52, 0xBF, 0xE4, 0x3B, 0x10, 0xA4, 0x8A, 0x11, 0x33, 0x2A, 0xAB, 0x47, - 0x43, 0xC5, 0x08, 0xCC, 0x9A, 0x21, 0x37, 0xD8, 0xDA, 0x64, 0x5D, 0x37, 0x24, 0xEB, 0x37, 0x9A, - 0x3D, 0xB4, 0x08, 0x68, 0x9A, 0xBA, 0xB1, 0x1A, 0xC4, 0x3A, 0x42, 0x57, 0x85, 0x6E, 0x97, 0x43, - 0x95, 0xBC, 0xE2, 0xD9, 0xD3, 0x61, 0x45, 0xE7, 0x6E, 0xCF, 0x85, 0x67, 0x80, 0x81, 0xE1, 0xAF, - 0xEC, 0xA7, 0x9F, 0xD0, 0x52, 0xF0, 0xD3, 0x4F, 0x40, 0xB1, 0x9A, 0xA0, 0xB9, 0x12, 0x19, 0x8C, - 0x34, 0x1E, 0xDE, 0xD7, 0x81, 0xE6, 0x12, 0x05, 0x3B, 0x83, 0x34, 0xD7, 0x58, 0x38, 0x58, 0xF8, - 0xF1, 0x4E, 0xAD, 0x0D, 0x48, 0xCE, 0x05, 0xC4, 0x00, 0xAE, 0xD4, 0x94, 0x1A, 0xD4, 0xA0, 0xC8, - 0xB4, 0xD9, 0xE0, 0x6B, 0x7E, 0x30, 0x0A, 0xD2, 0xA8, 0x1D, 0xF5, 0xC1, 0xC7, 0x18, 0x02, 0xB3, - 0x01, 0x22, 0x95, 0x94, 0x66, 0x40, 0x9C, 0x2F, 0x42, 0xB8, 0x4C, 0x9C, 0x19, 0x94, 0x01, 0xC4, - 0x8C, 0x88, 0xA1, 0x39, 0x38, 0xF0, 0x01, 0x1B, 0x6F, 0x46, 0x26, 0x23, 0x83, 0x21, 0x7C, 0x33, - 0x2B, 0xBF, 0xE7, 0x0C, 0xB4, 0xD7, 0x2B, 0x3B, 0x52, 0x09, 0x28, 0xB7, 0x09, 0x22, 0x36, 0x19, - 0x19, 0x55, 0x73, 0x66, 0x43, 0x67, 0x6D, 0xB9, 0xB5, 0x96, 0x5A, 0xF6, 0x4D, 0xE7, 0x03, 0x8B, - 0xAD, 0x32, 0x2C, 0x04, 0xFA, 0xAA, 0xF2, 0x53, 0x05, 0xF5, 0xCD, 0xE5, 0xA5, 0xD7, 0xE9, 0x5D, - 0x56, 0x97, 0x45, 0x53, 0x39, 0x7B, 0x6A, 0xE4, 0xFC, 0x3E, 0xEE, 0x28, 0xC9, 0x32, 0x45, 0xA6, - 0x9E, 0xC5, 0x04, 0xEA, 0x9B, 0xC0, 0x62, 0x02, 0x41, 0x6A, 0x0D, 0x7E, 0xF5, 0x31, 0x6C, 0x48, - 0x14, 0x75, 0x03, 0x5C, 0x18, 0x20, 0xF7, 0x86, 0x34, 0xEC, 0x26, 0x57, 0xF2, 0xED, 0xB4, 0xB0, - 0x0D, 0x2C, 0x44, 0x8B, 0x92, 0xA4, 0xC8, 0x04, 0x51, 0xF4, 0x3E, 0x73, 0x56, 0x9B, 0xA5, 0x2B, - 0xBE, 0x3B, 0xF6, 0x76, 0x1A, 0xC8, 0x7E, 0x94, 0x00, 0x9B, 0x1B, 0x52, 0x3C, 0xDF, 0x51, 0xEB, - 0x1B, 0x7C, 0xFF, 0xDC, 0xF0, 0xEB, 0xBC, 0x3D, 0x6D, 0x1D, 0xD9, 0x3C, 0x03, 0xA0, 0x98, 0xCE, - 0x86, 0x67, 0xE7, 0x3E, 0x25, 0xE8, 0x99, 0xEF, 0xDC, 0x29, 0x32, 0xF9, 0x64, 0x0D, 0x9A, 0x6E, - 0xE8, 0x3B, 0x37, 0x16, 0xA4, 0xF2, 0x29, 0xB0, 0x0B, 0x74, 0x8C, 0xFF, 0x5F, 0x6F, 0xD5, 0x47, - 0x11, 0xBD, 0xD3, 0xE9, 0xE4, 0xD6, 0x82, 0xE6, 0xDA, 0x54, 0xB1, 0x54, 0x39, 0x36, 0x4A, 0x81, - 0xC3, 0x78, 0xA9, 0x67, 0x7A, 0x2D, 0x66, 0x8B, 0x45, 0x2C, 0x74, 0xAF, 0x77, 0x97, 0xF4, 0xFB, - 0x35, 0x2C, 0xF7, 0x98, 0xEA, 0xA8, 0x62, 0xD3, 0xF0, 0x14, 0x32, 0x5E, 0x80, 0xB2, 0x80, 0x1D, - 0x0C, 0x2F, 0xA3, 0x61, 0xA8, 0x82, 0xB6, 0x1D, 0x0E, 0x0D, 0xAF, 0x30, 0xBE, 0x65, 0xF6, 0x7A, - 0xE1, 0xB8, 0x86, 0xE7, 0xB5, 0xB6, 0xBD, 0x40, 0x3D, 0x08, 0x0B, 0xC0, 0x57, 0x0E, 0x99, 0x85, - 0x02, 0x48, 0x74, 0x14, 0x40, 0x04, 0x73, 0xBA, 0x8A, 0x07, 0x76, 0x5D, 0xCC, 0x15, 0xC4, 0xCF, - 0xF5, 0x3A, 0xBF, 0x47, 0xA1, 0x81, 0xED, 0x32, 0x1C, 0xAF, 0x3C, 0x40, 0xAF, 0x88, 0x71, 0x92, - 0x32, 0x7C, 0xFD, 0xF3, 0x98, 0xD7, 0x98, 0xA4, 0xBD, 0x3A, 0xBF, 0xD1, 0xA8, 0xB6, 0x58, 0xE7, - 0x2C, 0x84, 0xBC, 0x38, 0xA2, 0x12, 0x7C, 0x78, 0x0D, 0xF7, 0xB2, 0x6D, 0xD2, 0x33, 0x18, 0x6E, - 0xCB, 0xC2, 0xCB, 0xB8, 0xDA, 0xA8, 0x6F, 0x34, 0x9B, 0x4B, 0x2B, 0x99, 0x9A, 0xE0, 0x38, 0x5C, - 0x5C, 0xB3, 0xB9, 0x2E, 0xAA, 0x06, 0x6C, 0x10, 0x24, 0xE4, 0x04, 0x84, 0x66, 0x79, 0xD6, 0xEB, - 0x07, 0x97, 0xD2, 0x7C, 0xDF, 0x7C, 0x0A, 0x8E, 0x1B, 0x35, 0xD6, 0x7A, 0x8A, 0x4E, 0x01, 0xE0, - 0x35, 0x58, 0x63, 0xEB, 0x4F, 0xD1, 0xEF, 0x8C, 0xDF, 0xFF, 0x9E, 0x46, 0x20, 0x81, 0x42, 0x4E, - 0xA1, 0xE6, 0xE6, 0x53, 0xE5, 0x84, 0xE0, 0x65, 0x4F, 0xE1, 0x6A, 0x67, 0xF2, 0x06, 0x4A, 0x4B, - 0x9C, 0xDC, 0xC3, 0xAE, 0xB6, 0xBC, 0x93, 0x2A, 0x8B, 0xDF, 0x46, 0xC4, 0xBF, 0x91, 0xF8, 0xB7, - 0x8F, 0xD3, 0x86, 0x3F, 0xF2, 0xFB, 0x87, 0xF8, 0xA9, 0x23, 0x83, 0xBD, 0xA3, 0xE7, 0x88, 0xF8, - 0x19, 0xD4, 0x41, 0xE2, 0xC7, 0x20, 0x4D, 0xC7, 0xE2, 0xC7, 0xF6, 0xA5, 0xF8, 0xA1, 0xA7, 0x7E, - 0x80, 0x61, 0x8A, 0x9F, 0xC7, 0xE2, 0x12, 0x53, 0x63, 0x8E, 0xFF, 0x32, 0x9C, 0xA4, 0x75, 0x12, - 0xEB, 0xD8, 0x33, 0x33, 0xA8, 0xEB, 0x2A, 0x68, 0x7C, 0x89, 0x6F, 0x95, 0x2B, 0x74, 0x0E, 0x03, - 0xEB, 0x9D, 0x48, 0xFA, 0x41, 0x0B, 0xB7, 0xC5, 0x39, 0x8C, 0xFD, 0x80, 0x31, 0xF9, 0x02, 0x49, - 0x3A, 0x74, 0xA2, 0x1C, 0x8B, 0xC2, 0x29, 0xC5, 0xC9, 0x34, 0xB0, 0x94, 0xD8, 0x51, 0x2C, 0x47, - 0xF1, 0x5C, 0xCC, 0x0A, 0xF2, 0x18, 0x5F, 0x56, 0x2B, 0x3F, 0xF3, 0xAA, 0x3F, 0x03, 0x3B, 0xA7, - 0x71, 0xCC, 0xFA, 0xF0, 0x54, 0x77, 0x85, 0x1D, 0xC7, 0x09, 0xA4, 0x9A, 0xFA, 0x18, 0xF2, 0x3B, - 0x55, 0x80, 0x02, 0xF8, 0xDE, 0xD9, 0xE9, 0x4A, 0x45, 0xA9, 0xEB, 0xBA, 0xCC, 0x03, 0x9A, 0xA2, - 0xDA, 0x4A, 0x95, 0x1B, 0x39, 0x87, 0x72, 0xD1, 0xFA, 0x29, 0xD4, 0xE7, 0x3F, 0x19, 0xF1, 0xCE, - 0xF0, 0xE5, 0x2B, 0xA8, 0x5A, 0x29, 0xE8, 0x0C, 0x84, 0xF5, 0x15, 0x72, 0x8C, 0xF0, 0x9B, 0xD5, - 0xB0, 0x2F, 0x78, 0x65, 0x11, 0x29, 0x5C, 0x3F, 0x70, 0x30, 0x64, 0x74, 0x19, 0x43, 0xC8, 0x50, - 0x69, 0x2A, 0xAF, 0x68, 0x1D, 0xF9, 0xC6, 0x2C, 0xAB, 0xEA, 0x4E, 0x8D, 0xD6, 0x18, 0x6C, 0x58, - 0x7A, 0xAC, 0xEB, 0x48, 0xB5, 0x4B, 0x66, 0xCB, 0x2F, 0x0C, 0xB0, 0x14, 0x3F, 0xD8, 0xBC, 0x06, - 0x0A, 0x48, 0x53, 0xEF, 0x71, 0x00, 0xC5, 0xF5, 0xA6, 0x25, 0x72, 0x04, 0xBE, 0x78, 0xA0, 0x38, - 0x30, 0x26, 0xD3, 0x14, 0x58, 0x3E, 0xB6, 0x38, 0xF1, 0x96, 0x7F, 0x2D, 0x93, 0xBA, 0x57, 0xA0, - 0xD4, 0x45, 0xF4, 0x5E, 0xBC, 0x28, 0x82, 0x3F, 0x68, 0xF9, 0x94, 0x9F, 0x9B, 0xEF, 0x95, 0x7A, - 0x4D, 0xBF, 0xB8, 0x98, 0x2E, 0xC9, 0xD6, 0xF5, 0xA6, 0x55, 0x8C, 0x5F, 0xE1, 0x02, 0x0C, 0x08, - 0x9A, 0x72, 0x1D, 0x14, 0x22, 0xD2, 0x32, 0xD8, 0x90, 0x44, 0xDB, 0x56, 0xD1, 0xC9, 0xC7, 0x11, - 0x4F, 0x56, 0x93, 0x51, 0x30, 0x7C, 0xA6, 0x0C, 0x41, 0xA6, 0xF6, 0xCD, 0xEA, 0x27, 0x1F, 0x94, - 0xAA, 0x06, 0x08, 0xD7, 0x9B, 0x76, 0xA1, 0xD1, 0x13, 0x74, 0xC4, 0xD0, 0x45, 0xFB, 0xE9, 0xC3, - 0x71, 0x88, 0xDB, 0x4F, 0xFD, 0x3A, 0xEA, 0x86, 0xDA, 0x55, 0x4D, 0xBC, 0xC1, 0x79, 0x68, 0xA2, - 0xE3, 0xB1, 0x1F, 0x67, 0xA1, 0xA2, 0xC7, 0xCA, 0xD3, 0x87, 0x15, 0x43, 0x41, 0x09, 0x7F, 0xDA, - 0x97, 0xF0, 0x30, 0x0B, 0x50, 0x13, 0x81, 0x40, 0x77, 0xAC, 0xE2, 0x1E, 0x14, 0x13, 0xEA, 0xCF, - 0x9E, 0x41, 0x50, 0x58, 0x7F, 0x2D, 0xD8, 0x6E, 0x24, 0x1C, 0x08, 0xE5, 0xB6, 0xE5, 0xF4, 0x02, - 0xB7, 0x05, 0xBE, 0xD7, 0x5A, 0xDF, 0x80, 0x26, 0xD4, 0xF0, 0x2B, 0x96, 0xA1, 0x88, 0xFB, 0x32, - 0x5F, 0xBB, 0xBC, 0x65, 0x6B, 0xEA, 0x91, 0xE2, 0xF3, 0xA8, 0x1B, 0xBC, 0xE7, 0x3F, 0x86, 0xFE, - 0x76, 0x2A, 0x3B, 0x4E, 0xDD, 0x5B, 0xE7, 0x77, 0x3C, 0x96, 0xF8, 0x91, 0x85, 0x1E, 0x68, 0x7F, - 0x80, 0x36, 0x32, 0xF4, 0x69, 0x06, 0x19, 0x4E, 0x8A, 0x27, 0x10, 0x88, 0x0E, 0x1E, 0x30, 0x3D, - 0x65, 0x5B, 0x36, 0xE4, 0xDB, 0xCC, 0x78, 0xD5, 0x99, 0x92, 0x3B, 0xE8, 0x56, 0x76, 0x28, 0x72, - 0x20, 0xE0, 0x3D, 0x55, 0xE7, 0x52, 0x6D, 0x4C, 0xAF, 0xC2, 0x1E, 0x2B, 0x60, 0xEE, 0x88, 0xB2, - 0xFD, 0xE2, 0xF1, 0x95, 0xDB, 0xE7, 0xBA, 0x9F, 0xD0, 0x05, 0x28, 0xC9, 0xED, 0x0A, 0x22, 0xF7, - 0xE9, 0x08, 0xFC, 0xCD, 0x25, 0x97, 0xB2, 0x1A, 0x79, 0x42, 0xC1, 0x43, 0x7B, 0x1F, 0x93, 0x16, - 0x8D, 0x3A, 0x0F, 0xCE, 0x1C, 0x0A, 0x88, 0x73, 0x3B, 0x97, 0x06, 0x5B, 0xD9, 0x41, 0xB6, 0x4B, - 0xB1, 0xB9, 0x58, 0x0E, 0xF9, 0xAB, 0x85, 0xF8, 0x89, 0x54, 0x79, 0x02, 0x0B, 0xF2, 0x7A, 0x6A, - 0x83, 0xAF, 0x39, 0xC8, 0x2D, 0x20, 0x92, 0x65, 0x9B, 0x50, 0x66, 0x40, 0xCD, 0x7D, 0x2C, 0x44, - 0x47, 0x52, 0x4C, 0x34, 0xC2, 0x65, 0xDB, 0xE7, 0x9E, 0x19, 0x33, 0x97, 0x0E, 0xDF, 0xD1, 0x17, - 0x64, 0x4E, 0x2D, 0xCE, 0xE4, 0x11, 0x49, 0xE7, 0x82, 0xD0, 0x7F, 0xE4, 0x3C, 0x61, 0x5B, 0xBC, - 0x99, 0x3F, 0xBE, 0xC2, 0xD3, 0x63, 0x3E, 0x57, 0xCA, 0xA6, 0x0F, 0xE5, 0xEE, 0x56, 0x71, 0x6B, - 0xA0, 0x7D, 0x2F, 0xFB, 0xAA, 0x4D, 0xC8, 0x36, 0x6E, 0x45, 0x56, 0xD0, 0xDE, 0x7A, 0xC4, 0xD6, - 0xF3, 0xB7, 0xC7, 0xFD, 0x33, 0x33, 0x78, 0xCE, 0x06, 0x5F, 0x98, 0xAF, 0x06, 0x7D, 0x83, 0xCF, - 0x3C, 0xAF, 0xAB, 0x64, 0xF8, 0x79, 0xD9, 0x7A, 0xA4, 0xD2, 0xBE, 0x7C, 0xEF, 0xA9, 0x51, 0x99, - 0x43, 0x33, 0xB1, 0xE3, 0x7C, 0x61, 0x3E, 0x29, 0xF4, 0xA1, 0x53, 0x0E, 0x87, 0xDE, 0x9D, 0x70, - 0x50, 0x93, 0xE6, 0x1C, 0x36, 0x99, 0x73, 0x50, 0xB5, 0x93, 0xC6, 0x3A, 0xED, 0xB9, 0x05, 0x7F, - 0xC8, 0xE4, 0xF3, 0x95, 0x61, 0xE9, 0xD1, 0xB0, 0xBF, 0xE2, 0xB7, 0x67, 0x1B, 0x0D, 0xCB, 0x5A, - 0x24, 0x1B, 0x3F, 0xF1, 0x37, 0xEE, 0xA7, 0x25, 0xDA, 0x3E, 0xF3, 0xB7, 0xBD, 0x2C, 0x6E, 0x2B, - 0x9E, 0xD1, 0x99, 0x4D, 0xA5, 0x4B, 0x17, 0xEC, 0x71, 0x95, 0xBC, 0x33, 0xFC, 0xAB, 0x61, 0x3B, - 0x71, 0x46, 0xE4, 0xDD, 0xF8, 0x50, 0x80, 0x49, 0xBE, 0xE5, 0x87, 0x3B, 0x50, 0x6B, 0x09, 0xC4, - 0xA1, 0x1D, 0x1F, 0xC0, 0xCE, 0x95, 0x9F, 0xF6, 0x0E, 0xC2, 0x6A, 0x0A, 0x84, 0x34, 0x06, 0x9B, - 0x94, 0x25, 0xA5, 0x95, 0x10, 0x7A, 0xFC, 0x02, 0x8F, 0x68, 0x6F, 0x3D, 0x59, 0xBA, 0x98, 0xBD, - 0xB7, 0xDE, 0x51, 0x63, 0xAC, 0x55, 0x23, 0x38, 0x9E, 0x73, 0x19, 0x28, 0x78, 0xC3, 0x94, 0x13, - 0x2F, 0xF2, 0x27, 0x23, 0x54, 0x6A, 0xF6, 0xD6, 0x5F, 0x2A, 0x6E, 0xA4, 0x27, 0x6C, 0xE4, 0x8F, - 0x4F, 0x49, 0xB0, 0x2F, 0x8E, 0x1B, 0x99, 0x83, 0x92, 0x8E, 0xB3, 0xE9, 0x47, 0xE8, 0x0B, 0xB7, - 0x3B, 0xEB, 0x86, 0x62, 0x47, 0xAF, 0x14, 0x02, 0xF4, 0xBC, 0xF8, 0x95, 0x16, 0xE3, 0x80, 0x1B, - 0x7B, 0x38, 0x18, 0xF1, 0xC3, 0x71, 0x1C, 0xF1, 0xDB, 0x0C, 0x17, 0xFB, 0x41, 0xB5, 0xD1, 0x55, - 0xB6, 0x4B, 0x13, 0x98, 0x7A, 0x1A, 0x25, 0x83, 0x09, 0xFA, 0xC6, 0xA3, 0xDE, 0x50, 0xCD, 0x1F, - 0x0F, 0x56, 0x33, 0x49, 0x9B, 0xC9, 0x90, 0x25, 0x15, 0x2B, 0x78, 0x66, 0x67, 0x94, 0x28, 0x88, - 0x23, 0x6A, 0x92, 0xCC, 0x89, 0x15, 0x08, 0x3A, 0x8D, 0xD1, 0x3C, 0x91, 0x1E, 0x82, 0xF7, 0xEE, - 0x75, 0xD0, 0xAF, 0x5A, 0x60, 0x6B, 0x6C, 0x43, 0xBD, 0x1B, 0xC8, 0xBF, 0x87, 0xDF, 0x75, 0x50, - 0x9D, 0x7E, 0x18, 0x8C, 0x7D, 0x1D, 0x2F, 0xDD, 0x1F, 0x8A, 0xA4, 0x49, 0xF3, 0x7B, 0xE6, 0x8F, - 0xE3, 0x1B, 0x75, 0xED, 0x5D, 0x5E, 0x36, 0xAE, 0x73, 0xEA, 0x76, 0xA7, 0x43, 0x00, 0x5B, 0xCC, - 0x25, 0x33, 0xCC, 0x18, 0xBF, 0x80, 0x3F, 0xC6, 0x6F, 0xD2, 0x0A, 0xA4, 0x6F, 0xA1, 0xF6, 0x75, - 0x57, 0xA4, 0x1B, 0xAA, 0x1A, 0xED, 0x96, 0xB5, 0x1E, 0x00, 0x8C, 0xB5, 0x4D, 0x7D, 0x5F, 0x37, - 0x6F, 0x9B, 0x46, 0x4F, 0x52, 0x71, 0xCA, 0x8F, 0xF5, 0x54, 0x6A, 0x32, 0xC6, 0x2A, 0x4D, 0x67, - 0x16, 0xAA, 0x99, 0x32, 0x26, 0x99, 0xB4, 0x53, 0x50, 0x10, 0x91, 0x49, 0x85, 0xB2, 0xCB, 0x08, - 0x02, 0x8D, 0xC3, 0xCB, 0x08, 0x0D, 0x2C, 0x00, 0xAB, 0xEE, 0xA4, 0x9C, 0xE1, 0xFF, 0x1B, 0xE4, - 0xA0, 0xB4, 0x34, 0x8A, 0x72, 0xD8, 0xF9, 0xD3, 0x02, 0x8D, 0x01, 0x3A, 0x22, 0xC3, 0x93, 0x23, - 0x48, 0x98, 0x0C, 0x81, 0x85, 0x07, 0xD1, 0x5F, 0x48, 0xE0, 0x54, 0xC5, 0x93, 0x04, 0x63, 0x0A, - 0x46, 0x09, 0xEB, 0xC1, 0x1B, 0x33, 0x11, 0x82, 0x0C, 0xF3, 0x44, 0x1A, 0xF6, 0xBC, 0x9B, 0xAB, - 0x10, 0x75, 0x6C, 0x33, 0xC8, 0x29, 0x3B, 0x19, 0xAA, 0x44, 0xD0, 0x49, 0x30, 0x50, 0x1E, 0x2F, - 0xE6, 0xBB, 0xBD, 0xB2, 0x19, 0x29, 0x9C, 0x55, 0x1F, 0x74, 0xBB, 0xF8, 0x90, 0x15, 0x5E, 0x95, - 0xAB, 0x0B, 0x85, 0x39, 0x8B, 0x94, 0xBE, 0x72, 0x0C, 0x01, 0x8F, 0xE4, 0x63, 0x4F, 0x6F, 0x96, - 0x0B, 0x1D, 0x0E, 0x57, 0x25, 0xF9, 0xF9, 0x82, 0x1C, 0x06, 0xB5, 0x6A, 0xDA, 0x98, 0x34, 0xAB, - 0xCC, 0xE4, 0xB4, 0x7A, 0x7D, 0xC7, 0xFA, 0xE6, 0xE1, 0x09, 0x7D, 0x56, 0x65, 0x11, 0xCD, 0xF2, - 0x85, 0xC2, 0xA7, 0x66, 0x32, 0x9C, 0xDC, 0xD3, 0x06, 0xC1, 0x94, 0xE2, 0x05, 0xE9, 0x65, 0x38, - 0x19, 0xF1, 0xF3, 0x2D, 0xA4, 0xAF, 0x36, 0x84, 0xB9, 0x75, 0x88, 0x5B, 0xE6, 0x2D, 0xD0, 0x7D, - 0x1A, 0x92, 0x0E, 0xBA, 0xC2, 0x7F, 0x37, 0x34, 0xCE, 0x34, 0x64, 0x7E, 0x56, 0x2A, 0x8D, 0x8F, - 0xA6, 0x1D, 0x16, 0x3D, 0x33, 0xA8, 0x61, 0x2F, 0x55, 0x2F, 0xB1, 0xCC, 0xE0, 0xA2, 0xBA, 0xD6, - 0x13, 0x4D, 0x7E, 0xAB, 0x6D, 0xC3, 0x5E, 0x93, 0x05, 0x0F, 0x7D, 0x73, 0xC6, 0x98, 0xD1, 0x64, - 0x77, 0x55, 0xEC, 0x52, 0xD8, 0x87, 0xFA, 0x42, 0x7E, 0xF0, 0x24, 0x9D, 0x14, 0x3F, 0x7F, 0x10, - 0xFF, 0x76, 0xA4, 0x92, 0xB1, 0x73, 0xB5, 0xE3, 0xE2, 0x43, 0xAF, 0x78, 0xE5, 0x48, 0xDD, 0x63, - 0xF7, 0x40, 0xAB, 0xDE, 0x66, 0x0E, 0x01, 0x15, 0xF3, 0xE9, 0x41, 0x97, 0x20, 0x21, 0xF3, 0x31, - 0x8B, 0xC5, 0x47, 0xA0, 0x24, 0xFC, 0xE3, 0xD9, 0x9B, 0xD7, 0x2B, 0x14, 0x93, 0x20, 0xEA, 0xCD, - 0x70, 0xDC, 0x1C, 0xA3, 0x51, 0x3F, 0xE0, 0x7C, 0xB9, 0x0A, 0x8E, 0x79, 0xAB, 0x97, 0x35, 0x56, - 0xF9, 0xF1, 0xA2, 0xB2, 0xB4, 0xB4, 0xE4, 0x46, 0xBF, 0xB7, 0x13, 0x6C, 0xA2, 0x62, 0x0A, 0xDA, - 0x5F, 0x44, 0x42, 0x59, 0x25, 0x85, 0x5F, 0xF9, 0x42, 0x39, 0x75, 0x9D, 0xD5, 0xC8, 0xE8, 0xA6, - 0x25, 0x4A, 0xBF, 0xB4, 0x8C, 0x08, 0x57, 0x7E, 0x68, 0x54, 0xEC, 0x2F, 0x24, 0xCB, 0xF2, 0xCF, - 0x8F, 0xBD, 0xDF, 0x5B, 0x8D, 0x4C, 0x89, 0x92, 0x10, 0x5D, 0xD0, 0x81, 0x09, 0x5A, 0xB4, 0x9F, - 0x36, 0x1E, 0x59, 0xED, 0xE5, 0x03, 0xC8, 0xB0, 0xDF, 0xAF, 0x3A, 0x77, 0xFD, 0x1C, 0xA8, 0x60, - 0x59, 0xAF, 0xFC, 0x70, 0x8D, 0x7F, 0xF7, 0x3C, 0x3D, 0x0C, 0x2D, 0xF8, 0xAA, 0xDB, 0xB6, 0xFF, - 0x73, 0xC7, 0xC1, 0xC6, 0x0C, 0x1E, 0x21, 0x62, 0xF0, 0x67, 0x2F, 0x45, 0xA4, 0xB7, 0xD4, 0xDE, - 0x0F, 0xF2, 0x8F, 0xAD, 0x31, 0x00, 0x41, 0xEA, 0xCD, 0xFE, 0x9B, 0xC7, 0xEC, 0x10, 0x0C, 0x77, - 0xE8, 0xBA, 0x14, 0x06, 0xE9, 0x4F, 0x7C, 0x7B, 0x85, 0x6D, 0xEA, 0xA7, 0xCB, 0x3E, 0xCC, 0xCA, - 0x8A, 0xDB, 0x44, 0x21, 0x00, 0x49, 0xB6, 0xBE, 0x53, 0x2A, 0x69, 0xF2, 0xC7, 0x70, 0xEE, 0x0E, - 0xA2, 0x89, 0x51, 0x3D, 0x83, 0x12, 0x31, 0xAF, 0x2B, 0xF3, 0xEB, 0x45, 0x20, 0x77, 0x10, 0x6B, - 0xD3, 0xF2, 0x0F, 0x78, 0xA6, 0xF7, 0x63, 0xEB, 0x3B, 0x35, 0x75, 0x67, 0xEF, 0xB6, 0xCC, 0x5C, - 0x8E, 0x3D, 0xF3, 0x37, 0xF6, 0xF1, 0x87, 0x87, 0xD8, 0x39, 0x20, 0xDB, 0x5E, 0xA6, 0xDB, 0xCA, - 0x9B, 0x66, 0x70, 0x78, 0x69, 0xE4, 0xCD, 0xB0, 0x3B, 0xE0, 0x52, 0x63, 0x4A, 0x3D, 0x08, 0xA4, - 0x79, 0x63, 0xC2, 0x1F, 0xC0, 0x6F, 0x10, 0x52, 0x40, 0x95, 0x5A, 0x00, 0xE4, 0xAE, 0x27, 0xED, - 0x37, 0xCE, 0x30, 0x43, 0x5F, 0x3F, 0x5C, 0x84, 0xBC, 0x3C, 0x82, 0x14, 0x6A, 0x55, 0x57, 0x9B, - 0x56, 0xD0, 0x41, 0x34, 0xF4, 0xC1, 0xEF, 0x15, 0xC3, 0x6F, 0x94, 0x5B, 0xC1, 0xA1, 0x6F, 0x8A, - 0x9A, 0x6D, 0x2F, 0x6C, 0x71, 0x91, 0x11, 0xE9, 0x7A, 0xE7, 0x81, 0xF7, 0x5C, 0xA6, 0xA9, 0x4F, - 0x47, 0x8F, 0x23, 0x9F, 0x3D, 0x79, 0x6F, 0xD8, 0xE6, 0x26, 0x20, 0x32, 0xD2, 0x29, 0x0B, 0x09, - 0xFD, 0x7E, 0xD1, 0xB9, 0x7A, 0xEF, 0xD3, 0x60, 0x76, 0xB4, 0x9D, 0x49, 0x57, 0xCC, 0xAA, 0x15, - 0xF3, 0x7A, 0x9B, 0x3A, 0xAB, 0x3D, 0xDB, 0x41, 0xDE, 0x5A, 0x50, 0x65, 0x99, 0x95, 0x6E, 0x75, - 0x50, 0x72, 0xB5, 0x6B, 0x68, 0xD9, 0x15, 0xAF, 0xCA, 0xFC, 0xAB, 0x9E, 0x06, 0x38, 0x67, 0xC0, - 0x86, 0xB1, 0x4A, 0xA0, 0xB5, 0x6C, 0x1C, 0xB2, 0xEF, 0xE9, 0xE3, 0x14, 0xF2, 0x6F, 0x5C, 0xC8, - 0x6B, 0x14, 0x28, 0x10, 0xE0, 0xF4, 0xCF, 0x50, 0x93, 0xEA, 0x66, 0x47, 0xED, 0x17, 0xCD, 0x94, - 0x9B, 0xBC, 0x4D, 0x1C, 0x53, 0x3F, 0x92, 0x25, 0x86, 0xCA, 0x9B, 0x6D, 0xE3, 0x59, 0x40, 0x67, - 0xCC, 0x12, 0x0A, 0xD9, 0x7E, 0xA4, 0x7D, 0x6C, 0xFE, 0xCC, 0x5A, 0x54, 0xF9, 0x20, 0x69, 0x00, - 0xE2, 0x95, 0x87, 0x0E, 0x9C, 0x69, 0x33, 0x84, 0x80, 0x3F, 0x9E, 0xE3, 0x81, 0x26, 0xA0, 0x4C, - 0x5F, 0xA5, 0xFB, 0xC9, 0x23, 0xB9, 0xAB, 0x2F, 0x2F, 0xC0, 0xAC, 0xC8, 0xAD, 0x5C, 0x2C, 0xF5, - 0x52, 0xE2, 0xCB, 0xC1, 0xD9, 0x1E, 0x3C, 0xDB, 0x23, 0x9F, 0x69, 0x76, 0x16, 0xFE, 0x32, 0x09, - 0x21, 0xCF, 0xFC, 0x21, 0xFC, 0xDE, 0x9D, 0x74, 0xF8, 0x85, 0xAA, 0x8A, 0x2F, 0xF7, 0xF8, 0x05, - 0xAB, 0x31, 0xDD, 0x6E, 0x2F, 0x99, 0xA7, 0x2D, 0x6D, 0x3C, 0x17, 0xBE, 0x5D, 0xC7, 0x49, 0x2E, - 0xE8, 0x94, 0xFA, 0xD2, 0x0C, 0x3A, 0x55, 0xE4, 0xB6, 0xD5, 0x49, 0xA2, 0x12, 0x3B, 0x22, 0x8C, - 0xE2, 0x3D, 0x84, 0x1F, 0x03, 0x7B, 0x04, 0xBF, 0x0E, 0x9E, 0xCD, 0xF8, 0x5D, 0x70, 0xC0, 0x87, - 0x35, 0x18, 0x80, 0x23, 0x44, 0x95, 0xBD, 0xE1, 0x15, 0x68, 0x08, 0x5D, 0xCF, 0x10, 0xDE, 0x7F, - 0xD6, 0x21, 0xC4, 0x49, 0xA7, 0xE4, 0x10, 0x4E, 0xD8, 0x7E, 0x78, 0xCD, 0x2F, 0x5E, 0x7A, 0x3E, - 0x50, 0xFE, 0xE5, 0xF8, 0xEF, 0xEF, 0x9D, 0x09, 0xFC, 0x1B, 0x1E, 0xFC, 0x4F, 0x3E, 0x2B, 0xFE, - 0xDD, 0x4E, 0x52, 0x12, 0xFF, 0x9F, 0xD8, 0xAE, 0x76, 0x84, 0x62, 0x27, 0xE4, 0x2F, 0x6B, 0xCC, - 0xC2, 0xEE, 0x89, 0x9C, 0x85, 0x9E, 0x67, 0x14, 0x3F, 0x15, 0x1D, 0x5F, 0xE4, 0x02, 0x5E, 0x12, - 0x8F, 0x1F, 0x79, 0xDF, 0xD1, 0x75, 0xD0, 0x99, 0xB1, 0x63, 0x48, 0xC9, 0x70, 0x19, 0xF2, 0xBE, - 0x4F, 0x8E, 0x45, 0xD7, 0xA1, 0xA7, 0xEB, 0x1F, 0xEF, 0xAD, 0xEB, 0x0E, 0x7B, 0x39, 0xE9, 0xF7, - 0xD9, 0x69, 0x08, 0x87, 0x5E, 0xF5, 0xF4, 0xF0, 0xCC, 0xD3, 0x9B, 0x2B, 0x31, 0x0B, 0xE9, 0x93, - 0xB7, 0x28, 0x25, 0xBF, 0x40, 0x37, 0x07, 0xE4, 0x3E, 0x03, 0x7A, 0x03, 0x3E, 0xB6, 0xD7, 0x07, - 0x47, 0x34, 0xB8, 0xAD, 0x0D, 0xAB, 0x3B, 0x51, 0x79, 0x9F, 0x2F, 0xE7, 0x6E, 0x38, 0xE5, 0x15, - 0x0F, 0x5F, 0xEF, 0x8B, 0x8A, 0xEB, 0x1E, 0xBC, 0x0E, 0x4A, 0xCA, 0x8D, 0x3B, 0x99, 0x96, 0xFB, - 0xBE, 0x96, 0x18, 0x61, 0xAC, 0xF4, 0x88, 0x8E, 0x39, 0xCD, 0xC8, 0x0E, 0x27, 0x91, 0x3D, 0x15, - 0xBB, 0xCE, 0x96, 0x6F, 0xC9, 0x1E, 0xFB, 0x69, 0x88, 0x10, 0x0E, 0x17, 0xEA, 0xF8, 0x1F, 0x45, - 0xBC, 0x75, 0x29, 0xFA, 0xC0, 0x93, 0xE9, 0xFA, 0x96, 0x11, 0x10, 0x86, 0xCF, 0x8B, 0x43, 0xD4, - 0x7F, 0x82, 0x55, 0x41, 0xB5, 0x6B, 0xEC, 0x6B, 0xFE, 0x0B, 0x36, 0xC9, 0xE0, 0xF8, 0x8F, 0x15, - 0x57, 0x8C, 0xB2, 0x44, 0x22, 0x9D, 0xA4, 0xD7, 0x19, 0x46, 0xBE, 0x38, 0xA8, 0x8A, 0xF7, 0x08, - 0x06, 0x68, 0x12, 0x74, 0xC0, 0x4D, 0x91, 0xD2, 0x77, 0xE5, 0xED, 0x99, 0xB7, 0x99, 0x60, 0x67, - 0xBA, 0xDB, 0x3A, 0xB7, 0x19, 0xF7, 0x2C, 0xCA, 0xA5, 0x56, 0xB5, 0xB6, 0x54, 0xFB, 0x43, 0x6D, - 0xB9, 0x56, 0xAF, 0xAD, 0x80, 0x53, 0x20, 0x5F, 0x1B, 0x00, 0xF5, 0xEB, 0x46, 0xFD, 0xEB, 0x16, - 0xDB, 0x53, 0x24, 0x3B, 0xB3, 0x49, 0x46, 0xE4, 0xA8, 0x56, 0x1E, 0x03, 0x94, 0x27, 0x75, 0xD2, - 0x09, 0xEA, 0x18, 0x50, 0x10, 0x71, 0x23, 0xE0, 0x8B, 0x06, 0x34, 0x72, 0x41, 0x8A, 0xFA, 0xBE, - 0x38, 0x2B, 0x3C, 0x2F, 0x79, 0xAE, 0x9F, 0x7F, 0xF0, 0x7C, 0x5B, 0xF6, 0x7C, 0xAB, 0x7B, 0xBE, - 0xAD, 0x38, 0xB3, 0x93, 0x77, 0x48, 0x5A, 0x03, 0xF0, 0x1F, 0xE5, 0x46, 0xDE, 0x65, 0x8F, 0x58, - 0xE9, 0x95, 0x29, 0x7C, 0x63, 0xF2, 0x43, 0x6C, 0x2E, 0x04, 0xF1, 0x0F, 0x25, 0x20, 0xB6, 0x16, - 0x82, 0xB8, 0x5C, 0x02, 0xE2, 0xDA, 0x42, 0x10, 0xEB, 0xF7, 0x3E, 0x6A, 0x77, 0x2E, 0xEF, 0x3E, - 0xEA, 0xDB, 0xFC, 0x85, 0x23, 0x40, 0x95, 0x58, 0x28, 0xC6, 0xC2, 0x58, 0xB3, 0x57, 0x05, 0xAB, - 0xBE, 0x3B, 0x5F, 0x6B, 0x34, 0xDC, 0x5D, 0x7A, 0x97, 0x83, 0x3F, 0x3C, 0x7B, 0xC3, 0x8E, 0x40, - 0x7C, 0xA9, 0x37, 0xD9, 0xD9, 0x64, 0x24, 0x14, 0x1E, 0x14, 0x0D, 0xD1, 0xA8, 0x0A, 0xA9, 0x86, - 0x22, 0xA9, 0x0E, 0x09, 0xBB, 0xD9, 0x65, 0xB6, 0xEA, 0xDB, 0x19, 0xF3, 0xE7, 0x6A, 0xFE, 0x10, - 0x23, 0xF7, 0x0E, 0x93, 0xBB, 0x39, 0xBC, 0xB6, 0x3F, 0x9D, 0x71, 0xD9, 0xA5, 0x1F, 0xB2, 0x33, - 0xBC, 0x0E, 0x8B, 0x4D, 0x36, 0xEE, 0x31, 0x77, 0xA7, 0xB0, 0x1B, 0x55, 0xD9, 0xD9, 0x59, 0x4B, - 0x6C, 0xFC, 0xFC, 0xA8, 0xA6, 0xA8, 0x57, 0x22, 0x5C, 0x17, 0xBD, 0x0F, 0xD4, 0x3B, 0x33, 0x3C, - 0x95, 0xCB, 0x12, 0xE0, 0xB5, 0x43, 0x80, 0xCC, 0x2C, 0x0B, 0x6C, 0xDF, 0x94, 0xC3, 0x76, 0x6D, - 0x1E, 0xB6, 0x6B, 0x02, 0xDB, 0xDE, 0x9D, 0xB0, 0x7D, 0x53, 0x12, 0xDB, 0xA1, 0xFD, 0xE9, 0x70, - 0x78, 0x1D, 0x7F, 0xA4, 0xC7, 0x91, 0x2E, 0x3D, 0xC1, 0x3B, 0xF8, 0xEB, 0x23, 0x56, 0x3D, 0x3A, - 0x6B, 0x79, 0x0E, 0xCE, 0x61, 0xB1, 0x02, 0xA2, 0xE5, 0x3F, 0x36, 0x33, 0xE8, 0xC4, 0xF9, 0xE8, - 0xB8, 0x2C, 0xAF, 0xD0, 0x59, 0xF3, 0xA0, 0x13, 0x17, 0xA3, 0xB3, 0x56, 0x12, 0x9D, 0xDF, 0x16, - 0x43, 0xE7, 0x14, 0xD1, 0x39, 0xF5, 0xE0, 0xF3, 0xDB, 0xFD, 0xE0, 0x73, 0xBB, 0xD8, 0x6C, 0x21, - 0x3E, 0x2D, 0x1F, 0x3E, 0xB7, 0xF7, 0x33, 0x5D, 0xBF, 0xE7, 0xE3, 0xD3, 0xCC, 0xC3, 0xA7, 0xE9, - 0xC3, 0xE7, 0xF7, 0x7B, 0xD0, 0x8F, 0x01, 0x42, 0x8F, 0xD8, 0x59, 0x70, 0xCD, 0x2F, 0x3A, 0x64, - 0xA6, 0xAF, 0xEE, 0x1F, 0xEC, 0x9D, 0xED, 0x79, 0xBA, 0xF3, 0xAA, 0xBA, 0x13, 0xDE, 0x52, 0xE7, - 0xD1, 0xCC, 0x16, 0x17, 0x08, 0x3A, 0xB9, 0xF8, 0x6C, 0x81, 0xC8, 0x0E, 0xCE, 0xF5, 0x26, 0x4A, - 0xA7, 0x3E, 0x94, 0x5C, 0x45, 0xA8, 0x94, 0xDE, 0xA1, 0xF1, 0x7D, 0x63, 0xF5, 0x0F, 0x6C, 0x8D, - 0x71, 0x3C, 0xC8, 0x47, 0x99, 0x12, 0x3D, 0xAC, 0x6A, 0x2F, 0x73, 0x13, 0xAB, 0x7F, 0x28, 0xBA, - 0xC1, 0x7C, 0x9A, 0xC8, 0xF7, 0x8A, 0x9D, 0x07, 0x6D, 0x3A, 0xBC, 0x5E, 0x9D, 0x8B, 0x6B, 0xE8, - 0xD6, 0x96, 0x87, 0x32, 0xAF, 0x7C, 0x38, 0xA4, 0x41, 0xFB, 0x6C, 0x81, 0x8B, 0xCD, 0x53, 0xEB, - 0x0A, 0x49, 0x8F, 0x69, 0x70, 0x2E, 0x4E, 0x76, 0x8F, 0x3D, 0x5D, 0x3E, 0xF5, 0x75, 0x89, 0x3E, - 0xE6, 0x67, 0xE1, 0x18, 0xAC, 0xC6, 0xF0, 0xE6, 0x16, 0x23, 0x7A, 0xF3, 0x09, 0x82, 0x87, 0x13, - 0x06, 0xF0, 0x8F, 0x08, 0x7C, 0xA5, 0xE2, 0x9B, 0xAD, 0xCC, 0x83, 0x1E, 0xD0, 0x60, 0x8D, 0x27, - 0xE1, 0x7D, 0x4D, 0xEC, 0x33, 0x7E, 0x8E, 0x43, 0x75, 0x6B, 0x84, 0xAF, 0x7D, 0x23, 0x7C, 0x96, - 0x3F, 0x42, 0x14, 0x58, 0x41, 0x3F, 0x00, 0x6E, 0x06, 0x20, 0x48, 0x13, 0x0A, 0x0B, 0x0F, 0x4C, - 0xBD, 0xB8, 0xF9, 0xA4, 0x91, 0x79, 0x35, 0xC7, 0x73, 0xE1, 0x60, 0x85, 0x90, 0x22, 0xB0, 0xBF, - 0x1D, 0x7E, 0x1C, 0xC6, 0x37, 0x43, 0xBA, 0x47, 0x93, 0x06, 0xE4, 0x31, 0xFB, 0xC7, 0x64, 0xA5, - 0x82, 0x01, 0xC6, 0x0A, 0x37, 0xBA, 0x8C, 0x3A, 0xEC, 0x81, 0x41, 0x43, 0x21, 0xD5, 0xCC, 0xD7, - 0x87, 0x11, 0xC5, 0x1B, 0x74, 0x4F, 0x81, 0x75, 0x77, 0x36, 0x0A, 0x3B, 0xC0, 0x45, 0x7A, 0x87, - 0x04, 0x45, 0x06, 0xDE, 0xBA, 0x21, 0x98, 0x33, 0xAA, 0x9A, 0xEC, 0xAB, 0x0E, 0x07, 0x62, 0xA7, - 0xED, 0x96, 0x97, 0xB2, 0xB3, 0xBD, 0xA3, 0xFD, 0x39, 0x7B, 0x35, 0x75, 0xBF, 0x4B, 0xDD, 0xBF, - 0xFD, 0xA6, 0x0C, 0xD4, 0xB7, 0xDF, 0x94, 0x82, 0xF9, 0x42, 0xC0, 0x1C, 0x46, 0xB0, 0x08, 0xD0, - 0xB7, 0x29, 0x61, 0xD5, 0xB7, 0x67, 0xBB, 0x67, 0x7B, 0x87, 0x87, 0x4B, 0xA5, 0xF0, 0x7F, 0x7B, - 0x56, 0xAA, 0xA7, 0x75, 0x41, 0xBC, 0x49, 0xDA, 0xB9, 0x2A, 0x03, 0x16, 0x2B, 0x96, 0x82, 0xBC, - 0x47, 0x90, 0x5F, 0x46, 0xC3, 0x61, 0x94, 0x64, 0x37, 0xC0, 0x0D, 0x67, 0x9D, 0xE4, 0xF4, 0x27, - 0x9A, 0x97, 0xEA, 0xF1, 0x54, 0xF4, 0x38, 0x0E, 0x87, 0xE5, 0x06, 0x43, 0x35, 0x4B, 0xC1, 0xFE, - 0x93, 0x09, 0x7B, 0x2F, 0x18, 0x06, 0xDD, 0x28, 0x18, 0x96, 0xEF, 0x43, 0xB6, 0x28, 0xD5, 0xD7, - 0x37, 0xD4, 0xD7, 0xD7, 0x1C, 0x56, 0xB9, 0x3E, 0xA8, 0x66, 0x29, 0xD8, 0xDF, 0x13, 0xEC, 0x43, - 0x7E, 0x51, 0x29, 0x39, 0x00, 0x51, 0xB5, 0x14, 0xF4, 0x03, 0x82, 0xCE, 0xF7, 0xCA, 0x9B, 0xF0, - 0x92, 0x37, 0xDA, 0x0F, 0xBC, 0x73, 0xBF, 0x59, 0x6E, 0xEE, 0x1D, 0x30, 0xA5, 0x30, 0xF8, 0x33, - 0x61, 0x70, 0x36, 0x72, 0x7B, 0xCE, 0x5F, 0xE8, 0xA3, 0xF2, 0xD0, 0x5F, 0x09, 0xE8, 0x37, 0x61, - 0xD7, 0x37, 0x2E, 0x57, 0xFA, 0xC9, 0xEB, 0x91, 0x9A, 0x97, 0xEA, 0xF1, 0xA9, 0xEC, 0x31, 0x4A, - 0x92, 0x72, 0xB0, 0x79, 0xC5, 0x52, 0x90, 0x57, 0x05, 0x27, 0x9C, 0xBD, 0xC1, 0x5B, 0x2C, 0xAB, - 0xF2, 0x0D, 0x73, 0x12, 0xF4, 0xFB, 0x33, 0xB6, 0xBA, 0xBB, 0x54, 0x8A, 0x31, 0x44, 0xCB, 0x72, - 0x72, 0x8A, 0xFE, 0x20, 0x0F, 0x1E, 0xBA, 0x79, 0xE3, 0xCF, 0xF7, 0xB0, 0xA1, 0xE9, 0x13, 0x25, - 0xA3, 0x74, 0xB3, 0x6E, 0xD4, 0xE0, 0x5A, 0x63, 0x9C, 0x4D, 0xEE, 0x6D, 0xDB, 0x56, 0xF1, 0x15, - 0x1E, 0x87, 0x9E, 0x93, 0x2B, 0x4E, 0x3A, 0x56, 0x0C, 0x55, 0x30, 0x63, 0x9C, 0x24, 0x10, 0x30, - 0x91, 0x5F, 0x51, 0xCF, 0xF3, 0x4A, 0x5E, 0x1C, 0x1C, 0x99, 0x45, 0x0C, 0x65, 0x37, 0xC8, 0x57, - 0xC7, 0x50, 0xDD, 0x1F, 0x42, 0x28, 0x4F, 0xBD, 0xE7, 0x1B, 0xA1, 0x32, 0xC9, 0x88, 0x0C, 0x36, - 0x37, 0xFD, 0xA1, 0xF1, 0xC8, 0x31, 0xEF, 0x66, 0xEA, 0x0B, 0x8F, 0x68, 0xA3, 0x8A, 0x61, 0x7F, - 0x30, 0xBC, 0xE7, 0x4C, 0x93, 0x83, 0x6D, 0x45, 0xB4, 0xFC, 0x71, 0xA8, 0xDD, 0x45, 0x23, 0x63, - 0x1F, 0x46, 0x8A, 0x34, 0x1E, 0x67, 0xBF, 0x35, 0x3D, 0xDF, 0x5A, 0xAE, 0x42, 0x48, 0x99, 0x16, - 0x05, 0xFC, 0xA6, 0xD7, 0xFE, 0x4C, 0x22, 0x6B, 0x94, 0xF6, 0x95, 0x93, 0xA6, 0xAA, 0x9E, 0x63, - 0xC6, 0xA3, 0xB7, 0xC8, 0xE7, 0xD0, 0xA4, 0xAA, 0x5B, 0x67, 0x8C, 0xBA, 0xAE, 0x05, 0xD1, 0xA3, - 0x7A, 0x42, 0xBC, 0xD7, 0x5C, 0xBC, 0x31, 0x96, 0x45, 0xCA, 0xBE, 0x83, 0xF0, 0x23, 0xA3, 0x70, - 0x9C, 0xCE, 0x4A, 0x02, 0x5A, 0xF7, 0x10, 0x65, 0xC3, 0x03, 0x9C, 0xB3, 0xEA, 0xF0, 0x32, 0x64, - 0xDD, 0xD9, 0x30, 0x18, 0x44, 0x1D, 0x7A, 0xA7, 0xEB, 0x3E, 0xAA, 0xCA, 0xEB, 0xA3, 0xE9, 0x9D, - 0x0D, 0xDF, 0x74, 0x34, 0x5B, 0xBE, 0x8F, 0x6B, 0xBE, 0x8F, 0x3E, 0xC4, 0x9B, 0x1B, 0xBE, 0x8F, - 0x9B, 0xBE, 0x8F, 0x8F, 0x7C, 0x1F, 0xB7, 0x7C, 0x1F, 0xB7, 0xE7, 0x53, 0x63, 0x12, 0x2D, 0x46, - 0x90, 0xF5, 0xCD, 0x7C, 0x98, 0x5C, 0x66, 0xC7, 0x98, 0xE4, 0x25, 0x41, 0x6D, 0x34, 0x3C, 0xA0, - 0x24, 0x5E, 0xF0, 0x7C, 0xAE, 0x2C, 0x9C, 0xA6, 0x07, 0x4E, 0x38, 0x08, 0xF8, 0xAE, 0x88, 0xA1, - 0x11, 0xCA, 0x82, 0xC9, 0x2C, 0x28, 0x08, 0xFD, 0xC4, 0x4F, 0xBA, 0xD1, 0x04, 0xE2, 0xF5, 0x1B, - 0xF9, 0x43, 0xD5, 0xCB, 0xE7, 0xF9, 0x40, 0x9B, 0x0D, 0xEF, 0x64, 0x37, 0xBC, 0xB3, 0x9D, 0xC3, - 0x6C, 0x5E, 0x6E, 0xF3, 0xB3, 0x9B, 0x9F, 0xDF, 0xFC, 0x0C, 0xE7, 0xE7, 0x38, 0x3F, 0xCB, 0xF9, - 0x79, 0xCE, 0x65, 0x3A, 0xA4, 0x18, 0x5A, 0xF9, 0x4A, 0xF2, 0xD4, 0x6D, 0xCE, 0x96, 0x9A, 0x31, - 0xE9, 0xCE, 0x35, 0xE8, 0x16, 0x1E, 0x3B, 0x9E, 0x37, 0x2F, 0x56, 0xCE, 0x2C, 0xD8, 0xC4, 0x6D, - 0xB7, 0x6C, 0xB3, 0x9A, 0xF0, 0x01, 0x6A, 0x54, 0xC0, 0xC3, 0x47, 0x3C, 0xB9, 0xD9, 0xF6, 0x38, - 0x04, 0x79, 0x70, 0xF4, 0xEF, 0xA7, 0x56, 0x9D, 0x3F, 0x70, 0x66, 0x80, 0x64, 0x66, 0x57, 0x78, - 0x6C, 0x43, 0xD4, 0xC5, 0xDD, 0xB4, 0xDA, 0x58, 0x62, 0x75, 0xB6, 0xEE, 0xBE, 0x9C, 0xD3, 0x7E, - 0xB9, 0xF2, 0x70, 0xDA, 0xC9, 0x43, 0x63, 0xDE, 0xC9, 0x34, 0x17, 0x73, 0x91, 0xF2, 0xCE, 0x9C, - 0xAA, 0x0C, 0x26, 0x76, 0xCF, 0x59, 0x20, 0x05, 0x0F, 0x86, 0x8A, 0x2F, 0xB3, 0x49, 0x64, 0x89, - 0x04, 0x95, 0xE7, 0xE0, 0xC7, 0xF9, 0x0C, 0xFE, 0xFA, 0x42, 0xBB, 0x68, 0x99, 0x74, 0x78, 0x6E, - 0x9D, 0xE8, 0xCF, 0xAC, 0xDF, 0xBE, 0x70, 0x68, 0x44, 0xF4, 0x19, 0x87, 0x10, 0xEB, 0xC8, 0x45, - 0x30, 0x23, 0x20, 0x99, 0x68, 0x34, 0xF8, 0x9C, 0x6C, 0xBB, 0xDD, 0xCF, 0xE5, 0x0C, 0x1F, 0x6D, - 0xEF, 0xCE, 0x05, 0x85, 0x08, 0x56, 0xBE, 0x04, 0x12, 0x3D, 0xAC, 0xA0, 0x4F, 0x0E, 0x78, 0xBE, - 0x56, 0xFC, 0xD4, 0xFA, 0xD2, 0xA2, 0xCF, 0x43, 0xEB, 0x37, 0x66, 0xCB, 0x46, 0x15, 0x2F, 0xF1, - 0xE2, 0x24, 0x5D, 0x8C, 0x7A, 0x0B, 0xF1, 0x64, 0xCE, 0x5A, 0xB7, 0x46, 0xBA, 0xE3, 0x1F, 0x19, - 0xAC, 0x07, 0x57, 0x6D, 0xE3, 0xDD, 0x19, 0x54, 0x69, 0x81, 0xDF, 0x10, 0x46, 0xF3, 0x4E, 0xD8, - 0xAE, 0xF3, 0x95, 0x74, 0xA7, 0x6F, 0x47, 0x50, 0x06, 0xC9, 0x46, 0x12, 0x56, 0x95, 0xE9, 0x13, - 0x31, 0x8C, 0x71, 0x75, 0xEF, 0xED, 0x5B, 0x8F, 0x92, 0x6B, 0xD7, 0xA7, 0xE4, 0xA2, 0xB7, 0x3F, - 0x6F, 0x47, 0xA6, 0xD8, 0x56, 0x46, 0x8D, 0x28, 0x50, 0x7B, 0xE1, 0x45, 0x6D, 0x1F, 0x14, 0x4C, - 0xF9, 0xC8, 0xED, 0x7B, 0x90, 0x7B, 0x91, 0x8F, 0x1C, 0x40, 0xBB, 0x23, 0x7A, 0x7B, 0x5E, 0xF4, - 0x5E, 0xF2, 0x2B, 0x6A, 0x30, 0xEE, 0x16, 0x60, 0xF8, 0xD2, 0x83, 0xE1, 0x5E, 0x3E, 0x86, 0x02, - 0xE0, 0x1D, 0x91, 0xDC, 0xF7, 0x22, 0xF9, 0x22, 0xE8, 0x7C, 0x9C, 0x83, 0xE5, 0x0B, 0x0F, 0x96, - 0x5E, 0x27, 0x11, 0xF1, 0xC0, 0x4B, 0x40, 0xBC, 0x23, 0x9A, 0x3B, 0xF0, 0xD7, 0x2B, 0x2F, 0xAE, - 0x32, 0xFD, 0x0A, 0x83, 0xA8, 0x1E, 0x3B, 0xFC, 0xE0, 0x9D, 0x0C, 0x86, 0xEF, 0x4D, 0x7C, 0x2F, - 0x9A, 0x35, 0xB8, 0x0A, 0x70, 0x9C, 0x4F, 0xCA, 0xAA, 0xB4, 0x09, 0x67, 0x0E, 0xF9, 0x8E, 0xE8, - 0xFE, 0x91, 0xB1, 0x83, 0x31, 0x80, 0xE7, 0xB7, 0x64, 0x78, 0xBE, 0xD2, 0x0F, 0x66, 0xAC, 0x7A, - 0xE0, 0x63, 0xBD, 0x3F, 0xFA, 0xBA, 0x0F, 0xA1, 0xED, 0xE1, 0x50, 0xB4, 0xBC, 0x23, 0x0E, 0xDF, - 0x18, 0x38, 0x90, 0x17, 0xD1, 0xC1, 0x91, 0x07, 0x81, 0x6F, 0x0A, 0x10, 0xC0, 0x47, 0x4B, 0x77, - 0xE9, 0x7D, 0xC0, 0x06, 0xCC, 0x50, 0xA9, 0xAA, 0xBC, 0x84, 0x9C, 0x8F, 0xCE, 0xBE, 0xF6, 0x19, - 0x9D, 0x06, 0x1E, 0xDF, 0xF3, 0x2F, 0x8C, 0xA3, 0x2A, 0x4F, 0xDC, 0xE0, 0x5D, 0x68, 0xE0, 0x05, - 0xA8, 0x96, 0xF0, 0x4A, 0x17, 0x64, 0x1B, 0x32, 0xE9, 0xA2, 0x07, 0x4A, 0xD4, 0x49, 0xC2, 0x4E, - 0x43, 0xB4, 0x30, 0x54, 0xF7, 0xCF, 0x7C, 0x88, 0xBB, 0xC6, 0xD6, 0x92, 0x88, 0x77, 0xB1, 0x0B, - 0xEA, 0xE1, 0x53, 0xD0, 0x86, 0xB8, 0x53, 0xFA, 0xCF, 0x1F, 0xD8, 0x6E, 0xB7, 0x1B, 0xE9, 0x64, - 0x22, 0xF2, 0xF3, 0xAA, 0x7F, 0xA8, 0xFF, 0x64, 0x7F, 0x15, 0x89, 0xB0, 0x79, 0x41, 0xF5, 0x05, - 0x3C, 0x59, 0x5B, 0xD2, 0x33, 0x58, 0x4D, 0x96, 0xDC, 0x1D, 0xE0, 0x70, 0xEF, 0x95, 0x87, 0x1C, - 0xFF, 0xE4, 0x77, 0x13, 0x03, 0xC0, 0xA8, 0x5B, 0xB9, 0x23, 0x2F, 0x1F, 0x78, 0x57, 0xBE, 0x76, - 0x90, 0xCB, 0xDD, 0xA6, 0x5E, 0xFB, 0x58, 0xDE, 0xEB, 0x05, 0x47, 0x4B, 0x1E, 0x40, 0xDE, 0x99, - 0xEB, 0x13, 0xF6, 0xD2, 0xBF, 0x43, 0x8D, 0xC3, 0x4E, 0x08, 0xC1, 0x47, 0xEF, 0x82, 0xEC, 0xCB, - 0x82, 0xFD, 0x49, 0xC2, 0xFD, 0x04, 0x8C, 0xBF, 0xF6, 0x62, 0x6C, 0x2C, 0xDD, 0x76, 0xC2, 0x77, - 0x54, 0x2E, 0x3C, 0xB0, 0x0B, 0xDF, 0xD6, 0x0A, 0x0F, 0x1D, 0x69, 0x73, 0x7D, 0xB5, 0xEB, 0x41, - 0xFE, 0xEB, 0x7C, 0xE4, 0xA1, 0x0B, 0x09, 0xFC, 0x8E, 0xB8, 0x1F, 0xE5, 0xF1, 0x2F, 0xD2, 0xC3, - 0xC3, 0xB2, 0x3E, 0xFA, 0x1E, 0xE5, 0x73, 0x2C, 0x80, 0xB9, 0x2B, 0xC7, 0x1E, 0xDB, 0x5F, 0xF7, - 0xF9, 0xE5, 0x39, 0x0D, 0x0B, 0x70, 0xDB, 0xF7, 0xE1, 0xE6, 0x75, 0x81, 0xEC, 0x22, 0xA8, 0x4F, - 0xC1, 0xED, 0x24, 0x0F, 0xB7, 0xA2, 0xF5, 0xBE, 0xEF, 0x5D, 0xEF, 0x5E, 0xBF, 0x64, 0xC2, 0xF0, - 0x53, 0xD6, 0xFB, 0x77, 0xF6, 0x57, 0x3A, 0xC7, 0xE6, 0x20, 0x78, 0xE0, 0x45, 0xF0, 0xBB, 0xDC, - 0xE3, 0xED, 0xEE, 0xF8, 0x0D, 0xD8, 0xCF, 0xE6, 0xE9, 0xA6, 0x04, 0x10, 0xC9, 0xCE, 0x76, 0x93, - 0x79, 0x2B, 0xE7, 0xD5, 0x89, 0x6F, 0xE5, 0xFC, 0xEC, 0x5D, 0x39, 0xBC, 0x4F, 0xDE, 0xDB, 0x5D, - 0x97, 0x4D, 0x73, 0xBD, 0xC9, 0x36, 0x9B, 0x2C, 0xE0, 0xE7, 0xC4, 0xAB, 0x93, 0x53, 0x56, 0xB7, - 0x4B, 0x5F, 0xC5, 0xE3, 0xE8, 0x2F, 0x31, 0xF8, 0xA3, 0xE9, 0x11, 0x9D, 0x42, 0xD2, 0xD6, 0xE8, - 0x3A, 0xCC, 0xA0, 0x17, 0xF8, 0xD0, 0x7B, 0x25, 0xDB, 0xC9, 0x66, 0x77, 0xA2, 0x2E, 0x4B, 0x58, - 0xC7, 0xFE, 0x0C, 0x99, 0xF6, 0xE4, 0xA1, 0x6C, 0x8A, 0x12, 0x27, 0xE3, 0x68, 0x10, 0x8C, 0x67, - 0x6C, 0x7F, 0xD7, 0xF5, 0xB6, 0x03, 0x40, 0xCF, 0x16, 0x01, 0x45, 0xF1, 0x10, 0x05, 0xB0, 0xCC, - 0x68, 0xBD, 0xEE, 0xDC, 0x10, 0xD0, 0x94, 0x20, 0x95, 0x92, 0x40, 0x8A, 0xD8, 0xA9, 0x6B, 0x7F, - 0xA5, 0x53, 0xC2, 0xE5, 0x2A, 0x86, 0x3C, 0xE3, 0x4A, 0xB6, 0x82, 0xB5, 0x38, 0x1F, 0xBD, 0xF3, - 0xF2, 0x51, 0xD7, 0xEB, 0x5C, 0xC0, 0x3B, 0xF8, 0x24, 0x3E, 0xDA, 0x60, 0x9B, 0x1B, 0x2C, 0xE4, - 0x7C, 0xF4, 0x0E, 0xF8, 0x88, 0xBD, 0xE3, 0x9B, 0x65, 0xD4, 0x29, 0xC5, 0x38, 0xDE, 0xD7, 0x77, - 0xEF, 0xEE, 0x85, 0x71, 0xC4, 0x2D, 0xA1, 0xE7, 0x2E, 0x3F, 0x83, 0xB1, 0xC1, 0xB6, 0x9F, 0x45, - 0x36, 0xE7, 0xE2, 0x90, 0x59, 0xC6, 0xE2, 0x1E, 0xF1, 0xEA, 0x9D, 0xEF, 0x1E, 0xE1, 0x7D, 0xF6, - 0xF7, 0x4A, 0x8D, 0xEC, 0x8E, 0x9C, 0x71, 0x45, 0xA6, 0x1D, 0x88, 0x1A, 0xC8, 0x99, 0xF4, 0xD8, - 0xC7, 0xE7, 0xCF, 0xA9, 0x5E, 0x5D, 0xA6, 0x08, 0xC3, 0xA7, 0x41, 0x98, 0x3D, 0x33, 0xA9, 0x89, - 0x5C, 0xCD, 0xD6, 0xC7, 0x0C, 0xE6, 0x57, 0x39, 0x0E, 0x5F, 0xD0, 0xE9, 0x1D, 0xD1, 0xEE, 0x33, - 0xF1, 0x3E, 0x82, 0x10, 0x3F, 0xCD, 0x47, 0xBC, 0x9F, 0x41, 0xA7, 0x9F, 0xE3, 0x7D, 0xF5, 0x09, - 0x08, 0x09, 0xCE, 0x18, 0xBB, 0x33, 0x0A, 0xA4, 0x3D, 0x53, 0x31, 0x85, 0x4F, 0x31, 0xCC, 0x05, - 0xBB, 0x48, 0xE3, 0xD1, 0x0E, 0x05, 0xC0, 0xB0, 0x16, 0x5B, 0x0F, 0x5E, 0x7D, 0x24, 0x90, 0xA1, - 0x3B, 0xEE, 0xB1, 0x9B, 0x68, 0x58, 0x77, 0xA1, 0x75, 0xE3, 0x9B, 0x25, 0xF2, 0x73, 0x3B, 0x7F, - 0x91, 0x3F, 0xE0, 0x71, 0x66, 0xC0, 0xDE, 0xC7, 0xBC, 0x7C, 0xB8, 0x84, 0x19, 0x61, 0x75, 0x97, - 0x61, 0x27, 0x99, 0xE1, 0x82, 0x3F, 0x9E, 0xE0, 0x88, 0xEA, 0xEE, 0xEB, 0xB3, 0xC3, 0x95, 0xB3, - 0xEF, 0x7D, 0xAF, 0x57, 0x92, 0x39, 0x2E, 0x79, 0x77, 0xC0, 0x65, 0xE2, 0xE2, 0x22, 0x7D, 0xF1, - 0x4A, 0xA0, 0x33, 0x99, 0xEF, 0x8E, 0xB7, 0x10, 0x46, 0xEE, 0x9D, 0xE9, 0x08, 0x92, 0x3B, 0x8E, - 0xD9, 0x5B, 0x9D, 0xE1, 0x91, 0x0A, 0x72, 0x6E, 0x4D, 0x87, 0x5E, 0x89, 0x59, 0xAA, 0x75, 0xCE, - 0x83, 0x36, 0x98, 0x4B, 0xF0, 0x75, 0x54, 0xC2, 0xD2, 0xA0, 0x0D, 0x01, 0x7D, 0x47, 0x59, 0x59, - 0xFF, 0xD5, 0xB9, 0x67, 0xA4, 0x87, 0x73, 0xB5, 0x3C, 0x1C, 0xFC, 0x1D, 0x57, 0xC0, 0x19, 0x13, - 0xAC, 0xCE, 0x26, 0xA8, 0xBB, 0xA3, 0x10, 0x34, 0x0E, 0x5A, 0x67, 0x3E, 0xD5, 0xDD, 0x99, 0x97, - 0x1D, 0x10, 0xD6, 0x9D, 0x55, 0x77, 0xE7, 0x0A, 0x9B, 0xAE, 0x50, 0xD7, 0xF9, 0xF1, 0xD9, 0xF7, - 0xAD, 0x23, 0xB9, 0x9E, 0x9D, 0xBF, 0xCE, 0xB3, 0x35, 0xB9, 0x0C, 0x90, 0x64, 0xCA, 0x68, 0x54, - 0xE7, 0x99, 0xA7, 0x3B, 0x86, 0x01, 0x59, 0xA8, 0xC7, 0x49, 0x9B, 0xEE, 0x5E, 0xE1, 0x91, 0x7F, - 0xF5, 0xAE, 0x84, 0x86, 0x61, 0xD8, 0x9A, 0x8A, 0x4E, 0xFF, 0x55, 0x23, 0x04, 0x84, 0xF3, 0x3D, - 0x13, 0x10, 0xC1, 0xB1, 0x63, 0xCB, 0x40, 0xB8, 0xCF, 0xB2, 0x11, 0x21, 0x35, 0x26, 0xD1, 0x30, - 0xA2, 0x74, 0x67, 0x32, 0xD3, 0xF2, 0x7D, 0xE0, 0x92, 0x83, 0x08, 0x3C, 0xDA, 0x55, 0x81, 0x6B, - 0x0B, 0xB5, 0x1C, 0x22, 0x7E, 0x4B, 0xB1, 0x0A, 0xB5, 0xBC, 0x6A, 0xE6, 0xCF, 0xDE, 0x95, 0xA7, - 0x74, 0x95, 0x65, 0x97, 0xDE, 0x0B, 0xDF, 0xD2, 0xFB, 0xF3, 0x7C, 0xD5, 0xE5, 0xDD, 0xD7, 0x5E, - 0x1B, 0xF6, 0xBB, 0x51, 0x28, 0x72, 0xF2, 0x8E, 0x94, 0x3A, 0xE0, 0x72, 0x1C, 0x8C, 0xAE, 0xC0, - 0x24, 0xAF, 0xEF, 0x12, 0x1C, 0x71, 0xD2, 0x0D, 0x9C, 0x1E, 0xF8, 0xA4, 0x0C, 0x6F, 0x00, 0x80, - 0x31, 0xC2, 0x56, 0xDA, 0x00, 0x7D, 0x49, 0xBA, 0x1B, 0xB6, 0x97, 0x0C, 0xDD, 0x81, 0xF7, 0x20, - 0x02, 0x17, 0xAB, 0x9E, 0xBF, 0xF0, 0xB9, 0x48, 0x5F, 0xE6, 0x38, 0x02, 0x63, 0xA3, 0x3B, 0x0A, - 0x0D, 0x11, 0x63, 0xC7, 0x7C, 0x00, 0x01, 0xDB, 0x8B, 0x47, 0x33, 0x56, 0x3D, 0xDE, 0xCB, 0x3D, - 0x43, 0x23, 0xFB, 0x3B, 0xA1, 0x14, 0x65, 0x63, 0xAE, 0x20, 0x1E, 0x03, 0x80, 0x09, 0x20, 0x73, - 0xD1, 0x5A, 0xCD, 0x8D, 0xCF, 0xB2, 0xA8, 0x32, 0xD3, 0xDD, 0x76, 0x06, 0x3E, 0x44, 0x07, 0xE4, - 0x46, 0xD5, 0x9D, 0x90, 0x9F, 0x6E, 0xE6, 0xBA, 0x58, 0x6A, 0x1B, 0xC2, 0x9A, 0x5A, 0x56, 0xE0, - 0xC7, 0x69, 0x3C, 0x19, 0x77, 0x0A, 0xF6, 0x20, 0x6C, 0xE0, 0xB1, 0x5C, 0x9A, 0x80, 0x4A, 0xAA, - 0x53, 0x09, 0x54, 0x79, 0x02, 0x2E, 0xA0, 0x54, 0x35, 0x08, 0xE8, 0xBE, 0x87, 0x51, 0xFA, 0xD6, - 0xFB, 0x25, 0x9E, 0x88, 0xDD, 0x77, 0x2C, 0xF3, 0x8F, 0x7D, 0x12, 0x01, 0x4B, 0xA9, 0x75, 0x17, - 0x24, 0x1F, 0xD2, 0x62, 0x44, 0xC2, 0xEA, 0x28, 0xC6, 0x4C, 0xDA, 0x98, 0x84, 0xC5, 0x43, 0xB6, - 0x2F, 0xA0, 0x1E, 0x3B, 0x8B, 0x7B, 0xA9, 0x8A, 0x51, 0x2D, 0xFC, 0x11, 0x48, 0x2C, 0xF5, 0xD2, - 0xFA, 0x24, 0xF9, 0x92, 0x8D, 0xB2, 0xE2, 0x19, 0xFA, 0xD3, 0x33, 0x10, 0xCB, 0x28, 0xE5, 0x0B, - 0xBE, 0x96, 0xF8, 0x53, 0x9E, 0x5C, 0x5B, 0x04, 0x03, 0xDC, 0xAC, 0x47, 0xF0, 0x5A, 0x3B, 0x0D, - 0xE7, 0x82, 0x92, 0x67, 0xF9, 0x43, 0x0B, 0x1C, 0x4D, 0xFD, 0xC8, 0xD9, 0x73, 0x6C, 0x9F, 0xB2, - 0x9C, 0x73, 0x48, 0x31, 0x8E, 0xEB, 0x65, 0x6F, 0x6E, 0x11, 0x90, 0x11, 0x8B, 0x28, 0x3B, 0xE7, - 0x8A, 0x91, 0x7F, 0x78, 0x4A, 0x24, 0xBF, 0xC8, 0x7B, 0xA7, 0x98, 0xF0, 0x59, 0xC1, 0x3B, 0x51, - 0x21, 0xF8, 0x1C, 0xD8, 0x6A, 0x14, 0xCF, 0xFD, 0xA3, 0xD0, 0x5C, 0x2F, 0x6D, 0xD3, 0x64, 0xE8, - 0xF6, 0xD2, 0x43, 0xA1, 0x24, 0x1E, 0x4D, 0x9C, 0xD0, 0xDC, 0x94, 0x1B, 0xBA, 0x27, 0x68, 0x77, - 0x3E, 0xCE, 0xDE, 0x07, 0x03, 0x85, 0x28, 0x3F, 0x9C, 0x83, 0x72, 0x02, 0x79, 0xE5, 0x86, 0x3D, - 0x30, 0x63, 0x0F, 0x3B, 0x21, 0xBD, 0x48, 0x9A, 0x8F, 0xB3, 0x13, 0xD1, 0xED, 0x2E, 0x44, 0xDA, - 0x1D, 0x26, 0xD1, 0xFD, 0x52, 0xA8, 0xBC, 0xDC, 0xF3, 0x0B, 0x63, 0x47, 0x71, 0xD0, 0x65, 0x47, - 0x07, 0xFB, 0x09, 0x2E, 0x9E, 0xA3, 0xA3, 0x9C, 0xB5, 0x73, 0x76, 0xC2, 0x7E, 0xF1, 0x16, 0x3C, - 0x74, 0xBF, 0x13, 0x3B, 0xFD, 0x92, 0x3D, 0x33, 0xFD, 0x54, 0x72, 0x23, 0x00, 0xB9, 0x73, 0x22, - 0x22, 0xAA, 0xCE, 0xFA, 0xF9, 0x04, 0x12, 0x4D, 0x7C, 0xEF, 0xD7, 0x3C, 0xDB, 0x61, 0x39, 0xF6, - 0x70, 0xD1, 0x00, 0xFD, 0xE8, 0x38, 0x4E, 0xC9, 0x4F, 0x0D, 0x4E, 0xB2, 0x7B, 0xC2, 0x86, 0xB4, - 0x66, 0x7C, 0x0E, 0x60, 0x0A, 0xEE, 0x2A, 0x47, 0xFC, 0xBD, 0x6A, 0x21, 0x24, 0x7E, 0x29, 0x47, - 0xAF, 0xCF, 0xFF, 0x6F, 0xF3, 0xFF, 0xC7, 0x3B, 0xB8, 0xA7, 0x8F, 0x7D, 0x4C, 0x33, 0xBE, 0xCB, - 0x11, 0xFC, 0xBC, 0x60, 0xE6, 0xC4, 0x5D, 0x5E, 0xEC, 0x43, 0xEF, 0x20, 0x27, 0x4D, 0xB9, 0x63, - 0xB8, 0xDC, 0x8A, 0x76, 0x98, 0x04, 0xD8, 0xE2, 0x70, 0x78, 0xCA, 0x79, 0x24, 0x80, 0xE7, 0xC0, - 0x9F, 0x74, 0xDE, 0x97, 0xD5, 0xD2, 0x2C, 0x78, 0xE4, 0x27, 0xF8, 0xCB, 0x7C, 0x75, 0x8D, 0x39, - 0xA3, 0x89, 0x6F, 0xAA, 0x92, 0xFB, 0x9E, 0x2A, 0xD0, 0x02, 0x2D, 0x3E, 0x4F, 0x45, 0xD0, 0xE6, - 0x68, 0x70, 0x16, 0x97, 0x35, 0xB5, 0x42, 0x20, 0x2D, 0xC7, 0xE4, 0x9E, 0x6A, 0x4A, 0x80, 0xF7, - 0x81, 0xC0, 0x6D, 0x36, 0xF5, 0x91, 0x3B, 0x2D, 0xBB, 0x9D, 0x16, 0xB1, 0xA8, 0x08, 0x71, 0x72, - 0x17, 0x36, 0xBD, 0xD3, 0xDE, 0xFD, 0x6D, 0x30, 0x1E, 0xF2, 0x8D, 0xE7, 0x45, 0xD8, 0xEF, 0xBF, - 0x03, 0x1D, 0xF8, 0x9D, 0x57, 0xC4, 0x22, 0xA2, 0xB7, 0xEE, 0x5E, 0xA9, 0x4F, 0x5E, 0xF2, 0x3B, - 0xEC, 0x64, 0x3C, 0xF7, 0xFC, 0xC8, 0xEF, 0x5F, 0xDE, 0xF7, 0x94, 0xCB, 0xF2, 0xB7, 0xD1, 0x90, - 0xEF, 0x86, 0x73, 0x01, 0xDE, 0x9D, 0xDB, 0x26, 0xF8, 0x4B, 0x29, 0x55, 0xA6, 0xC5, 0x3C, 0x13, - 0x1F, 0xF3, 0x4C, 0x4A, 0xAF, 0xD5, 0x05, 0x26, 0xF7, 0x38, 0x18, 0x5F, 0x46, 0xC3, 0x4F, 0x9F, - 0xDB, 0x05, 0x74, 0xAE, 0x8B, 0xAE, 0x58, 0x77, 0x45, 0x8E, 0x76, 0xF4, 0xB7, 0xD1, 0x97, 0xEC, - 0xDA, 0x47, 0xAB, 0xEB, 0xFB, 0x58, 0x68, 0x9D, 0x78, 0x34, 0xC3, 0xF5, 0x35, 0x7F, 0x79, 0x2D, - 0x30, 0x1A, 0xD8, 0x7A, 0xFA, 0xF0, 0x57, 0x1B, 0xFE, 0x1A, 0xF3, 0x19, 0xBA, 0xF1, 0x8D, 0xE0, - 0xA6, 0xEC, 0x08, 0x32, 0x3E, 0xA8, 0xE6, 0x10, 0xC2, 0x21, 0xDC, 0x5D, 0x5F, 0x46, 0x7D, 0x7E, - 0x75, 0x29, 0xBB, 0x55, 0x2C, 0xB2, 0x97, 0x4E, 0xF5, 0x2D, 0x4E, 0x3E, 0xAF, 0x32, 0x5E, 0x18, - 0xD1, 0x45, 0xEE, 0xE0, 0x4F, 0xE7, 0x27, 0xBB, 0x7E, 0x0B, 0x0F, 0x41, 0x10, 0x91, 0x36, 0x94, - 0x62, 0x01, 0x74, 0x29, 0xF0, 0x5C, 0xE2, 0x60, 0x0A, 0x81, 0x80, 0x48, 0x56, 0xD9, 0xDD, 0x3B, - 0xF0, 0x02, 0xE8, 0xEC, 0x38, 0x0C, 0xF2, 0xA5, 0xC8, 0xDC, 0xE6, 0x90, 0x73, 0x7A, 0x1F, 0x0C, - 0xD1, 0x8B, 0xE0, 0x20, 0xBF, 0x0F, 0xB9, 0x40, 0xDE, 0xAC, 0x14, 0xA9, 0xE6, 0x6D, 0x42, 0x22, - 0x70, 0xD4, 0x4F, 0x3F, 0xDD, 0xEF, 0x41, 0x38, 0xE1, 0xEC, 0xF7, 0x97, 0x79, 0x6B, 0xEE, 0x4B, - 0xB7, 0x0A, 0x91, 0xF4, 0x2F, 0xF7, 0xC8, 0xA1, 0x22, 0x23, 0x28, 0x69, 0x7D, 0x8A, 0xB4, 0xD3, - 0x9F, 0x26, 0xDD, 0xA1, 0x5F, 0xC7, 0xFD, 0xAF, 0x83, 0x01, 0xA7, 0xA2, 0xCF, 0x39, 0xDA, 0xA1, - 0xE2, 0xAF, 0x3E, 0x2A, 0xFE, 0x7A, 0x2F, 0x54, 0x84, 0x24, 0xE0, 0x44, 0x42, 0x4A, 0x52, 0xFA, - 0xD9, 0xA4, 0x63, 0x7C, 0xE2, 0x73, 0x1D, 0x1E, 0x7C, 0x1E, 0x42, 0x26, 0xE0, 0x5E, 0xEF, 0xA3, - 0xD2, 0x6F, 0xF7, 0x42, 0x25, 0xB1, 0xEA, 0x04, 0xA5, 0xE6, 0x5A, 0xDE, 0x17, 0xC5, 0x9E, 0x0D, - 0xE0, 0xEC, 0xCE, 0xC4, 0x7D, 0x21, 0xA7, 0x33, 0x2E, 0xB3, 0xEF, 0xA1, 0x07, 0x81, 0xCF, 0x75, - 0xEA, 0x60, 0xEF, 0x70, 0x6F, 0xA9, 0xC6, 0xDE, 0x9D, 0xAF, 0xB7, 0x1A, 0xE8, 0x83, 0x30, 0x19, - 0xAD, 0xF8, 0xC8, 0x70, 0x7B, 0x1F, 0xD7, 0x71, 0xE1, 0x6D, 0x89, 0xC8, 0xDC, 0x9F, 0x0E, 0x97, - 0x06, 0xEF, 0x04, 0x99, 0x91, 0x9E, 0x63, 0x73, 0x06, 0xBF, 0xEF, 0x0E, 0xDE, 0x37, 0xF6, 0xDF, - 0xEF, 0x63, 0xEC, 0xC2, 0xF3, 0xEC, 0x9E, 0xC6, 0x9E, 0x1F, 0xEF, 0xC2, 0x09, 0x67, 0x01, 0x14, - 0x02, 0xDF, 0x8A, 0xF2, 0xB1, 0x2C, 0x1E, 0x58, 0xE0, 0xD4, 0x73, 0x1C, 0xF3, 0xD5, 0x91, 0x3D, - 0x72, 0xAB, 0xC8, 0xF3, 0x68, 0xA8, 0xDB, 0x49, 0x34, 0x9E, 0x9F, 0xE1, 0xC1, 0x6F, 0x09, 0x65, - 0x2B, 0xA7, 0xE2, 0x5B, 0xCE, 0x7A, 0xF5, 0x7D, 0x5E, 0x38, 0x0C, 0xBB, 0x10, 0xF8, 0x84, 0x44, - 0x84, 0xB7, 0xFB, 0xDF, 0xB8, 0x11, 0x28, 0x70, 0xCA, 0x33, 0xBA, 0xCC, 0xEC, 0x14, 0x20, 0x54, - 0x29, 0x82, 0x08, 0xDB, 0x81, 0x0C, 0x99, 0x8A, 0x5A, 0xE4, 0xB3, 0x33, 0x07, 0x34, 0xAF, 0x9F, - 0xF2, 0xCA, 0x8F, 0x59, 0xD8, 0xB9, 0x8A, 0x59, 0x1D, 0xE2, 0x66, 0x87, 0x27, 0x5F, 0xFE, 0xF2, - 0x70, 0xF4, 0x43, 0xF8, 0xC3, 0x0F, 0x15, 0x0F, 0x16, 0x5F, 0xFE, 0x92, 0xC1, 0x03, 0x12, 0x2F, - 0x8C, 0x52, 0xDF, 0x4B, 0x25, 0xA7, 0x22, 0xA4, 0x5B, 0xB8, 0x0E, 0xFA, 0x91, 0x11, 0x63, 0xC5, - 0xA9, 0x21, 0xE9, 0x36, 0x4A, 0x7D, 0x8F, 0x91, 0x57, 0x31, 0x08, 0xC9, 0xD9, 0xDE, 0x6E, 0xA6, - 0x84, 0x70, 0x7B, 0x98, 0xC5, 0x0D, 0xFE, 0x20, 0x6E, 0x95, 0x06, 0x2F, 0xCD, 0xEA, 0x8F, 0xFD, - 0x54, 0x34, 0x3B, 0x3B, 0xCA, 0xEB, 0xCC, 0x55, 0xB0, 0x9B, 0x9D, 0x6D, 0x36, 0x79, 0xF1, 0x1D, - 0x7A, 0x3B, 0x7F, 0x71, 0x9C, 0xD3, 0x9D, 0xEB, 0xF6, 0x62, 0xF6, 0x96, 0xCD, 0xA1, 0x06, 0x7F, - 0x96, 0x33, 0x29, 0x53, 0x20, 0x29, 0x4E, 0x4E, 0x55, 0xF3, 0x8D, 0x54, 0x3E, 0x10, 0x0A, 0xEF, - 0x5D, 0x08, 0x67, 0xBC, 0xE8, 0xB0, 0xCF, 0xBE, 0x3E, 0xCD, 0x19, 0xB2, 0xFB, 0xCA, 0x81, 0xFE, - 0x88, 0xD9, 0x1C, 0x2C, 0xD4, 0x4F, 0x8E, 0x6A, 0x1D, 0xFE, 0xF8, 0x76, 0x28, 0x88, 0x2E, 0x7C, - 0x92, 0xCA, 0xFD, 0x69, 0x94, 0x7A, 0x0C, 0x0F, 0x8A, 0xF6, 0x05, 0x68, 0xD8, 0x1F, 0xFD, 0x41, - 0xCB, 0xC1, 0x2F, 0xB2, 0x8A, 0xDB, 0xC8, 0x09, 0x24, 0xFD, 0x5B, 0xA6, 0xF5, 0xC1, 0x09, 0xF9, - 0xE5, 0x18, 0x7E, 0xE7, 0x9D, 0x2C, 0xD3, 0x2E, 0xC3, 0x97, 0x63, 0x06, 0x8D, 0x9C, 0x1D, 0x80, - 0xC2, 0x1B, 0x8C, 0x07, 0x9D, 0x60, 0xB4, 0x4A, 0x17, 0x91, 0x5E, 0xCC, 0xF6, 0x21, 0xF7, 0x63, - 0x75, 0x0A, 0x96, 0xAE, 0x1A, 0x0B, 0xA7, 0xA3, 0x70, 0x1C, 0x51, 0x3C, 0x45, 0xEF, 0x66, 0xB3, - 0x9C, 0xE5, 0xEE, 0x39, 0xDB, 0x4D, 0xA6, 0x43, 0xB9, 0xF1, 0xF8, 0xBA, 0xCC, 0x02, 0xB9, 0x9C, - 0xF4, 0x21, 0xCF, 0x34, 0xD4, 0x65, 0xDD, 0x38, 0x4C, 0xD8, 0x30, 0x4E, 0x19, 0xE4, 0x3A, 0x07, - 0x93, 0xDC, 0x08, 0xB2, 0x6F, 0x63, 0x8A, 0x22, 0x0C, 0x93, 0x4A, 0x31, 0xB9, 0x33, 0x1B, 0xD9, - 0x39, 0x94, 0x76, 0x20, 0x0D, 0x6D, 0x00, 0xAE, 0x7D, 0x01, 0x4B, 0x06, 0x10, 0x45, 0x95, 0xB2, - 0x62, 0xC0, 0xBB, 0x9E, 0xEB, 0x68, 0x50, 0xB8, 0xFB, 0x0D, 0x69, 0xFB, 0x5B, 0xFE, 0x65, 0xB3, - 0xBD, 0xB9, 0x9E, 0xB7, 0x01, 0x2E, 0x7F, 0xD6, 0x0D, 0xB0, 0x98, 0x27, 0x96, 0xEF, 0xC8, 0x13, - 0x39, 0xEC, 0x9F, 0xC7, 0xFA, 0x74, 0x60, 0x49, 0xF6, 0x37, 0xCF, 0xB0, 0x9C, 0xCE, 0xF4, 0x87, - 0xEC, 0x1B, 0xED, 0xB9, 0xEF, 0xB0, 0xBD, 0xC7, 0x79, 0xB9, 0x37, 0xDA, 0x56, 0x5E, 0x34, 0xFD, - 0x3A, 0x34, 0xEF, 0xED, 0x36, 0x75, 0x44, 0xAF, 0x6F, 0xBF, 0x10, 0x6F, 0x5B, 0x8D, 0xDF, 0x96, - 0x33, 0xB6, 0x2D, 0xDF, 0x00, 0x9C, 0x47, 0xCA, 0xEE, 0xE5, 0x01, 0xFB, 0x90, 0xBE, 0x3F, 0x20, - 0x22, 0x64, 0xDC, 0x90, 0x4A, 0x03, 0xF5, 0x34, 0x13, 0x43, 0x28, 0x7A, 0x2B, 0x9D, 0x6D, 0x9B, - 0xED, 0xD0, 0x69, 0x5F, 0xF8, 0xBE, 0x9A, 0xA2, 0x7D, 0x5B, 0x4F, 0xAC, 0x5F, 0xC2, 0x2B, 0x9D, - 0x63, 0x94, 0x4E, 0x77, 0x4F, 0xF6, 0xEE, 0x3F, 0x72, 0x4A, 0x59, 0x26, 0x70, 0xD1, 0x96, 0x1F, - 0x75, 0x82, 0x29, 0x6F, 0xBA, 0x06, 0x75, 0xFF, 0x31, 0xB2, 0x17, 0x9A, 0x99, 0x9F, 0x6A, 0x56, - 0xF9, 0xC1, 0xB0, 0x3B, 0x27, 0x1D, 0x55, 0x7F, 0xE8, 0x4F, 0x48, 0x85, 0x50, 0xB0, 0x06, 0xE5, - 0xE7, 0x85, 0x45, 0x3B, 0xFE, 0x61, 0x58, 0x11, 0xE0, 0x38, 0x21, 0xB9, 0xCC, 0xC7, 0x94, 0x2F, - 0xCA, 0x63, 0xF8, 0x72, 0x95, 0xA6, 0xA3, 0xE4, 0xF1, 0xEA, 0x6A, 0x17, 0x6C, 0xB5, 0x10, 0xDF, - 0x64, 0x65, 0x10, 0xFF, 0x25, 0xEA, 0xF7, 0x83, 0x95, 0x78, 0x7C, 0xB9, 0x1A, 0x0E, 0xEB, 0x6F, - 0xCF, 0x56, 0xBB, 0x71, 0x27, 0x59, 0xDD, 0x7F, 0x73, 0xBC, 0xCA, 0x9B, 0xB7, 0xE3, 0x60, 0xDC, - 0xC5, 0x5B, 0xAE, 0x0F, 0xBD, 0x8F, 0xE1, 0x0C, 0xDF, 0xF7, 0x1A, 0xE8, 0x85, 0xD7, 0x3A, 0x5B, - 0x96, 0x91, 0x06, 0x11, 0x69, 0x57, 0x83, 0x48, 0x79, 0x38, 0xFB, 0x52, 0x0E, 0x0B, 0xAF, 0x01, - 0x06, 0xBC, 0x30, 0x37, 0x52, 0xD0, 0x41, 0x74, 0xBD, 0x64, 0x14, 0x74, 0x48, 0xE7, 0x8A, 0x4C, - 0xA2, 0x42, 0x3B, 0x60, 0xDE, 0xFB, 0xEB, 0x15, 0xCC, 0xF8, 0xC2, 0xD1, 0x33, 0xE7, 0x9B, 0x03, - 0x62, 0x4F, 0x45, 0xEA, 0x9C, 0x1D, 0x80, 0xF3, 0xE3, 0x2B, 0xDF, 0x04, 0xEA, 0x79, 0x55, 0x0D, - 0x1E, 0xF5, 0x44, 0x03, 0x99, 0x4E, 0xD8, 0xA8, 0x0E, 0x5B, 0x78, 0xD0, 0xD6, 0x98, 0x6C, 0x2F, - 0x82, 0x49, 0xB3, 0x7D, 0xF1, 0xE7, 0xEC, 0x45, 0xC1, 0x8F, 0x45, 0xAA, 0x2A, 0xDA, 0xBD, 0x53, - 0x12, 0xC6, 0x55, 0x08, 0x3E, 0x3C, 0xD6, 0x68, 0xE8, 0xD0, 0x1A, 0xB2, 0xFD, 0x38, 0xA7, 0x3D, - 0x39, 0x9B, 0xEB, 0x96, 0xAD, 0x47, 0x6E, 0x4B, 0x58, 0x19, 0xFE, 0xB6, 0xFD, 0xB0, 0x97, 0xD6, - 0x03, 0xBE, 0x81, 0xDF, 0xE8, 0xF6, 0x6B, 0x8F, 0x4C, 0x0A, 0x20, 0x0F, 0x1A, 0x31, 0x0E, 0x49, - 0x1B, 0x9D, 0x43, 0x8C, 0x37, 0xFB, 0x44, 0x67, 0x08, 0xE1, 0x1B, 0x24, 0xEC, 0xC7, 0x8B, 0x37, - 0x98, 0x44, 0xEC, 0x51, 0xBD, 0x1D, 0x69, 0x03, 0xCE, 0xEA, 0xAA, 0x6A, 0xB1, 0xD5, 0xB3, 0x1B, - 0x40, 0xCC, 0x5F, 0x6C, 0xB1, 0x65, 0xB5, 0x28, 0x9E, 0x5C, 0x3E, 0x07, 0xFB, 0x79, 0xA4, 0x85, - 0xF8, 0x9E, 0x99, 0xF1, 0x6D, 0xDF, 0x7D, 0x7C, 0x7B, 0x65, 0x27, 0x1B, 0xB0, 0xDA, 0xCB, 0xC1, - 0x6A, 0x32, 0xCA, 0xA0, 0xB4, 0x75, 0x77, 0x94, 0x76, 0xE7, 0xA1, 0x24, 0xF8, 0xB8, 0x93, 0x8E, - 0xFB, 0x0E, 0x1B, 0x1B, 0x82, 0x39, 0xBC, 0x7D, 0xAE, 0x5A, 0xA9, 0xCD, 0x89, 0x2D, 0x41, 0x1C, - 0xEA, 0x84, 0x7D, 0x58, 0xF5, 0x0A, 0xAE, 0x7B, 0x40, 0x98, 0x63, 0xD6, 0xD8, 0xDC, 0x7A, 0xC7, - 0x0E, 0xEE, 0xC7, 0xEE, 0xE8, 0xD7, 0x1B, 0x77, 0x1F, 0xFD, 0x8B, 0xFB, 0x1B, 0xFD, 0xA7, 0x0F, - 0xFE, 0xC5, 0xBC, 0xC1, 0xA3, 0xBA, 0xC4, 0x18, 0xF8, 0xA6, 0x67, 0xA5, 0x5E, 0xAC, 0xFD, 0x9E, - 0xC3, 0x37, 0xA4, 0x69, 0x32, 0x9A, 0x6F, 0xF8, 0x9A, 0xB7, 0xF2, 0x9A, 0x5F, 0xC5, 0x03, 0xA3, - 0xEF, 0xB5, 0xCD, 0x22, 0xA2, 0x53, 0x24, 0xD3, 0x3C, 0xA2, 0xBF, 0x5A, 0x60, 0x15, 0x18, 0x95, - 0x9D, 0x6D, 0x6B, 0xD8, 0x35, 0xB0, 0xD9, 0xB8, 0x3B, 0x36, 0x2F, 0x17, 0xC1, 0xE6, 0x65, 0x0E, - 0x36, 0x23, 0xC8, 0x69, 0x22, 0x34, 0x65, 0x84, 0xD1, 0x5A, 0x89, 0x73, 0x20, 0xB3, 0x80, 0x84, - 0x2C, 0x20, 0xB3, 0x50, 0x7E, 0x32, 0x47, 0x6D, 0xFC, 0x3E, 0x87, 0xA5, 0x10, 0x6F, 0x58, 0x54, - 0x06, 0xE6, 0xEB, 0x77, 0xC0, 0xDC, 0xC6, 0xFB, 0x53, 0xD1, 0xDE, 0x9C, 0x87, 0xF6, 0xCB, 0xA6, - 0x71, 0xD2, 0xE9, 0xD8, 0x52, 0xE6, 0x4C, 0x9D, 0xE4, 0xCC, 0xD4, 0xCB, 0x96, 0xD9, 0x34, 0x73, - 0x4A, 0x42, 0xD3, 0x3F, 0xE5, 0x35, 0x5D, 0x33, 0x9B, 0xAE, 0xFB, 0x9A, 0x9E, 0xE6, 0x35, 0x5D, - 0x37, 0x9B, 0xFA, 0x16, 0xDE, 0x9B, 0xB3, 0xBC, 0xA6, 0x1B, 0x66, 0x53, 0xEF, 0x92, 0x6F, 0x6E, - 0xE4, 0x2D, 0xDA, 0x97, 0x9B, 0x66, 0x63, 0xDF, 0xC9, 0x7E, 0xD1, 0x7C, 0x94, 0xDB, 0xF8, 0x91, - 0xD9, 0x78, 0xCB, 0xDB, 0x78, 0x2B, 0xB7, 0xF1, 0x96, 0xD9, 0x78, 0xDB, 0xDB, 0x78, 0x3B, 0xB7, - 0xF1, 0xB6, 0xD1, 0xB8, 0xD5, 0xF0, 0xEE, 0x53, 0x8D, 0xDC, 0xC6, 0xCD, 0x86, 0xD9, 0xBA, 0xE9, - 0x6D, 0xDD, 0xCC, 0x6F, 0x6D, 0xF2, 0x56, 0xCB, 0xC7, 0x5B, 0x17, 0xAD, 0xDC, 0x3D, 0xF6, 0x65, - 0xD3, 0x64, 0xAF, 0x96, 0x8F, 0xBD, 0x2E, 0x5A, 0xEB, 0xDE, 0xD6, 0xCE, 0x1D, 0x99, 0x03, 0x0B, - 0xEA, 0x7F, 0xC1, 0x3B, 0x8E, 0x96, 0x75, 0x8B, 0xCE, 0x23, 0x51, 0x22, 0xC4, 0x65, 0x08, 0xF5, - 0xB4, 0xB9, 0x01, 0xB7, 0x4B, 0xE3, 0xDB, 0x93, 0xA7, 0x6C, 0xBB, 0x91, 0x51, 0xC7, 0xEF, 0x71, - 0x58, 0x75, 0x53, 0xA5, 0x69, 0x26, 0x3B, 0x0E, 0x43, 0xD8, 0x3E, 0x33, 0xF9, 0xDD, 0xDC, 0x4B, - 0x2D, 0x3E, 0x1C, 0x54, 0xAF, 0x4C, 0xC8, 0x30, 0x25, 0xBF, 0x19, 0x08, 0xC0, 0x4D, 0x6B, 0x73, - 0x23, 0xE7, 0xF9, 0x09, 0x4A, 0xB0, 0x27, 0x08, 0x2E, 0x9B, 0x83, 0x2F, 0x77, 0x23, 0xA1, 0x3F, - 0x56, 0xBC, 0x2F, 0xCF, 0xF0, 0xDE, 0xF9, 0x86, 0x67, 0xA3, 0xEE, 0xA0, 0xB9, 0xB5, 0xE9, 0xBD, - 0x37, 0xF7, 0x43, 0x74, 0xA9, 0xF2, 0x21, 0xA9, 0xB3, 0xA1, 0x17, 0x61, 0xB2, 0xE7, 0x60, 0x92, - 0x41, 0x45, 0x26, 0xD8, 0xD3, 0x44, 0x5C, 0xF2, 0x51, 0xF1, 0x91, 0x6F, 0x4A, 0xB0, 0xE1, 0x75, - 0x94, 0x4C, 0x82, 0xFE, 0xB1, 0x71, 0x67, 0xD2, 0x7F, 0xD0, 0x83, 0x67, 0x10, 0xC6, 0x93, 0xB4, - 0x9A, 0x49, 0x32, 0x6F, 0xD7, 0xEB, 0xF7, 0x68, 0xAC, 0xEF, 0x10, 0x5A, 0x76, 0x42, 0x6E, 0x6B, - 0xCC, 0xCD, 0x2D, 0x70, 0xBB, 0x00, 0x39, 0x68, 0x41, 0x90, 0x8A, 0x6E, 0xA5, 0x37, 0x8E, 0x07, - 0x7B, 0x22, 0x92, 0x98, 0xC9, 0xC3, 0x75, 0xB6, 0xB9, 0x6E, 0xF4, 0x61, 0xE8, 0x3A, 0x1C, 0x6A, - 0xAC, 0xB5, 0x32, 0x5C, 0xFD, 0xFA, 0xED, 0x51, 0xA9, 0xEE, 0x1A, 0x73, 0x3B, 0xE0, 0x2B, 0x69, - 0xA3, 0x99, 0x5D, 0x49, 0x1B, 0x1B, 0x99, 0x3E, 0xE9, 0x2A, 0x55, 0xC3, 0xA8, 0x92, 0x9C, 0x84, - 0xA3, 0x1A, 0xBB, 0x1C, 0xC7, 0x93, 0x11, 0xFD, 0x38, 0x0E, 0x3B, 0xF1, 0xB8, 0x4B, 0x3F, 0x4F, - 0x86, 0x51, 0x0A, 0x3F, 0x2D, 0x4E, 0x10, 0x8E, 0xC9, 0x32, 0xBF, 0xA2, 0x95, 0xA2, 0xCA, 0xC6, - 0x66, 0x06, 0x43, 0x43, 0x84, 0x9C, 0xD7, 0x6D, 0xB3, 0x64, 0x2F, 0xAD, 0xE6, 0x76, 0xA6, 0x9B, - 0x1F, 0x2F, 0x38, 0xAA, 0xC6, 0xC5, 0x72, 0x5E, 0x5F, 0x65, 0xBB, 0x6A, 0x35, 0xB3, 0x5D, 0xBD, - 0xE7, 0x5D, 0x29, 0x32, 0x97, 0xEB, 0x6D, 0xDB, 0xEC, 0xED, 0x41, 0xA6, 0x57, 0xB1, 0xB3, 0x45, - 0xC9, 0x71, 0xD0, 0x11, 0xF3, 0x1E, 0xF4, 0x49, 0x02, 0xE2, 0x8B, 0xB3, 0x9A, 0x29, 0x1C, 0x84, - 0x69, 0x00, 0xA5, 0x9F, 0xBE, 0x1B, 0x9B, 0x37, 0x6E, 0x3E, 0xCF, 0x73, 0xB8, 0x61, 0x19, 0xF8, - 0xBE, 0x0C, 0xDD, 0x9A, 0xDB, 0xAD, 0xDC, 0x7E, 0x7E, 0xAE, 0x94, 0xE0, 0xFF, 0xF5, 0x2D, 0x0F, - 0xFF, 0x3F, 0x2A, 0xC4, 0xDD, 0x66, 0xDB, 0xF5, 0x2D, 0x1F, 0xC9, 0xDD, 0x43, 0xF0, 0x56, 0x66, - 0x33, 0xFF, 0xE2, 0x23, 0x10, 0x5B, 0xEC, 0xF9, 0x94, 0xE6, 0xE1, 0x81, 0x77, 0xE3, 0xB6, 0xB2, - 0x9B, 0x7B, 0xF6, 0x66, 0xEF, 0xB1, 0x71, 0x6B, 0x01, 0x33, 0xF7, 0x59, 0x03, 0x18, 0xC7, 0x80, - 0x3C, 0xA1, 0x78, 0x2B, 0xD4, 0x4B, 0xCD, 0x85, 0x48, 0x87, 0xD8, 0x20, 0x4A, 0xAB, 0x15, 0x5E, - 0x1D, 0x84, 0xEA, 0x4A, 0x8D, 0x89, 0x0A, 0x76, 0x59, 0x05, 0x01, 0x8A, 0x42, 0x59, 0x9A, 0x5C, - 0xC5, 0x37, 0x66, 0xBA, 0x12, 0xFC, 0x48, 0xC1, 0x8C, 0xC7, 0x55, 0xEA, 0xFF, 0x81, 0xB7, 0xFB, - 0x1C, 0xD5, 0xA0, 0xCA, 0x01, 0x63, 0x6A, 0xDF, 0x2E, 0x0D, 0xCD, 0xE0, 0x65, 0x5F, 0x94, 0x5E, - 0xAA, 0xEE, 0x74, 0x98, 0x6C, 0xF3, 0xD7, 0xE4, 0xE2, 0xF2, 0x7D, 0x61, 0x37, 0x7B, 0xAA, 0x99, - 0xEE, 0xA8, 0x26, 0xB3, 0x3C, 0x18, 0x3D, 0x1A, 0xF0, 0xEC, 0xDC, 0x56, 0x6A, 0x32, 0x24, 0x4E, - 0x9C, 0x69, 0x2F, 0xAD, 0xE9, 0xD0, 0x98, 0x19, 0xCD, 0x6E, 0xF3, 0x90, 0xE2, 0xE4, 0xE2, 0x7C, - 0x90, 0x24, 0x79, 0x8A, 0x47, 0xA9, 0x66, 0x34, 0xC9, 0xF8, 0x40, 0x0B, 0x57, 0x62, 0xAD, 0x49, - 0x04, 0x88, 0xB3, 0x8D, 0x02, 0xEC, 0xDB, 0x5A, 0x2B, 0x37, 0x57, 0x11, 0x2A, 0x92, 0x31, 0xBC, - 0x78, 0xA6, 0x9D, 0x58, 0x07, 0x79, 0xCD, 0x40, 0xF9, 0xDF, 0x10, 0x0B, 0x4C, 0x76, 0x41, 0x1F, - 0x33, 0x90, 0xB0, 0x81, 0x01, 0xE7, 0x57, 0x93, 0x27, 0x55, 0xDA, 0x10, 0x6B, 0x1D, 0xC1, 0x9E, - 0xA5, 0x25, 0x46, 0xF1, 0x1B, 0xED, 0x67, 0xE2, 0x17, 0xB9, 0x7F, 0x39, 0x70, 0x1E, 0x14, 0xED, - 0xA1, 0x8A, 0x21, 0xEF, 0xB0, 0x28, 0xE5, 0xFA, 0x12, 0x5F, 0xBD, 0xEB, 0x2B, 0x3B, 0x96, 0x4F, - 0x58, 0xAC, 0x36, 0x30, 0x7B, 0x2D, 0x8E, 0x80, 0x4F, 0xAC, 0x05, 0x79, 0xFF, 0xAB, 0x55, 0xF4, - 0x9F, 0xBB, 0x82, 0x86, 0x5D, 0xBF, 0x02, 0xDF, 0xD1, 0x91, 0x2B, 0x7A, 0xD3, 0xF9, 0xF4, 0xCB, - 0x24, 0x9C, 0x28, 0x32, 0x14, 0x0B, 0x76, 0x28, 0xCE, 0x49, 0xEC, 0xF0, 0x17, 0x6A, 0xBC, 0x63, - 0x96, 0xE3, 0x27, 0xC3, 0x0C, 0xA6, 0x24, 0x3C, 0x4D, 0x35, 0xAA, 0xB2, 0xFC, 0x14, 0x63, 0x4A, - 0xE7, 0x0E, 0xA8, 0x1D, 0xF6, 0xAD, 0x4D, 0x87, 0xF0, 0xD0, 0x88, 0x93, 0x80, 0x0A, 0x5E, 0xCE, - 0x4B, 0x86, 0x94, 0x98, 0x19, 0xAC, 0x9C, 0x07, 0xCA, 0xAC, 0xB7, 0x92, 0xC0, 0x73, 0xA5, 0x95, - 0x36, 0x97, 0xA1, 0x42, 0xCE, 0x82, 0xFD, 0x78, 0x0C, 0xA8, 0xF2, 0xF5, 0x90, 0x86, 0x88, 0x6F, - 0x11, 0x01, 0x70, 0x78, 0x85, 0x70, 0x10, 0x04, 0x0C, 0x98, 0xC4, 0x41, 0xC3, 0x95, 0x69, 0xF4, - 0x66, 0x48, 0x98, 0x92, 0xCF, 0x69, 0xDC, 0x99, 0x24, 0xD5, 0xFC, 0x4D, 0x17, 0x62, 0x8A, 0x17, - 0x8C, 0xBC, 0x1B, 0xB6, 0x27, 0x97, 0xE6, 0xA0, 0x0D, 0x03, 0x62, 0xCC, 0xAF, 0x3F, 0xD3, 0x14, - 0xFE, 0x4D, 0xE2, 0x3E, 0x5E, 0x03, 0xBC, 0x05, 0xD0, 0x85, 0x4B, 0xB6, 0x60, 0x7C, 0x09, 0x5B, - 0xDD, 0xEE, 0x78, 0x1C, 0xCC, 0x4C, 0xC6, 0xEA, 0x47, 0x9D, 0x70, 0xA5, 0x13, 0xF4, 0xFB, 0x55, - 0x5E, 0x63, 0x02, 0xA3, 0x4F, 0x34, 0xB3, 0x7A, 0xE0, 0xA2, 0xD2, 0x4C, 0x3C, 0xBC, 0x76, 0x8A, - 0x6B, 0xD8, 0x49, 0xFE, 0xC0, 0xD1, 0x8A, 0xFB, 0xB9, 0x87, 0x8E, 0x9D, 0x7C, 0x96, 0xC1, 0x23, - 0xE4, 0x4F, 0x18, 0x3E, 0xDF, 0x44, 0xE0, 0x91, 0x97, 0x31, 0xFE, 0x69, 0x8D, 0xCD, 0xF4, 0x2A, - 0x86, 0x70, 0x19, 0xC8, 0x8A, 0x7C, 0x1B, 0xE9, 0x8B, 0x1F, 0x22, 0xF1, 0xEF, 0x07, 0xF1, 0x2F, - 0x6C, 0xEC, 0x82, 0x2E, 0x53, 0xF6, 0x04, 0xBC, 0xF1, 0xC0, 0x28, 0xDD, 0x94, 0xB4, 0x9A, 0xD1, - 0xB7, 0x19, 0x7D, 0x7B, 0x20, 0x6C, 0x3F, 0xD8, 0x2D, 0x64, 0x60, 0x7F, 0x60, 0x64, 0x75, 0x87, - 0xDF, 0x65, 0xB3, 0x0F, 0xBC, 0x99, 0xF2, 0xFD, 0x82, 0x33, 0x4A, 0x64, 0x44, 0xEF, 0x86, 0x3D, - 0x23, 0x23, 0x3A, 0xE9, 0xD6, 0xC3, 0x44, 0x38, 0x40, 0x80, 0xFB, 0x02, 0xC4, 0x3E, 0x90, 0xBE, - 0x81, 0x01, 0xAF, 0x49, 0xB6, 0xAF, 0x48, 0xF6, 0x81, 0x01, 0x40, 0x84, 0x9D, 0x99, 0xF6, 0x0B, - 0xBE, 0x16, 0xF9, 0xE4, 0x55, 0xA3, 0x7A, 0x5D, 0x6F, 0x3C, 0xE2, 0x9B, 0x6E, 0x71, 0x11, 0xBD, - 0xD7, 0x81, 0x29, 0x2C, 0x9F, 0x34, 0xBB, 0x0E, 0xC6, 0x5D, 0x36, 0x1C, 0xF3, 0x48, 0x56, 0xBC, - 0xB5, 0x4F, 0xD0, 0x0F, 0xEC, 0x99, 0x86, 0x71, 0x8F, 0x98, 0x3D, 0x2B, 0xC4, 0x2C, 0x1E, 0x55, - 0x7D, 0x68, 0xA9, 0x93, 0x81, 0x73, 0xE7, 0xE8, 0x0C, 0x42, 0x59, 0x54, 0x3F, 0x98, 0x0C, 0xD7, - 0x07, 0x2E, 0x9D, 0x3A, 0x33, 0x07, 0x2A, 0x53, 0x73, 0xE6, 0xE0, 0x77, 0x73, 0xE6, 0x94, 0x86, - 0x07, 0x05, 0x35, 0x73, 0x3F, 0xB4, 0x46, 0xF6, 0x61, 0x79, 0xD9, 0xAC, 0x6C, 0x6C, 0x60, 0x26, - 0x31, 0xA0, 0x0A, 0x97, 0xCC, 0xC9, 0x0E, 0xDD, 0x0E, 0x92, 0xD0, 0x3F, 0x48, 0x23, 0xE6, 0x75, - 0x1B, 0x02, 0x8B, 0x62, 0x08, 0xC4, 0x25, 0x67, 0xC8, 0x46, 0x17, 0x1D, 0x8E, 0x43, 0x77, 0x1C, - 0x0E, 0x8D, 0x5E, 0x4C, 0xC0, 0x98, 0x2A, 0x4F, 0xE0, 0xDE, 0xE5, 0xDB, 0x27, 0x6E, 0xC2, 0x1D, - 0x2E, 0xF2, 0xA7, 0xE1, 0x01, 0x0D, 0xA5, 0x5A, 0xE9, 0x46, 0xD7, 0xA6, 0x23, 0x49, 0xD8, 0x87, - 0xA5, 0xC8, 0x8F, 0xC5, 0x3D, 0x00, 0x5D, 0x05, 0x08, 0x46, 0xA9, 0xDD, 0x29, 0x22, 0x6B, 0xD5, - 0xC8, 0x65, 0x15, 0x85, 0x96, 0xA4, 0x5A, 0xBD, 0x6E, 0x7E, 0xCD, 0xA3, 0xDA, 0xB3, 0x92, 0x54, - 0xCB, 0xF2, 0x45, 0x01, 0x91, 0x9E, 0xD9, 0x44, 0xD2, 0xD3, 0xAB, 0x07, 0x66, 0xC2, 0x13, 0xDB, - 0x65, 0xC8, 0xCF, 0x21, 0xD8, 0x99, 0xA2, 0xA1, 0x99, 0xF9, 0x8E, 0x93, 0x6B, 0x14, 0x80, 0x73, - 0xC5, 0x6B, 0x88, 0x33, 0x30, 0x0E, 0x07, 0xF1, 0x75, 0x48, 0x94, 0xE3, 0xF5, 0x0B, 0x38, 0x15, - 0xF5, 0xF5, 0x4F, 0xD9, 0x4C, 0xF2, 0xE4, 0x20, 0xF8, 0x18, 0xB2, 0x64, 0x32, 0xA6, 0xB5, 0x2F, - 0xDE, 0x47, 0x25, 0x69, 0x30, 0x4B, 0x58, 0x3C, 0x64, 0xA4, 0x0C, 0x34, 0x0F, 0xC7, 0x19, 0x5C, - 0x0D, 0x67, 0xE2, 0x64, 0x84, 0x7D, 0x69, 0x06, 0xDA, 0x7F, 0xEB, 0xFC, 0x9C, 0x42, 0x95, 0xA9, - 0xA8, 0x02, 0xDB, 0xD9, 0x94, 0xAA, 0x3C, 0xB0, 0x4C, 0x08, 0xE0, 0x1B, 0x28, 0x3C, 0x73, 0xB2, - 0xCE, 0x7E, 0x0A, 0xAC, 0x42, 0x5B, 0xF8, 0x4D, 0x34, 0x6A, 0xC6, 0x30, 0xC8, 0xEC, 0x40, 0xE3, - 0x88, 0xD2, 0x4A, 0xC2, 0x02, 0xBE, 0xC4, 0x82, 0x3E, 0x1B, 0x82, 0x09, 0x77, 0x10, 0xC0, 0x98, - 0xC6, 0x33, 0x2E, 0xC5, 0x52, 0x8D, 0x34, 0x96, 0x0B, 0x10, 0x46, 0x1A, 0x8F, 0xA3, 0x4B, 0xD8, - 0xCF, 0xA9, 0x8C, 0xC6, 0xC9, 0xDA, 0x93, 0x5E, 0x2F, 0x1C, 0xAF, 0xB0, 0x0F, 0x93, 0x24, 0xC5, - 0x84, 0x2F, 0x68, 0x50, 0xA6, 0xB6, 0x20, 0xE4, 0xA3, 0x9D, 0x79, 0x18, 0xDF, 0xAC, 0x48, 0xB4, - 0x44, 0xAE, 0x3F, 0x99, 0x61, 0x28, 0xE7, 0xA0, 0x30, 0x1C, 0x42, 0xCC, 0xD3, 0x62, 0xA6, 0x8F, - 0x4B, 0xD8, 0xE7, 0x33, 0x2E, 0x21, 0x4B, 0xD9, 0x4F, 0x34, 0x73, 0xB2, 0xCD, 0xB3, 0x8C, 0xCF, - 0x88, 0xFB, 0x41, 0xD6, 0x5F, 0x5D, 0xCD, 0x6F, 0xF2, 0xEB, 0x03, 0xE1, 0x5D, 0x9D, 0xDF, 0xD6, - 0xED, 0x50, 0x12, 0x5F, 0xB7, 0xF5, 0xB5, 0xB6, 0xEA, 0x2A, 0x48, 0xB7, 0xF4, 0x43, 0xEE, 0x35, - 0x6E, 0x10, 0x4C, 0x33, 0x94, 0x32, 0xAE, 0x93, 0x0E, 0x35, 0x34, 0xFF, 0x14, 0x75, 0x9D, 0x7F, - 0x8D, 0x15, 0xBB, 0xB6, 0xD9, 0x59, 0xA4, 0xA7, 0x25, 0xE2, 0x37, 0x32, 0xEB, 0x76, 0xA7, 0xE5, - 0x97, 0x34, 0x68, 0xC3, 0xC9, 0x60, 0xEC, 0x23, 0xB2, 0x5B, 0x7E, 0xB9, 0xB8, 0x06, 0xA0, 0x1C, - 0xD0, 0x8E, 0xBB, 0x2B, 0x19, 0xD7, 0x17, 0x00, 0xC0, 0x9B, 0xFC, 0x7A, 0xBB, 0xA3, 0x4E, 0xB2, - 0x86, 0x12, 0xBC, 0x81, 0xCF, 0xAA, 0x3B, 0xFC, 0xE3, 0x13, 0xE3, 0x70, 0xE7, 0xBF, 0x72, 0x29, - 0x7C, 0x6B, 0xC9, 0x85, 0xC2, 0xD1, 0x60, 0x3A, 0x31, 0x66, 0x2E, 0x61, 0x25, 0x5E, 0x96, 0xC0, - 0xA2, 0xC7, 0x3A, 0xD5, 0x37, 0xD9, 0xA9, 0x1C, 0xCA, 0x14, 0x00, 0x8A, 0x8D, 0xD3, 0x18, 0x76, - 0xBD, 0x3E, 0x7D, 0x0F, 0x57, 0x57, 0xBE, 0xD0, 0x19, 0xC9, 0xCE, 0xE2, 0xCE, 0x83, 0x2B, 0x5F, - 0x21, 0x8C, 0x58, 0x3E, 0x37, 0x8E, 0x42, 0x3E, 0x17, 0xF8, 0xED, 0x31, 0x03, 0x59, 0xA7, 0xC1, - 0xCB, 0x1A, 0xF0, 0x73, 0xEE, 0xFC, 0x40, 0xEA, 0xE6, 0xFB, 0xC1, 0x78, 0x79, 0x59, 0x62, 0x6C, - 0x10, 0xF4, 0x33, 0x62, 0x4E, 0xAF, 0x9C, 0x60, 0x1B, 0x2A, 0x16, 0x0F, 0x2D, 0xF1, 0xE5, 0x42, - 0x1F, 0x37, 0xFC, 0xEC, 0x99, 0xBD, 0x57, 0x22, 0xA2, 0x92, 0xDF, 0x10, 0x2C, 0xC6, 0x4C, 0x58, - 0x32, 0x64, 0x38, 0x14, 0xDF, 0x1E, 0x18, 0x6C, 0x33, 0xB5, 0xD9, 0x66, 0xBA, 0xBC, 0x2C, 0x79, - 0x06, 0xFA, 0xB9, 0x98, 0xBE, 0x57, 0xCE, 0x7F, 0x7E, 0xA7, 0xB5, 0x59, 0x91, 0xC8, 0xCF, 0x31, - 0x38, 0x0A, 0x7B, 0x7F, 0xC5, 0x71, 0x31, 0x18, 0x80, 0x31, 0xAD, 0x53, 0x90, 0xE8, 0xEC, 0x81, - 0xDC, 0x69, 0x10, 0x84, 0xA6, 0xBB, 0x1B, 0x6B, 0x7C, 0x70, 0xFA, 0xE0, 0xC0, 0x29, 0x80, 0xA4, - 0x64, 0x25, 0x13, 0x12, 0x3F, 0x44, 0x35, 0x35, 0x40, 0x8A, 0x06, 0x2C, 0x27, 0x63, 0x93, 0xA9, - 0x8C, 0x01, 0x0B, 0xBE, 0x32, 0xE5, 0x73, 0x1C, 0x10, 0x34, 0x26, 0x12, 0x05, 0x4A, 0x64, 0x17, - 0x94, 0x13, 0x14, 0xBE, 0x90, 0xBF, 0x8B, 0xBD, 0x23, 0x7F, 0xDF, 0x70, 0x18, 0x20, 0x72, 0x18, - 0x40, 0xAC, 0x01, 0x28, 0xCB, 0x1D, 0x29, 0xA2, 0x92, 0x1D, 0xA2, 0x54, 0x4D, 0xAA, 0xE1, 0xE5, - 0x4C, 0xA8, 0x18, 0xA5, 0xEF, 0x1A, 0x92, 0xD7, 0x63, 0x64, 0xED, 0xCA, 0xC0, 0x0B, 0x9A, 0xAA, - 0xC3, 0x60, 0xA0, 0x78, 0x0C, 0x4A, 0x5E, 0xF3, 0xDF, 0x8D, 0xD5, 0x5C, 0xC5, 0xF2, 0x65, 0x7E, - 0xC5, 0x5F, 0x5A, 0x89, 0x86, 0xDD, 0x70, 0xFA, 0xA6, 0x27, 0x00, 0x80, 0x92, 0xB1, 0x91, 0xDB, - 0xA5, 0xD0, 0x96, 0x14, 0x78, 0x56, 0x92, 0x82, 0x08, 0x3E, 0x56, 0x6A, 0xA8, 0x10, 0xC9, 0xE7, - 0x0D, 0x23, 0x27, 0x9D, 0x35, 0x10, 0xCC, 0x4C, 0xE7, 0x42, 0xC4, 0xAF, 0xE0, 0xF7, 0x2C, 0xF2, - 0xD6, 0xA1, 0xAF, 0x26, 0x44, 0xC1, 0xFC, 0x03, 0x24, 0xE2, 0x7D, 0x80, 0x91, 0x2E, 0x57, 0x29, - 0x6B, 0xF1, 0x3E, 0x3B, 0x84, 0x21, 0xB1, 0xEA, 0xE1, 0xEB, 0x7D, 0x91, 0x07, 0x7A, 0x7D, 0x69, - 0xC5, 0x4B, 0x41, 0xAC, 0xE7, 0x3F, 0x47, 0x67, 0xB4, 0xA6, 0x4C, 0xB9, 0x2E, 0x2B, 0x87, 0x59, - 0x47, 0xCD, 0xAC, 0x5E, 0x37, 0x54, 0x79, 0x54, 0xAD, 0x2A, 0x74, 0x45, 0x39, 0x4E, 0xB3, 0xC2, - 0xE3, 0x14, 0xB0, 0x3E, 0x66, 0xA7, 0x14, 0x34, 0x41, 0x62, 0x7F, 0x7A, 0x28, 0x90, 0xEF, 0xFA, - 0x91, 0x17, 0x31, 0x16, 0x0E, 0xFD, 0x63, 0x00, 0x26, 0xF8, 0xA0, 0xCE, 0x7E, 0x81, 0x9A, 0x31, - 0x98, 0x27, 0x8E, 0xA8, 0x69, 0x8F, 0x44, 0xFA, 0xFB, 0x82, 0x33, 0x4C, 0x9C, 0x24, 0x51, 0xBB, - 0x3F, 0x63, 0x20, 0x40, 0x93, 0x0C, 0x0C, 0x9A, 0xD8, 0x76, 0xD8, 0x8F, 0x6F, 0xD0, 0xFB, 0x9F, - 0x63, 0x26, 0x71, 0x39, 0x33, 0xC6, 0x9C, 0xE3, 0xC7, 0x7F, 0xD1, 0xDC, 0x69, 0xBE, 0xE2, 0xFF, - 0xAC, 0xAF, 0x0F, 0x7E, 0x08, 0x8F, 0xF9, 0x0F, 0x8D, 0x41, 0x45, 0xD6, 0xD6, 0x17, 0x2B, 0x38, - 0xAB, 0x97, 0x60, 0xF8, 0xB8, 0xC5, 0xAD, 0xF2, 0x85, 0x37, 0x99, 0xF2, 0x2E, 0xAF, 0x82, 0xEB, - 0x28, 0x1E, 0x6B, 0x3C, 0xE9, 0x8E, 0x91, 0x80, 0x4F, 0x93, 0xF4, 0x24, 0xB6, 0x2E, 0x25, 0x35, - 0x26, 0xC5, 0x61, 0x07, 0xB4, 0xC0, 0xD0, 0xBA, 0x61, 0xC2, 0x19, 0xC6, 0xFF, 0xCF, 0xCC, 0xF1, - 0x4E, 0x51, 0x7F, 0xAA, 0xA1, 0xD9, 0x2D, 0xFF, 0xF0, 0x01, 0x9E, 0xE3, 0x68, 0x63, 0x30, 0x90, - 0x02, 0x8A, 0xA5, 0xEC, 0x66, 0x29, 0x7D, 0x33, 0xEE, 0xD0, 0x7A, 0x52, 0xE6, 0xD7, 0x12, 0x7C, - 0x58, 0x96, 0xCB, 0x3A, 0xEC, 0x25, 0x88, 0xE9, 0x14, 0xD8, 0x98, 0xB3, 0xD8, 0x59, 0x1E, 0x6F, - 0x39, 0x96, 0x0B, 0x62, 0x0F, 0x9D, 0x9E, 0x14, 0x34, 0x48, 0xD0, 0x97, 0x20, 0x6F, 0x3C, 0xC2, - 0x84, 0x1D, 0x59, 0x37, 0x6E, 0xCF, 0x75, 0xC4, 0xC0, 0x26, 0x37, 0x67, 0xBB, 0x07, 0x25, 0xCA, - 0xD0, 0x9E, 0xB3, 0x58, 0x51, 0x86, 0x21, 0xF9, 0xC6, 0x14, 0xF5, 0xF2, 0xA9, 0x41, 0x3B, 0xC7, - 0xDE, 0xD9, 0xA1, 0xDA, 0x39, 0x54, 0xAA, 0xA8, 0xD5, 0xF2, 0x09, 0xA2, 0x7C, 0xC7, 0x80, 0x48, - 0x07, 0x65, 0x22, 0x2A, 0x9E, 0x6F, 0xAA, 0x75, 0x39, 0x12, 0xEF, 0x0B, 0x54, 0x0E, 0x51, 0xB9, - 0x36, 0xA9, 0x00, 0x35, 0x5A, 0xB2, 0x4E, 0x53, 0xAF, 0x61, 0x56, 0x17, 0x4D, 0x32, 0x4B, 0xB9, - 0x61, 0x5C, 0x37, 0x1B, 0x8A, 0xC2, 0x2A, 0xC3, 0x94, 0x1E, 0x51, 0x89, 0xBC, 0x52, 0xB9, 0x63, - 0x72, 0x7D, 0xD6, 0xEF, 0x6B, 0x54, 0xCB, 0xFE, 0x51, 0x3D, 0x33, 0x96, 0xA6, 0xBD, 0x39, 0xF9, - 0x6E, 0x4E, 0xB7, 0xCE, 0xA0, 0xF7, 0x8C, 0x41, 0x97, 0xCB, 0x56, 0x95, 0x3B, 0x6E, 0xD9, 0xFC, - 0xDE, 0x87, 0x3E, 0xF5, 0x0F, 0xDD, 0x96, 0xB4, 0xAD, 0xA1, 0x2B, 0x29, 0x5E, 0xCA, 0xDC, 0xBE, - 0xA1, 0xEF, 0x1B, 0x43, 0x2F, 0x99, 0x03, 0x2B, 0x77, 0xEC, 0xAA, 0xFD, 0x67, 0x18, 0xBC, 0x97, - 0x9B, 0xA7, 0x06, 0x37, 0x4F, 0x7D, 0xDC, 0x2C, 0x92, 0x68, 0xE9, 0x21, 0x2E, 0x98, 0x3A, 0x2B, - 0x77, 0xA8, 0x1C, 0x4E, 0xD1, 0x28, 0x21, 0xD5, 0x05, 0xA8, 0x94, 0xC9, 0x82, 0xC5, 0x8F, 0x3E, - 0x63, 0xC0, 0x4A, 0x13, 0xA3, 0x46, 0xAD, 0xD5, 0x64, 0xC6, 0x53, 0x23, 0xDE, 0x5A, 0xB7, 0x6A, - 0xBE, 0x57, 0xF3, 0x67, 0xDE, 0x7C, 0xA9, 0x8E, 0xBE, 0xE7, 0x02, 0x44, 0xE8, 0xED, 0x89, 0x36, - 0x7B, 0x52, 0xE7, 0x0D, 0xA3, 0xA9, 0xAC, 0xE4, 0x5B, 0x32, 0x54, 0xDB, 0xB3, 0x5E, 0x04, 0x70, - 0xE8, 0xD0, 0x00, 0x6E, 0xF6, 0x6F, 0xE4, 0xAA, 0xE4, 0x5F, 0x7D, 0x4C, 0x49, 0xB5, 0x3D, 0x1C, - 0xF9, 0xC0, 0x60, 0x58, 0x24, 0x9A, 0xB1, 0x76, 0x61, 0x9A, 0x9C, 0x49, 0xFD, 0x63, 0x6E, 0xAA, - 0x31, 0xA1, 0x3B, 0x39, 0x81, 0xB9, 0x69, 0x30, 0x56, 0x7F, 0x26, 0x2A, 0xBE, 0x40, 0xF1, 0x43, - 0xCE, 0xB2, 0x53, 0xB1, 0x69, 0x54, 0xDC, 0x6D, 0x73, 0xB1, 0xC5, 0x2E, 0x6E, 0x99, 0xC5, 0xFD, - 0xBE, 0x5D, 0xB8, 0x66, 0x14, 0x42, 0xF0, 0xB2, 0x2E, 0x66, 0xB2, 0x48, 0xC4, 0x83, 0x49, 0xEA, - 0x48, 0xC6, 0x0B, 0x65, 0x7F, 0xA4, 0xA6, 0x59, 0xDC, 0xE1, 0xD5, 0x70, 0x0E, 0xFE, 0x67, 0x32, - 0x3E, 0x45, 0xF9, 0x91, 0xB8, 0x4D, 0x72, 0xC7, 0x94, 0xA9, 0x08, 0xA3, 0xCB, 0xBB, 0xDF, 0xA9, - 0xDC, 0x6C, 0x45, 0x6C, 0x8F, 0x22, 0xA4, 0x7A, 0xFF, 0x2D, 0x19, 0x5E, 0xCD, 0x3F, 0x74, 0xA2, - 0x1C, 0x51, 0xDD, 0x9B, 0x21, 0x71, 0x80, 0x10, 0x00, 0x66, 0x4A, 0xE7, 0xAA, 0x84, 0x2E, 0x90, - 0xD5, 0x9A, 0xF2, 0xAB, 0xB8, 0x98, 0x7D, 0x50, 0x7A, 0x3E, 0xD0, 0xF9, 0xB3, 0x0F, 0xFA, 0x62, - 0x66, 0xF7, 0x80, 0xA2, 0xDC, 0x87, 0x8C, 0x66, 0xD9, 0xF0, 0x1C, 0xB5, 0x73, 0x6E, 0x1B, 0x2D, - 0xF9, 0xDD, 0x7C, 0x3E, 0x6A, 0xF2, 0x8B, 0x56, 0x8A, 0x7F, 0x12, 0x1E, 0xCA, 0x61, 0x36, 0x63, - 0xD3, 0x70, 0x3B, 0xC9, 0x05, 0xED, 0x82, 0x54, 0x5E, 0xB4, 0xA8, 0x0A, 0x18, 0xC6, 0x2C, 0x41, - 0x6E, 0x45, 0x11, 0xD5, 0x6D, 0xE2, 0x1E, 0x11, 0x39, 0x69, 0xF5, 0xF2, 0x16, 0x1B, 0x97, 0xF2, - 0x49, 0x55, 0x53, 0x62, 0xBD, 0xF1, 0xBA, 0x40, 0xE1, 0xF9, 0x2B, 0x4E, 0x2D, 0xA2, 0x6F, 0x9C, - 0x45, 0x44, 0x08, 0xE1, 0x0A, 0xF2, 0x23, 0xE5, 0x72, 0x79, 0x39, 0xF4, 0x3C, 0xAD, 0xF2, 0x10, - 0x5D, 0x70, 0x19, 0xB9, 0xEA, 0x0D, 0x73, 0x0D, 0xDD, 0xEF, 0xD2, 0xF9, 0x44, 0xF6, 0xCE, 0xE5, - 0x4A, 0x87, 0xE9, 0xF2, 0x9A, 0xD9, 0x6C, 0x34, 0x37, 0xA4, 0x78, 0x76, 0xE6, 0x5E, 0x93, 0x35, - 0xA0, 0x70, 0x9E, 0x5E, 0xC4, 0xFD, 0xAE, 0xFD, 0x7D, 0x1D, 0xBF, 0xBF, 0xE5, 0xF7, 0xDC, 0x31, - 0x70, 0xB7, 0x53, 0xBA, 0x41, 0xAD, 0x78, 0xC9, 0x47, 0x56, 0x05, 0x03, 0x59, 0x30, 0x4E, 0xE0, - 0xD9, 0x1B, 0xC0, 0x71, 0x3A, 0x78, 0x84, 0x55, 0x0F, 0x87, 0x78, 0x57, 0xB5, 0x8B, 0xB6, 0x64, - 0x51, 0x04, 0x97, 0x5D, 0x7E, 0x71, 0x8C, 0x56, 0xC2, 0x95, 0x1A, 0xBB, 0x8A, 0xBA, 0xDD, 0x70, - 0xC8, 0xAA, 0xEF, 0xCE, 0xD7, 0x1A, 0x8D, 0x25, 0x97, 0x57, 0x5A, 0xD6, 0xA0, 0x86, 0x61, 0xC4, - 0x6F, 0xC7, 0x63, 0xD6, 0xE6, 0x1D, 0xC3, 0x65, 0x83, 0xF5, 0x82, 0x68, 0xE8, 0x8E, 0xB1, 0x25, - 0x46, 0xF3, 0x3A, 0x4E, 0xD9, 0x24, 0x67, 0x44, 0x2D, 0x31, 0xA6, 0xB3, 0x34, 0x0C, 0xBA, 0xFC, - 0x30, 0x81, 0x37, 0xF7, 0x6D, 0x18, 0x5F, 0x34, 0xBC, 0xCC, 0x80, 0xA3, 0x31, 0x91, 0x10, 0xC4, - 0x19, 0x16, 0x2B, 0x47, 0x34, 0xC2, 0x4C, 0x5D, 0x1A, 0xE4, 0x3B, 0x7B, 0x88, 0xD0, 0xA0, 0x68, - 0x98, 0x6B, 0x6A, 0xD5, 0xA5, 0xB0, 0x49, 0x87, 0xE0, 0x55, 0x3A, 0xEC, 0x52, 0x72, 0x70, 0x58, - 0x44, 0x2F, 0xFA, 0x5C, 0x46, 0x74, 0x9B, 0x34, 0x0B, 0x9B, 0x9C, 0xBA, 0x23, 0x5E, 0x53, 0x0B, - 0xCF, 0xDF, 0xE0, 0x6B, 0x30, 0x3E, 0xB9, 0x4D, 0xD6, 0x0A, 0x9B, 0x7C, 0x1F, 0xF6, 0xFB, 0x60, - 0x87, 0xB2, 0xDB, 0xAC, 0xCF, 0x19, 0xCA, 0x24, 0x74, 0x5B, 0x6C, 0x14, 0xB6, 0x38, 0x0E, 0x2E, - 0x21, 0x74, 0x82, 0xDB, 0x68, 0xB3, 0xB0, 0xD1, 0xDE, 0x2C, 0xC8, 0x0C, 0xE6, 0x51, 0x61, 0x8B, - 0x6F, 0xC1, 0xA1, 0xC7, 0x6D, 0xB2, 0x5D, 0xD8, 0x44, 0xCA, 0xBF, 0x55, 0x69, 0xC7, 0x5B, 0x72, - 0x17, 0x95, 0x9E, 0x56, 0x78, 0x3A, 0x5C, 0x62, 0x5A, 0xD7, 0x8D, 0x69, 0xF5, 0x35, 0xC9, 0x4C, - 0xEB, 0xBA, 0x31, 0xAD, 0xBE, 0x06, 0x9E, 0x69, 0x5D, 0x37, 0xA6, 0xD5, 0xD7, 0xC4, 0x37, 0xAD, - 0xEB, 0xC6, 0xB4, 0xFA, 0x87, 0xE2, 0x4E, 0xEB, 0xBA, 0x31, 0xAD, 0xBE, 0x16, 0xDE, 0x69, 0x5D, - 0x37, 0xA6, 0xD5, 0xD7, 0x28, 0x3B, 0xAD, 0xEB, 0xC6, 0xB4, 0xFA, 0x5A, 0x78, 0xA6, 0x75, 0xDD, - 0x98, 0x56, 0x5F, 0x13, 0xDF, 0xB4, 0x12, 0x80, 0xC3, 0x1E, 0x6B, 0x6E, 0xD6, 0xA9, 0x62, 0x32, - 0x19, 0x61, 0x6A, 0x02, 0x88, 0xBC, 0x11, 0x0F, 0x46, 0x5C, 0xBA, 0xE8, 0xD6, 0x50, 0x75, 0xD7, - 0x8B, 0x81, 0x7C, 0x10, 0x00, 0x04, 0xBD, 0x7A, 0x56, 0x18, 0xDB, 0x4D, 0x92, 0xC9, 0x20, 0x7C, - 0x20, 0xEC, 0x9B, 0x41, 0x4A, 0x1A, 0xB7, 0x4A, 0x02, 0xA6, 0x60, 0x7A, 0x01, 0xCF, 0xC0, 0x4E, - 0x0C, 0xEA, 0xA0, 0x24, 0xA6, 0x1A, 0x00, 0xE8, 0xF0, 0xEC, 0x8D, 0x40, 0x0A, 0xF3, 0x71, 0x41, - 0x1D, 0x09, 0x83, 0xF7, 0x12, 0x8D, 0x93, 0x94, 0xEF, 0x36, 0x71, 0x0F, 0xC2, 0x7D, 0xF0, 0x96, - 0x31, 0xE0, 0xC6, 0x3B, 0x3B, 0xBF, 0xE2, 0xBB, 0x0C, 0xD4, 0x08, 0x22, 0x72, 0xA9, 0x41, 0x10, - 0xD4, 0x03, 0xFF, 0x4C, 0x10, 0xDA, 0xF8, 0xC0, 0x98, 0xC1, 0x16, 0x06, 0x3A, 0x25, 0x68, 0x6C, - 0xF5, 0x48, 0x4F, 0xF2, 0x15, 0xC5, 0xB6, 0x17, 0xDF, 0x9F, 0xB6, 0x17, 0xDD, 0x9F, 0xB6, 0x17, - 0xDF, 0x9F, 0xB6, 0xEF, 0xB0, 0x3F, 0x6D, 0x2F, 0xBC, 0x3F, 0x6D, 0xDF, 0x65, 0x7F, 0xDA, 0x5E, - 0x78, 0x7F, 0xDA, 0x5E, 0x7C, 0x7F, 0x6A, 0xF2, 0x69, 0x59, 0x78, 0x87, 0x81, 0x46, 0x0B, 0xEE, - 0x31, 0xD0, 0x64, 0xE1, 0x5D, 0x06, 0x1A, 0x2D, 0xBE, 0xCF, 0x40, 0xAB, 0x45, 0x77, 0x1A, 0x68, - 0x73, 0x87, 0xBD, 0x06, 0x9A, 0x2D, 0xBA, 0xDB, 0x40, 0x9B, 0x52, 0xFB, 0x8D, 0xDA, 0x2F, 0x68, - 0x0D, 0x1A, 0x9B, 0x04, 0xE3, 0xD2, 0xEA, 0x15, 0xAE, 0xB6, 0xCC, 0x56, 0x22, 0x52, 0x8C, 0xF0, - 0x7D, 0x24, 0x4A, 0x09, 0x80, 0x28, 0x49, 0xEC, 0x8D, 0xA5, 0xC6, 0xC0, 0x23, 0x9A, 0x8D, 0xA7, - 0xD7, 0xE9, 0xE3, 0x02, 0x86, 0x30, 0xB8, 0x08, 0x1E, 0xF3, 0x79, 0xB0, 0x95, 0x8D, 0xC5, 0x8E, - 0x67, 0xA0, 0xBD, 0xB5, 0x55, 0x67, 0xBC, 0x4A, 0x6B, 0x63, 0xE1, 0xED, 0xCE, 0x39, 0x41, 0xB7, - 0xE0, 0xF2, 0xB4, 0xC1, 0x48, 0xA7, 0x54, 0xC0, 0xDE, 0x00, 0x2A, 0xC1, 0xE4, 0x9A, 0x1A, 0x80, - 0xBB, 0x6D, 0xFB, 0x60, 0xF9, 0xE6, 0xC0, 0x0F, 0xCB, 0x6B, 0x4F, 0x34, 0xF3, 0xD8, 0xE4, 0xDD, - 0x2F, 0x38, 0x8C, 0x37, 0xA3, 0x34, 0x1A, 0x80, 0xD7, 0x0E, 0xDF, 0x6B, 0x23, 0x08, 0x75, 0x09, - 0xC1, 0xBB, 0x1A, 0x2B, 0x5E, 0x75, 0x14, 0xBE, 0x7B, 0x01, 0x3B, 0xBF, 0xD6, 0x5D, 0x3D, 0x35, - 0x5D, 0xEA, 0x49, 0x95, 0x33, 0xC1, 0x8E, 0xE5, 0x4D, 0x55, 0xD9, 0x5C, 0xA1, 0x82, 0xF6, 0x32, - 0xBD, 0x95, 0x36, 0x58, 0xAD, 0xD4, 0x12, 0xBD, 0x98, 0x46, 0x57, 0xF1, 0x73, 0xAF, 0x1F, 0xA0, - 0x3F, 0xAA, 0x05, 0xFF, 0xD9, 0x33, 0xD6, 0xDC, 0x92, 0x15, 0xC0, 0x43, 0xB8, 0xEA, 0x16, 0x6F, - 0x2F, 0xB1, 0xAF, 0x58, 0x63, 0xDA, 0xEC, 0xF5, 0x44, 0xB5, 0xF6, 0xA5, 0x0B, 0xC4, 0x2E, 0x1F, - 0xB9, 0x46, 0xDE, 0xBE, 0x65, 0xDC, 0x1D, 0x69, 0xFD, 0x5B, 0xF4, 0x5E, 0xB8, 0x95, 0x00, 0x8D, - 0x40, 0xB9, 0xB5, 0x86, 0x8F, 0x0D, 0x46, 0xF0, 0x88, 0x67, 0xCD, 0x78, 0xC4, 0xC3, 0x09, 0xCC, - 0x71, 0xA3, 0xE9, 0xDB, 0x92, 0xBA, 0x0A, 0xC0, 0x62, 0xC4, 0xEA, 0xBC, 0x8D, 0x70, 0x60, 0xD1, - 0xAA, 0x32, 0x84, 0xB5, 0xAE, 0x61, 0xAD, 0xDB, 0xB0, 0xDA, 0x2E, 0xAC, 0xB6, 0x84, 0xB5, 0x9E, - 0x03, 0x6B, 0x5B, 0xC3, 0xDA, 0xCE, 0xC1, 0xAB, 0xB9, 0x29, 0x3E, 0x8E, 0xD0, 0xFF, 0x65, 0xC7, - 0x45, 0x73, 0x3B, 0x07, 0x74, 0xB3, 0xA1, 0x61, 0x37, 0x1B, 0x39, 0x88, 0xE6, 0x00, 0x57, 0x78, - 0x73, 0x20, 0x1E, 0xE8, 0x16, 0x57, 0x89, 0x47, 0x76, 0xB8, 0x8E, 0x25, 0x6E, 0x26, 0x43, 0x08, - 0x0E, 0x23, 0x86, 0xB0, 0xB0, 0xAF, 0xBA, 0xE5, 0x9A, 0x23, 0x2C, 0x44, 0xAC, 0x6A, 0x4E, 0x05, - 0xA0, 0x94, 0xE8, 0xAD, 0xB1, 0x63, 0x51, 0xEF, 0x69, 0xA6, 0x62, 0xDB, 0xF9, 0x98, 0x19, 0x53, - 0xD3, 0x26, 0x12, 0x5C, 0xF5, 0xC0, 0x23, 0xDA, 0x1A, 0xD5, 0x6F, 0x4F, 0xA5, 0x5A, 0x2B, 0xD3, - 0x7C, 0xDD, 0x6A, 0xAE, 0x2F, 0x80, 0x5E, 0x20, 0xAD, 0x1C, 0x20, 0x1B, 0x36, 0x0E, 0x70, 0x33, - 0x74, 0x9B, 0xAE, 0xE7, 0x34, 0xB5, 0xE7, 0x58, 0xDC, 0x13, 0x71, 0x07, 0x1E, 0x89, 0x1B, 0xA4, - 0x2E, 0x05, 0xDB, 0x2D, 0x1E, 0x08, 0x56, 0x18, 0xCA, 0x8B, 0xB5, 0xE6, 0x00, 0xCC, 0xB7, 0xAD, - 0xC1, 0x15, 0x1C, 0x91, 0xFC, 0xC7, 0x47, 0x83, 0x9B, 0x78, 0xDC, 0xEF, 0xF2, 0x9F, 0x5A, 0x8F, - 0x06, 0x57, 0x11, 0xFF, 0x77, 0x50, 0x71, 0xF1, 0xD9, 0xCA, 0xC1, 0x67, 0xCB, 0xC5, 0x87, 0xEE, - 0xA6, 0x19, 0x72, 0x6E, 0xE6, 0xB4, 0x6F, 0xB5, 0x2C, 0x00, 0x78, 0x53, 0xE6, 0x73, 0x62, 0xB5, - 0xFF, 0xEA, 0x29, 0xFB, 0x3D, 0x6F, 0x3E, 0x5A, 0xEB, 0x99, 0xF6, 0x7A, 0x52, 0x32, 0x50, 0xF2, - 0x26, 0xA4, 0xB5, 0x91, 0xC5, 0x22, 0x33, 0x2B, 0x00, 0x20, 0x6F, 0x5A, 0x5A, 0x8F, 0x32, 0x00, - 0xC4, 0xDC, 0x64, 0x40, 0xE4, 0x51, 0xB2, 0xB5, 0xE5, 0x03, 0xE1, 0x21, 0x27, 0x92, 0x23, 0x8F, - 0x9E, 0x6B, 0xDB, 0x16, 0x14, 0x32, 0x03, 0xF7, 0x2E, 0x17, 0x5A, 0x92, 0x59, 0xA6, 0xF7, 0x01, - 0x6D, 0x4B, 0xA0, 0x73, 0xD6, 0x6F, 0x16, 0xC5, 0x2D, 0xFF, 0x26, 0xC8, 0xC5, 0x01, 0xF1, 0x55, - 0x1F, 0x7B, 0x17, 0x11, 0xA8, 0x98, 0xDF, 0x67, 0x23, 0xBE, 0xA1, 0xA3, 0x60, 0x6B, 0x47, 0xFD, - 0x8E, 0x23, 0x1B, 0x04, 0x69, 0xE7, 0x0A, 0x1F, 0xBF, 0x54, 0x55, 0x01, 0xD3, 0xE7, 0x05, 0xE2, - 0xD5, 0xEB, 0xD5, 0x3C, 0x65, 0xD4, 0x4B, 0x61, 0x79, 0x4B, 0x96, 0x3B, 0xDE, 0xCB, 0xD0, 0x33, - 0xC7, 0xAE, 0xCE, 0x37, 0x96, 0xEC, 0x8E, 0xE4, 0x22, 0x6A, 0x12, 0x23, 0x33, 0xC0, 0x8D, 0xA2, - 0x01, 0x5A, 0x27, 0x9F, 0xC0, 0xC4, 0x19, 0xFE, 0xC8, 0x56, 0x62, 0x67, 0xA7, 0x71, 0xCB, 0x7F, - 0x40, 0x7C, 0x12, 0xE1, 0xDB, 0x7F, 0x33, 0xC2, 0xB7, 0x35, 0xE1, 0xDD, 0x5D, 0xFF, 0xAF, 0x47, - 0xF8, 0x76, 0x19, 0xC2, 0xF3, 0x13, 0xD6, 0xBB, 0x2A, 0x57, 0xDB, 0x8B, 0x2D, 0xCC, 0xB2, 0x6B, - 0x4D, 0x76, 0x25, 0xB4, 0xC2, 0x56, 0x20, 0x4A, 0x2E, 0x5A, 0xA2, 0xC7, 0x1E, 0x4A, 0xA5, 0x8F, - 0xD9, 0x3F, 0x76, 0x31, 0x14, 0xAB, 0xE9, 0xC7, 0xAB, 0x6C, 0x7F, 0x5A, 0x8C, 0xAC, 0xD2, 0xCE, - 0xF3, 0xE4, 0x09, 0x3F, 0xDE, 0x97, 0xD8, 0x6F, 0xC8, 0xF4, 0xFC, 0x97, 0x6D, 0xF8, 0xB9, 0x7D, - 0xE9, 0x1A, 0x03, 0xE7, 0xE4, 0x59, 0xCC, 0xEA, 0x7E, 0xAD, 0x6A, 0x2B, 0x98, 0xCB, 0x04, 0x55, - 0x24, 0x3F, 0xFF, 0xFC, 0xE6, 0x1B, 0x08, 0xB5, 0x1E, 0x25, 0xD4, 0x08, 0xE0, 0x37, 0xD8, 0xD0, - 0x82, 0x40, 0x97, 0x2C, 0xD1, 0x83, 0x6B, 0x51, 0xAE, 0xEE, 0x9D, 0x9C, 0x2E, 0x59, 0x76, 0x65, - 0xD1, 0xBD, 0xE8, 0xC1, 0x04, 0x3C, 0xE6, 0x92, 0x7F, 0x87, 0x9D, 0x5A, 0x96, 0x0D, 0xD1, 0x55, - 0xEE, 0x68, 0x6A, 0x10, 0x5D, 0xB8, 0x9E, 0x8C, 0xC2, 0x4E, 0xD4, 0x8B, 0x3A, 0xCE, 0xD8, 0x16, - 0xC4, 0x0C, 0x54, 0xDE, 0xE0, 0xCE, 0x22, 0x40, 0x3C, 0x97, 0x08, 0xB1, 0x6A, 0x80, 0x1A, 0x9E, - 0x84, 0xA2, 0x1A, 0xF1, 0x2B, 0xD2, 0x5F, 0xC2, 0x71, 0x9C, 0xD1, 0xBC, 0x6F, 0x98, 0xBD, 0x9D, - 0x8C, 0x29, 0x43, 0x63, 0x42, 0x18, 0x13, 0x64, 0x0E, 0x12, 0xAE, 0x70, 0x30, 0x3D, 0xD5, 0x31, - 0x28, 0xA6, 0x35, 0x0C, 0x8E, 0x99, 0xAC, 0xD0, 0xA4, 0x0A, 0x70, 0xFC, 0x38, 0x95, 0x2C, 0xD5, - 0xB6, 0xE8, 0xE8, 0xED, 0xFE, 0x37, 0x99, 0x4E, 0x5A, 0xB2, 0x93, 0xC9, 0xB0, 0x1F, 0x77, 0x3E, - 0x86, 0xDD, 0xA5, 0x4C, 0x37, 0x2D, 0xD9, 0x8D, 0xA8, 0xE0, 0xF6, 0x61, 0x91, 0x4E, 0x86, 0x63, - 0xD4, 0x1D, 0xE9, 0x49, 0x7B, 0x4E, 0x0A, 0xF4, 0x1D, 0x06, 0x00, 0xF9, 0xDF, 0x0D, 0xF9, 0x37, - 0x00, 0x7F, 0xCD, 0x5B, 0x5F, 0xB1, 0xDD, 0x41, 0x38, 0x8E, 0x3A, 0xC1, 0x50, 0x76, 0x72, 0xCE, - 0xEF, 0x6F, 0xFD, 0x80, 0x4B, 0x46, 0xE9, 0x4D, 0x4C, 0x0B, 0x9B, 0xD2, 0x88, 0xE0, 0x05, 0x13, - 0x2E, 0x78, 0xEF, 0xCE, 0xD7, 0x41, 0xAC, 0x66, 0x93, 0x51, 0x0D, 0x05, 0xAB, 0x6E, 0xC8, 0x89, - 0x11, 0xC2, 0x63, 0xD9, 0xBA, 0xD0, 0x6F, 0x21, 0x36, 0x48, 0x1D, 0xAC, 0x70, 0xF4, 0x4D, 0xA3, - 0x89, 0xE1, 0x74, 0xC9, 0xE6, 0xE4, 0x5E, 0x53, 0x37, 0x84, 0xA6, 0x42, 0x0C, 0x47, 0x24, 0x06, - 0xF0, 0x8F, 0x06, 0xEB, 0x0E, 0x99, 0xAA, 0x14, 0x5C, 0x07, 0x51, 0x3F, 0x20, 0x65, 0x7F, 0x4F, - 0xDD, 0x8D, 0xEB, 0xD1, 0xB0, 0xC6, 0x89, 0x69, 0x37, 0xA4, 0x41, 0xBF, 0x8E, 0x65, 0x5B, 0x6C, - 0xC1, 0x31, 0xF7, 0xDE, 0x4D, 0xCD, 0x14, 0xA1, 0x79, 0x37, 0x53, 0x37, 0x18, 0x8E, 0x7A, 0x76, - 0x9A, 0x67, 0x11, 0x13, 0x46, 0x29, 0x15, 0x06, 0x8A, 0xDE, 0x9D, 0x50, 0x1F, 0x63, 0x1C, 0xBC, - 0x2A, 0x20, 0xBF, 0x2E, 0x15, 0x8F, 0xF7, 0xA2, 0x31, 0x34, 0x1F, 0x4A, 0x59, 0xF1, 0xCA, 0x10, - 0xE6, 0xA6, 0x05, 0x53, 0xBC, 0xE1, 0x19, 0x89, 0xC5, 0x94, 0x0B, 0xD5, 0x8C, 0x33, 0xBC, 0xCC, - 0xB4, 0x7F, 0xA1, 0x15, 0x66, 0xDB, 0x0D, 0xD2, 0xBD, 0xAC, 0x1C, 0x59, 0xB2, 0x15, 0x4F, 0x73, - 0xB0, 0x74, 0x5E, 0x65, 0x19, 0x44, 0x73, 0x93, 0x99, 0x71, 0xEC, 0x21, 0xFB, 0x28, 0xF8, 0xE3, - 0xAB, 0x98, 0xCC, 0x43, 0x78, 0x89, 0x13, 0x0E, 0x40, 0x65, 0x22, 0xAA, 0x18, 0xB1, 0x99, 0x83, - 0xE1, 0x4C, 0x28, 0x50, 0x39, 0xF0, 0x70, 0xDA, 0x09, 0x47, 0x29, 0x7B, 0xBE, 0x59, 0x63, 0x9B, - 0xC4, 0x9C, 0x1B, 0xA5, 0xA6, 0xE4, 0x6E, 0xE4, 0x7B, 0xFE, 0x57, 0xA3, 0x9F, 0xB4, 0x86, 0xDA, - 0xAC, 0x33, 0x8C, 0x21, 0x63, 0xAB, 0x0A, 0x00, 0x2A, 0xBE, 0x66, 0xB0, 0x6C, 0x36, 0xE7, 0x30, - 0x4F, 0xCB, 0x06, 0xDB, 0x8D, 0x81, 0xE0, 0x42, 0xE3, 0x34, 0x49, 0xF8, 0x36, 0xD9, 0x15, 0xB9, - 0x02, 0xF8, 0x12, 0x4F, 0x0A, 0xBB, 0x6A, 0xCD, 0xED, 0x6A, 0xD3, 0x19, 0x01, 0xEC, 0x40, 0x81, - 0xD8, 0x81, 0x00, 0x3E, 0xEE, 0x1D, 0xC5, 0x7D, 0x3C, 0xDA, 0x69, 0xEE, 0x34, 0x76, 0xE6, 0xAD, - 0x88, 0x8D, 0x35, 0x97, 0x56, 0xDD, 0xB0, 0xC3, 0xFA, 0xB4, 0xF6, 0x57, 0x07, 0x90, 0x85, 0xBD, - 0xB0, 0x9B, 0x8D, 0xDC, 0x0E, 0x48, 0x08, 0x30, 0x9C, 0x2C, 0x77, 0xBB, 0x5D, 0x64, 0x94, 0xC4, - 0x75, 0xB5, 0xFC, 0x27, 0xF8, 0x59, 0xE6, 0x1E, 0x49, 0x58, 0xF5, 0x05, 0xF8, 0xE8, 0x2E, 0x69, - 0x93, 0xB2, 0x27, 0x11, 0xC7, 0xE1, 0xDE, 0xAB, 0x3C, 0x4F, 0x6E, 0x4C, 0x18, 0x02, 0x51, 0x30, - 0xE6, 0xFA, 0xAA, 0xD5, 0xC8, 0x99, 0xEB, 0x83, 0x7A, 0x5C, 0xBC, 0xA0, 0x07, 0xDB, 0x03, 0xCB, - 0xAB, 0xCA, 0xF6, 0x38, 0x86, 0x96, 0xCA, 0xC7, 0x03, 0xDF, 0xDA, 0x94, 0x7F, 0xC5, 0x21, 0xDC, - 0x40, 0xB0, 0xA7, 0x7A, 0x1D, 0x34, 0x33, 0x1F, 0xAC, 0xD7, 0x38, 0x56, 0x00, 0x09, 0x7C, 0x37, - 0xC2, 0xD1, 0x78, 0x2F, 0xDD, 0x91, 0x3F, 0x2C, 0x2F, 0xA3, 0xBB, 0xB3, 0x7A, 0x1E, 0xEC, 0xD6, - 0x53, 0x4F, 0x27, 0x5D, 0x6F, 0x90, 0x03, 0xC3, 0x9B, 0xEE, 0x75, 0x38, 0x4D, 0xC9, 0x03, 0x23, - 0xD7, 0x63, 0xF0, 0xB5, 0xF0, 0xCA, 0x48, 0xE0, 0x09, 0x81, 0x38, 0xB6, 0xC1, 0xCD, 0x94, 0x3D, - 0xCF, 0x77, 0xAE, 0x03, 0xB0, 0x45, 0x6E, 0x12, 0x7F, 0x07, 0xFE, 0xA3, 0x86, 0xC7, 0x5A, 0xC6, - 0xE9, 0xF0, 0xA5, 0xE9, 0x6F, 0x28, 0x53, 0xD4, 0x97, 0x24, 0xD3, 0x38, 0x84, 0x77, 0xE3, 0xD2, - 0xBB, 0xB8, 0x88, 0x48, 0x0A, 0xF2, 0xE7, 0xA2, 0x54, 0x59, 0xFF, 0xE1, 0x22, 0x52, 0x7C, 0x6D, - 0x90, 0xC2, 0x70, 0xFE, 0x68, 0x27, 0x5C, 0x0C, 0xE5, 0x62, 0x0E, 0xBB, 0xF0, 0x79, 0x60, 0xC2, - 0x7A, 0x23, 0x1F, 0xCC, 0x57, 0xBB, 0x45, 0x3E, 0x98, 0x00, 0x50, 0x81, 0xFA, 0x0C, 0x2E, 0xA7, - 0xA2, 0x85, 0x7E, 0xF3, 0xA8, 0xC7, 0x75, 0x64, 0x6F, 0x46, 0xE8, 0x07, 0xE3, 0xD9, 0x7F, 0x8E, - 0x8A, 0xB6, 0x1F, 0xF2, 0x14, 0x2C, 0xBB, 0xFD, 0xDC, 0x65, 0xEB, 0x29, 0xDC, 0x79, 0x1E, 0x2C, - 0xF0, 0xA0, 0x21, 0x5B, 0xD1, 0xF7, 0x80, 0x61, 0x27, 0xBB, 0x2D, 0x19, 0x92, 0x48, 0x26, 0x45, - 0x0D, 0x3D, 0xEA, 0xB8, 0x68, 0x1E, 0x15, 0x3F, 0xEB, 0xA8, 0x2F, 0xF2, 0xAA, 0x03, 0x69, 0x55, - 0xFC, 0x8A, 0x23, 0xDB, 0xE8, 0x83, 0x15, 0xA4, 0x65, 0xD5, 0xFB, 0xF8, 0xC2, 0xFF, 0xA8, 0x62, - 0x56, 0x50, 0xE6, 0x3C, 0xB8, 0xB0, 0xF9, 0xE7, 0x18, 0x7E, 0x96, 0xB9, 0xA4, 0x72, 0xF9, 0x67, - 0x3F, 0x87, 0x7F, 0x28, 0x02, 0xDD, 0x7F, 0x52, 0xFC, 0x73, 0x47, 0xDE, 0x99, 0xF3, 0x24, 0x68, - 0x21, 0xDE, 0x11, 0x8F, 0x70, 0x16, 0xE5, 0x1E, 0x24, 0xEF, 0x5F, 0x9B, 0x7F, 0x4E, 0x6C, 0xFE, - 0x29, 0x12, 0x82, 0xF6, 0xF3, 0x84, 0x20, 0x91, 0x39, 0x6C, 0x11, 0x21, 0xE8, 0xF3, 0x48, 0x40, - 0x77, 0x95, 0x79, 0xE6, 0x88, 0x38, 0xD2, 0xAD, 0xB1, 0x99, 0x27, 0xE1, 0x18, 0xE1, 0x51, 0x5C, - 0x21, 0xE7, 0x3B, 0x7C, 0x73, 0x84, 0xEE, 0x9C, 0x73, 0xC8, 0x7B, 0x90, 0x47, 0x5E, 0x1C, 0xCA, - 0xBF, 0x45, 0x11, 0xF3, 0x82, 0xCB, 0x96, 0xE6, 0x8B, 0x58, 0xDB, 0x0B, 0xF4, 0x67, 0xD3, 0x0B, - 0x54, 0x69, 0xA8, 0xE4, 0x31, 0x4E, 0x5A, 0x86, 0x62, 0xA9, 0xE0, 0xD5, 0x49, 0x9E, 0x54, 0xC0, - 0xE1, 0x72, 0x88, 0x7F, 0x35, 0x91, 0xE0, 0x3E, 0x5E, 0xE1, 0x34, 0xD7, 0x9B, 0x6C, 0xB3, 0xC9, - 0x02, 0x7E, 0xF3, 0x79, 0x75, 0x72, 0xCA, 0x50, 0xE9, 0xF3, 0x2A, 0x1E, 0x47, 0x7F, 0x89, 0x21, - 0xC7, 0x92, 0x26, 0xD0, 0x69, 0xD8, 0x0F, 0xD0, 0xE0, 0xE6, 0xCA, 0x88, 0x7B, 0x7E, 0x19, 0xF1, - 0x95, 0x6C, 0x29, 0x1B, 0x7E, 0x0E, 0x6A, 0x7C, 0x96, 0x07, 0x49, 0x1D, 0x48, 0x9F, 0x3B, 0xEC, - 0x4A, 0x3D, 0xA8, 0xE9, 0x28, 0x7C, 0x32, 0x8E, 0x06, 0xC1, 0x78, 0xC6, 0xF6, 0x77, 0xB3, 0xFE, - 0xC2, 0x5C, 0xC0, 0x8C, 0x07, 0x51, 0x9A, 0xF2, 0x9B, 0x75, 0xFD, 0x19, 0x13, 0x79, 0x31, 0xB5, - 0xF2, 0x39, 0x21, 0x47, 0x93, 0x54, 0x52, 0x0A, 0x55, 0x73, 0x12, 0x06, 0x69, 0x40, 0x20, 0xA5, - 0x60, 0x08, 0x11, 0x73, 0x30, 0x54, 0x0B, 0x85, 0x6E, 0xEA, 0x48, 0xD2, 0x1E, 0xEE, 0x2B, 0x17, - 0x37, 0xF0, 0x51, 0x83, 0x8C, 0xAE, 0x0A, 0x05, 0xDE, 0x9F, 0x54, 0x68, 0xEE, 0xB0, 0x16, 0x0C, - 0xA0, 0xFA, 0xF3, 0xCF, 0xEF, 0xCE, 0xC1, 0x5E, 0x8E, 0x1E, 0x32, 0xBB, 0xDD, 0x6B, 0x88, 0x91, - 0xD8, 0x65, 0xEF, 0xA2, 0x6E, 0x18, 0xA3, 0x07, 0x46, 0x3C, 0xAC, 0x54, 0x96, 0xBC, 0xED, 0x1B, - 0x46, 0xFB, 0x26, 0xB5, 0x7F, 0x2D, 0xDB, 0x24, 0xBE, 0x46, 0x9B, 0x46, 0x83, 0x96, 0xBF, 0x42, - 0x83, 0xC3, 0x25, 0xDC, 0x76, 0xF8, 0x6F, 0x3B, 0x6C, 0x8B, 0xFF, 0xBF, 0x8D, 0xDF, 0x36, 0x50, - 0xED, 0x4B, 0xCD, 0x5B, 0xAD, 0x86, 0x6A, 0x0E, 0x7A, 0x4B, 0x1C, 0x41, 0x1D, 0x43, 0xBD, 0x69, - 0x0A, 0x19, 0x3A, 0xCC, 0x6E, 0x8C, 0x76, 0xC3, 0x41, 0x18, 0x0C, 0x41, 0x71, 0xC4, 0x27, 0x96, - 0xDF, 0x72, 0xDA, 0x33, 0xE5, 0xD8, 0x37, 0x48, 0xC2, 0xFE, 0x35, 0x3F, 0x27, 0x19, 0x43, 0xD8, - 0x76, 0x53, 0x7E, 0xC8, 0x86, 0xFD, 0x3E, 0xB4, 0x00, 0x42, 0x5F, 0xC5, 0x60, 0x3C, 0x06, 0x6F, - 0xC1, 0x5E, 0x18, 0x08, 0xC5, 0x27, 0x64, 0x46, 0x27, 0x6F, 0x21, 0x39, 0x69, 0xCA, 0x87, 0xC8, - 0x75, 0x15, 0x82, 0xB1, 0x36, 0xD7, 0x5A, 0x75, 0xDA, 0x36, 0x12, 0x57, 0xC1, 0x8B, 0x2E, 0xCF, - 0xA4, 0xDB, 0xF1, 0x29, 0xCD, 0xB5, 0xFF, 0x3E, 0x6E, 0x87, 0x3E, 0x4F, 0x6F, 0x4C, 0xF2, 0x68, - 0x2A, 0x6E, 0x5C, 0x87, 0x37, 0x74, 0xD2, 0xC6, 0x44, 0x09, 0x1C, 0xCD, 0x71, 0x38, 0xEA, 0x07, - 0x1D, 0x0C, 0xCB, 0x84, 0x91, 0x36, 0x69, 0xAF, 0x83, 0xA0, 0x9D, 0x7E, 0x3D, 0xFA, 0x39, 0x17, - 0x6C, 0x86, 0x51, 0x87, 0xB7, 0x54, 0xB5, 0x33, 0x63, 0xA0, 0x51, 0x40, 0x9E, 0x75, 0xB2, 0xA3, - 0xD5, 0x58, 0xB8, 0x72, 0xB9, 0x02, 0x39, 0x46, 0x37, 0x5A, 0x1B, 0x6E, 0xE5, 0x6D, 0x5D, 0x19, - 0x3C, 0x05, 0xA4, 0xA2, 0x86, 0x55, 0xC9, 0x87, 0x7B, 0xFF, 0x60, 0x4F, 0xE9, 0x7C, 0x41, 0x3F, - 0xA8, 0x9F, 0x29, 0x3D, 0xC3, 0x05, 0x48, 0xD0, 0xF2, 0x16, 0xE1, 0x19, 0xBA, 0x23, 0x2D, 0xB6, - 0x0C, 0xCD, 0x59, 0xAC, 0x24, 0x8C, 0x2F, 0x83, 0x61, 0x0A, 0x46, 0x0C, 0xA4, 0x98, 0x04, 0x01, - 0xAE, 0xA1, 0xB4, 0x2E, 0xEF, 0xB0, 0x20, 0xEB, 0x12, 0x0A, 0xAE, 0x4C, 0xC6, 0x0E, 0x53, 0x96, - 0x5C, 0xC5, 0x93, 0x7E, 0x57, 0xA8, 0xDA, 0xE3, 0xA1, 0xD4, 0xB7, 0xB7, 0x54, 0x4E, 0xD6, 0x1A, - 0xE3, 0x43, 0x12, 0xAA, 0xD1, 0x10, 0x32, 0x73, 0x77, 0x13, 0x05, 0x85, 0xEF, 0x52, 0x54, 0x9D, - 0xAF, 0x01, 0x77, 0xA1, 0x03, 0x99, 0x46, 0xE0, 0xBA, 0x75, 0x0D, 0x7F, 0x75, 0x24, 0xC1, 0x6E, - 0xAE, 0xC2, 0x71, 0x08, 0x25, 0xA4, 0xC3, 0x77, 0x78, 0x17, 0x76, 0x65, 0x45, 0xAC, 0x11, 0x93, - 0x6F, 0x1C, 0xC4, 0x46, 0x51, 0xA9, 0xAC, 0x58, 0x85, 0x4D, 0x55, 0x88, 0xAB, 0x52, 0x14, 0x02, - 0xDA, 0xBC, 0xD3, 0x28, 0x91, 0x7E, 0xB3, 0x83, 0x1B, 0xF0, 0x85, 0x15, 0xBE, 0xAF, 0xAC, 0x0A, - 0x9E, 0x4C, 0x22, 0x53, 0x1F, 0x0E, 0xE0, 0x26, 0x48, 0x54, 0x60, 0xA6, 0xBE, 0x5E, 0x98, 0xEC, - 0xBB, 0x97, 0xE3, 0x30, 0xDC, 0xDA, 0xE4, 0x2B, 0x12, 0x14, 0xB9, 0xC3, 0xC9, 0xA0, 0x1D, 0x72, - 0x86, 0x4A, 0x20, 0x06, 0x10, 0xAC, 0x48, 0xDC, 0x74, 0xB6, 0x37, 0x96, 0x80, 0x8C, 0x7C, 0x69, - 0x23, 0xBF, 0xE0, 0x38, 0x04, 0x91, 0x39, 0xB4, 0x1A, 0x8C, 0x3B, 0x1A, 0x76, 0x61, 0x0A, 0xC5, - 0x48, 0x4F, 0xDF, 0x1C, 0xB3, 0x0E, 0x87, 0x30, 0x8E, 0xBA, 0x97, 0x30, 0x83, 0x97, 0x51, 0x92, - 0x8E, 0x71, 0x82, 0x45, 0x0F, 0x88, 0xBE, 0x34, 0x82, 0x05, 0xFD, 0x1B, 0x88, 0x89, 0x05, 0xD6, - 0x25, 0x1C, 0xDC, 0x71, 0x3C, 0x86, 0xE7, 0x3C, 0x3D, 0x78, 0x1D, 0x01, 0x6D, 0xC4, 0x12, 0x27, - 0xF1, 0x1D, 0x96, 0x05, 0x3F, 0xDA, 0x3A, 0x2B, 0x1D, 0x7E, 0x68, 0x60, 0xB4, 0x8E, 0x56, 0xA3, - 0xD9, 0xAA, 0xA1, 0xE7, 0xD6, 0xC0, 0x69, 0x28, 0x48, 0x75, 0x1D, 0x0D, 0xA4, 0x62, 0x3B, 0xA1, - 0x01, 0xFD, 0x78, 0x71, 0xF1, 0xBC, 0xD1, 0x01, 0x06, 0x85, 0x9F, 0x9A, 0x1D, 0x16, 0xF4, 0x60, - 0x59, 0x3A, 0xAC, 0xA9, 0x38, 0xAF, 0xFA, 0x7C, 0x29, 0x2F, 0xD0, 0x28, 0x2D, 0x8A, 0xF9, 0xDE, - 0x76, 0x86, 0xFD, 0xB7, 0xF1, 0x1E, 0x63, 0xFB, 0x28, 0x87, 0xB8, 0x07, 0xF9, 0x16, 0x0F, 0x75, - 0x90, 0x46, 0x49, 0xB5, 0x42, 0xEE, 0xD5, 0x5A, 0xB1, 0x2D, 0x03, 0xDB, 0x43, 0x19, 0x38, 0x4D, - 0xD6, 0x27, 0x7C, 0xE3, 0xE0, 0xEB, 0x26, 0xA7, 0x0A, 0xC5, 0xE1, 0xAA, 0x18, 0x51, 0xB5, 0xB3, - 0x0A, 0xED, 0x9D, 0x56, 0x47, 0xEA, 0x66, 0x5D, 0xAB, 0x02, 0x80, 0xC0, 0xAB, 0x53, 0x21, 0x84, - 0x4D, 0xDD, 0x7E, 0x8E, 0x65, 0xE2, 0x99, 0x69, 0x99, 0xA0, 0x75, 0x87, 0x2B, 0x11, 0x46, 0x22, - 0x3F, 0x0B, 0xE3, 0x04, 0x4B, 0x46, 0x51, 0x8A, 0x7D, 0xC9, 0x82, 0x98, 0xAF, 0xD5, 0x80, 0xDC, - 0x23, 0x7F, 0x5F, 0x7B, 0xD4, 0xE0, 0x0B, 0x1D, 0xF5, 0x68, 0xCF, 0x45, 0xEA, 0x4B, 0x1F, 0xD9, - 0xF2, 0x91, 0x7E, 0xD6, 0xD8, 0x69, 0x3D, 0xDA, 0xDC, 0x69, 0x14, 0x0E, 0xDD, 0x26, 0x70, 0x01, - 0xB0, 0xAD, 0x8D, 0x9D, 0xED, 0x8D, 0x39, 0xC0, 0x32, 0x74, 0x14, 0x6E, 0x37, 0xE2, 0x4C, 0xE3, - 0xFB, 0x65, 0x7B, 0xC6, 0xE8, 0x9E, 0x2A, 0x03, 0x6A, 0xEA, 0x8A, 0xD6, 0x77, 0xBC, 0x07, 0xA3, - 0x85, 0x56, 0x9E, 0xA7, 0x2B, 0x19, 0xC4, 0x34, 0xDB, 0x2D, 0xB3, 0x4A, 0x21, 0x5E, 0xF3, 0x59, - 0xE4, 0xD9, 0xD6, 0xDA, 0xCE, 0x7A, 0xA3, 0xD1, 0x58, 0x33, 0x47, 0xE8, 0x91, 0xEC, 0xD1, 0x45, - 0x95, 0xB4, 0x9C, 0xAE, 0x58, 0xCF, 0x50, 0x7C, 0x77, 0xDF, 0x59, 0x0B, 0x29, 0x9F, 0x8B, 0xF4, - 0xEF, 0xF2, 0x44, 0x7A, 0x58, 0xEC, 0x9F, 0x55, 0xA4, 0x9F, 0xE5, 0x8A, 0xF4, 0x77, 0x8E, 0x29, - 0xD0, 0x5C, 0xDF, 0x80, 0x40, 0xF5, 0x21, 0x17, 0xE9, 0xDF, 0x81, 0x48, 0xCF, 0xDE, 0x85, 0x7C, - 0x5F, 0xED, 0x94, 0x92, 0xE6, 0x73, 0xD4, 0xE2, 0xEF, 0x3E, 0xBF, 0x34, 0xFF, 0x99, 0x22, 0x2B, - 0xA0, 0x83, 0x73, 0x8F, 0xF6, 0x64, 0xE3, 0x5E, 0x03, 0xCB, 0x3E, 0x4B, 0x96, 0x9C, 0x37, 0xF9, - 0xE2, 0x52, 0x28, 0x1E, 0xE6, 0xBF, 0x7A, 0x97, 0xF3, 0x30, 0xFF, 0x95, 0xA2, 0x52, 0xB9, 0x0D, - 0x59, 0x13, 0x82, 0x3C, 0x9B, 0xF5, 0xFC, 0xEB, 0x47, 0xF7, 0x66, 0x9D, 0xE6, 0x7B, 0x75, 0xDB, - 0xB6, 0x59, 0x47, 0x3F, 0xEA, 0xFF, 0x24, 0xC2, 0x65, 0x6E, 0x99, 0xE6, 0xB3, 0xFF, 0x7B, 0xBA, - 0x5E, 0x0D, 0xD8, 0x15, 0x43, 0x67, 0x73, 0x4C, 0x93, 0x52, 0x3D, 0x3B, 0xCE, 0x78, 0x43, 0x80, - 0xDC, 0xA1, 0x9C, 0x20, 0x76, 0x91, 0x86, 0xA2, 0xF2, 0xAE, 0x5B, 0x79, 0x5D, 0xBC, 0x82, 0x44, - 0x2D, 0x38, 0xD5, 0x39, 0x3C, 0x75, 0x2B, 0x35, 0xD5, 0x7B, 0x8B, 0x61, 0x77, 0x15, 0x4C, 0x16, - 0xF8, 0xEE, 0xF0, 0x2C, 0x53, 0xAF, 0x25, 0x04, 0xA2, 0xDD, 0x49, 0x1A, 0xC3, 0x49, 0xDE, 0x61, - 0xAF, 0xC3, 0x1B, 0x3C, 0xEB, 0xAB, 0x47, 0xAF, 0x8F, 0xAD, 0x97, 0xF4, 0x7C, 0x10, 0xC2, 0x55, - 0x86, 0x0B, 0x26, 0x5C, 0xB0, 0xBF, 0x86, 0x88, 0x2D, 0xD8, 0x3F, 0xC6, 0x86, 0xC1, 0xB7, 0xC0, - 0xE7, 0xDE, 0xD7, 0xA2, 0xBB, 0x3A, 0xA1, 0x99, 0xB4, 0x4A, 0xA8, 0x94, 0xED, 0x7B, 0xDF, 0xF8, - 0x89, 0xB1, 0x1F, 0x26, 0xD1, 0xE5, 0x10, 0xBA, 0x78, 0x7B, 0xB6, 0x7B, 0xB6, 0x77, 0x78, 0x88, - 0x62, 0x87, 0x2D, 0xD7, 0xB3, 0xAF, 0x1B, 0xF5, 0xAF, 0xD7, 0x64, 0x63, 0x80, 0xB6, 0xCB, 0x71, - 0x26, 0xA3, 0x39, 0x78, 0x5F, 0xD1, 0x65, 0x10, 0x64, 0x6D, 0x5F, 0xF8, 0x00, 0x7E, 0x75, 0x61, - 0x7B, 0xC8, 0xF5, 0x82, 0x8A, 0x80, 0xCD, 0x9B, 0x23, 0x3F, 0xB9, 0xCF, 0x06, 0x71, 0xCC, 0xA5, - 0x99, 0xEA, 0x59, 0x3F, 0xBE, 0x59, 0x62, 0x14, 0x42, 0x89, 0xC6, 0xBC, 0x97, 0x69, 0x21, 0xBD, - 0x67, 0xC8, 0x6F, 0x97, 0x6E, 0x9F, 0x54, 0xF5, 0xB5, 0x5B, 0x95, 0xAE, 0x42, 0x6F, 0x50, 0x58, - 0xD4, 0x58, 0xBC, 0x71, 0xAB, 0xD1, 0x8B, 0x91, 0x6F, 0xC7, 0xC1, 0x48, 0x1C, 0xC5, 0xAA, 0xEA, - 0xEE, 0xB7, 0x6E, 0xDD, 0x2D, 0x35, 0x9F, 0x75, 0x7E, 0x23, 0x0A, 0x83, 0x54, 0xD3, 0x7A, 0x37, - 0x33, 0xFD, 0xDB, 0x8A, 0x49, 0x38, 0x48, 0xD8, 0x10, 0xBF, 0x63, 0x5F, 0xB1, 0xEF, 0x41, 0xEE, - 0xE7, 0x22, 0x56, 0xCA, 0xFF, 0xC1, 0x18, 0xF3, 0x2B, 0xC0, 0xBC, 0xA1, 0x7C, 0x15, 0x61, 0xC8, - 0xFC, 0xC8, 0xA4, 0xD0, 0xEC, 0x9C, 0xCF, 0xCA, 0x47, 0xF3, 0x72, 0xAE, 0x5E, 0x93, 0x20, 0xFC, - 0x2B, 0x8C, 0x42, 0x15, 0xF7, 0xDB, 0x7C, 0x9F, 0xAC, 0xC2, 0xF9, 0x9E, 0xC7, 0xAD, 0x18, 0x0F, - 0xF3, 0x85, 0x78, 0x46, 0x2B, 0x79, 0xA5, 0x1A, 0xA4, 0xE9, 0x66, 0xD3, 0x7D, 0xF2, 0xDA, 0x14, - 0x23, 0xC5, 0x2B, 0x26, 0x30, 0xC7, 0x80, 0xDF, 0x62, 0xF9, 0x79, 0x0E, 0x03, 0x3D, 0x79, 0xF9, - 0x32, 0x53, 0x5B, 0x3F, 0xD9, 0x43, 0x87, 0x03, 0xBA, 0x7A, 0xA4, 0x20, 0xF3, 0xF4, 0x20, 0xD8, - 0x92, 0x88, 0x9D, 0x8A, 0xAD, 0x0F, 0xBE, 0xCB, 0xF1, 0x88, 0xC2, 0x81, 0x48, 0xAC, 0x78, 0xCD, - 0xF3, 0xBD, 0x03, 0x97, 0xA2, 0x6B, 0xE6, 0x98, 0x49, 0x99, 0x9C, 0x37, 0x6A, 0xF9, 0x6E, 0xF5, - 0x60, 0x08, 0xDE, 0x3F, 0x7C, 0x08, 0xC3, 0xB4, 0x8E, 0x19, 0xEB, 0x60, 0xEC, 0x72, 0x27, 0x4D, - 0x72, 0x9A, 0x6E, 0x89, 0xA6, 0xB0, 0x16, 0xCE, 0xC3, 0x8F, 0xE9, 0x38, 0x1E, 0x72, 0x79, 0x4F, - 0xF1, 0xC5, 0xF9, 0xC1, 0x37, 0x39, 0x6F, 0x49, 0x77, 0xE1, 0xB5, 0x0D, 0xDB, 0x6A, 0xC8, 0x25, - 0x70, 0x9C, 0x59, 0x1E, 0xF2, 0x09, 0x29, 0xC8, 0xF8, 0x55, 0x70, 0x79, 0xE5, 0x80, 0xAB, 0x5C, - 0x40, 0x44, 0xA7, 0x92, 0x50, 0x3F, 0x3A, 0xCC, 0x74, 0xD0, 0x32, 0x87, 0x43, 0xF7, 0x72, 0xF0, - 0x88, 0x52, 0xB7, 0xF2, 0x3D, 0x7B, 0xF5, 0x02, 0x9E, 0xAF, 0x15, 0x37, 0x9D, 0xEE, 0x65, 0x57, - 0x1E, 0xAD, 0xBD, 0x73, 0x08, 0x86, 0xF7, 0x86, 0xB3, 0x5A, 0x30, 0x86, 0x65, 0x02, 0x31, 0xED, - 0xFD, 0x2F, 0x45, 0xC5, 0x92, 0xAB, 0xDF, 0xD8, 0x0B, 0x25, 0xE7, 0x85, 0x28, 0xF2, 0xDA, 0x51, - 0x7C, 0x79, 0x49, 0x57, 0xD7, 0x73, 0xB8, 0xBA, 0x45, 0x89, 0x88, 0x40, 0xC5, 0xAF, 0xAD, 0xF2, - 0x31, 0x15, 0x48, 0x88, 0x81, 0xBE, 0x2D, 0xA3, 0x7B, 0x56, 0x1D, 0xC4, 0x60, 0x46, 0x01, 0xB5, - 0xFC, 0xCF, 0x49, 0xDF, 0x62, 0x48, 0x02, 0x3E, 0x56, 0xDC, 0xC3, 0xCE, 0x88, 0xBB, 0x5E, 0x88, - 0xC8, 0xBC, 0xAC, 0x8A, 0xBD, 0x0D, 0x82, 0x19, 0x6B, 0x87, 0xD0, 0x91, 0xA2, 0x82, 0xEA, 0x11, - 0x2F, 0x48, 0x51, 0x1A, 0x1E, 0x0E, 0xAF, 0xA2, 0x76, 0x94, 0xE6, 0x11, 0x7D, 0x53, 0x8C, 0xC6, - 0xDC, 0x62, 0x3F, 0x62, 0xD2, 0x48, 0x22, 0x6F, 0x66, 0x77, 0xDD, 0x14, 0xF8, 0x41, 0xD0, 0x20, - 0xCC, 0x46, 0x8A, 0x99, 0x32, 0x12, 0xBC, 0xEE, 0xAB, 0xEC, 0xC4, 0xD8, 0xF6, 0x45, 0xA6, 0x2D, - 0xBD, 0x0E, 0x6B, 0x94, 0xDA, 0x33, 0x60, 0x13, 0xD6, 0x8A, 0xBE, 0x7E, 0x08, 0x2A, 0x1E, 0x6B, - 0x1B, 0x29, 0xB5, 0x7B, 0xC8, 0x97, 0x86, 0x40, 0xCD, 0x57, 0x51, 0x3F, 0xC2, 0x13, 0x67, 0x5E, - 0x93, 0x96, 0x6A, 0xB2, 0x07, 0xE9, 0x1C, 0x8E, 0xE3, 0x92, 0x5D, 0xAD, 0x19, 0x13, 0xB7, 0x40, - 0xB3, 0x75, 0x4D, 0x8F, 0x97, 0x90, 0x63, 0xE1, 0x70, 0xB8, 0x8A, 0xFF, 0xBE, 0xE1, 0x37, 0xA7, - 0x10, 0xD2, 0x4B, 0x67, 0xF4, 0x4F, 0x0D, 0xF5, 0xDE, 0x50, 0xAC, 0x95, 0x03, 0x54, 0x83, 0x84, - 0x92, 0xA0, 0x59, 0xA6, 0xA5, 0x37, 0x97, 0x82, 0xF2, 0x74, 0xF8, 0xF0, 0x8D, 0xAB, 0x4D, 0x61, - 0xA6, 0x41, 0x4B, 0x93, 0xCE, 0xE0, 0xA6, 0x36, 0xE2, 0x5D, 0xFA, 0xF7, 0xD7, 0x06, 0xB9, 0x7D, - 0xE6, 0x34, 0x07, 0x16, 0xA0, 0x59, 0xCB, 0x6B, 0xBD, 0xA6, 0xC4, 0x0E, 0xCE, 0xD2, 0xBC, 0x6A, - 0xCA, 0x1E, 0x42, 0xEE, 0x95, 0x87, 0x94, 0x5F, 0x04, 0x97, 0x73, 0x08, 0x2F, 0x82, 0xAF, 0x18, - 0x67, 0x56, 0xD5, 0xBC, 0x1A, 0xE2, 0xF8, 0x48, 0x53, 0x81, 0xE5, 0x2F, 0xA2, 0xF4, 0x70, 0x08, - 0x68, 0xE6, 0xF0, 0x33, 0xF5, 0x65, 0x11, 0x07, 0x5D, 0x6F, 0xB9, 0xBC, 0xCA, 0xCF, 0xF1, 0xA8, - 0x17, 0x81, 0x1E, 0x13, 0x24, 0x81, 0x5D, 0x88, 0xED, 0xCF, 0x49, 0xFE, 0x7A, 0x32, 0x50, 0x8B, - 0xE7, 0x28, 0xEE, 0x7C, 0x24, 0x3D, 0xA1, 0x5C, 0x61, 0x66, 0xFF, 0xC3, 0xC9, 0x00, 0x2B, 0x14, - 0xF6, 0xBC, 0xA9, 0x27, 0x13, 0x62, 0xDF, 0xA1, 0x7A, 0x89, 0x33, 0x01, 0x1F, 0xAA, 0xEC, 0x1F, - 0xE2, 0x73, 0xF3, 0x3E, 0x64, 0x17, 0x12, 0x86, 0xD9, 0x13, 0x50, 0x06, 0x40, 0x24, 0x07, 0x98, - 0x47, 0xAC, 0xB8, 0xC7, 0x47, 0xBA, 0xC7, 0xFD, 0x83, 0x23, 0xA1, 0x2F, 0x07, 0x72, 0x81, 0x43, - 0xD6, 0xF0, 0xB2, 0x2E, 0x56, 0x33, 0x59, 0x1D, 0x65, 0x7B, 0x40, 0xC0, 0x03, 0x6B, 0xDB, 0xC1, - 0x1E, 0x91, 0x07, 0x4A, 0x95, 0xC7, 0x3D, 0xE8, 0xA7, 0x25, 0x51, 0x97, 0x07, 0xCA, 0x37, 0x61, - 0x08, 0x09, 0xCC, 0xFA, 0x62, 0x49, 0x03, 0xCB, 0x0B, 0xB7, 0x54, 0x76, 0xC5, 0xA7, 0xBC, 0x0F, - 0xD3, 0x6E, 0x3C, 0x08, 0xCE, 0x4E, 0xCC, 0x47, 0x0E, 0xE0, 0x4C, 0xB5, 0x2F, 0xEC, 0x51, 0xEF, - 0x06, 0xD0, 0x70, 0xEF, 0xE8, 0xF0, 0xE4, 0xC5, 0x9B, 0xDD, 0xD3, 0x7D, 0xDD, 0xBD, 0x3B, 0xF3, - 0x5A, 0xB3, 0x18, 0x8A, 0x4A, 0xE7, 0xF1, 0x5E, 0x3F, 0x1A, 0x49, 0xFF, 0xDE, 0x82, 0xBE, 0xAC, - 0xD3, 0xEC, 0xED, 0xF8, 0x32, 0x1C, 0x76, 0x66, 0xEC, 0x26, 0x1A, 0x76, 0xF9, 0x9E, 0x39, 0x08, - 0x86, 0xC1, 0x25, 0x3F, 0xC7, 0xAE, 0x40, 0x92, 0x00, 0x2A, 0xCB, 0xF6, 0x7B, 0xFC, 0x10, 0xE7, - 0xEB, 0xAB, 0xFE, 0x35, 0x1C, 0x25, 0x42, 0xEE, 0xEE, 0x7A, 0xD9, 0x11, 0x52, 0xCD, 0x1C, 0x26, - 0x08, 0x37, 0x35, 0x2C, 0x22, 0xF9, 0xF8, 0xAC, 0x99, 0xF8, 0x8C, 0x83, 0x08, 0xDE, 0x91, 0xCA, - 0x77, 0xF7, 0x02, 0x2D, 0x9C, 0x6F, 0x85, 0x82, 0x84, 0xE1, 0x60, 0x62, 0x22, 0xA1, 0x92, 0xC4, - 0x14, 0x77, 0xBD, 0xE8, 0x91, 0x26, 0x41, 0x98, 0x47, 0x68, 0xC9, 0x03, 0x8D, 0x3A, 0x24, 0xE9, - 0x06, 0x42, 0x7B, 0x49, 0x4F, 0xD6, 0x20, 0xC1, 0xD8, 0x5D, 0x20, 0x45, 0xDF, 0xE7, 0xF9, 0x49, - 0xDD, 0x6D, 0x17, 0x75, 0x47, 0xCA, 0x32, 0x73, 0xEC, 0x12, 0x82, 0x45, 0x82, 0x1A, 0xEB, 0xF0, - 0x53, 0x0E, 0xD2, 0x4D, 0x31, 0xDE, 0x1D, 0x46, 0x57, 0xF0, 0x20, 0x2A, 0xF1, 0x33, 0xF9, 0xD2, - 0x8F, 0xA6, 0x90, 0x48, 0xB8, 0xC0, 0xD1, 0x46, 0x8F, 0x13, 0xDC, 0x13, 0x78, 0x47, 0x9D, 0x54, - 0x45, 0x5B, 0x68, 0x4A, 0x28, 0x62, 0x8E, 0x00, 0x51, 0x45, 0x3F, 0xB8, 0xF6, 0xC0, 0x46, 0x48, - 0x8B, 0x25, 0x12, 0xEA, 0x58, 0xD2, 0xB9, 0xF6, 0xE2, 0x3A, 0x18, 0xA9, 0xD5, 0x01, 0x6D, 0x64, - 0x9C, 0xE6, 0xBC, 0x12, 0x60, 0x84, 0x9C, 0xF4, 0x2A, 0x20, 0xED, 0x3F, 0x82, 0xCE, 0x5E, 0xA2, - 0xE8, 0xD1, 0xBC, 0x7E, 0x2C, 0x2E, 0x21, 0xAF, 0xC2, 0x0F, 0x7C, 0xEF, 0x50, 0x12, 0x2C, 0xEC, - 0x60, 0xB9, 0xED, 0x75, 0x20, 0x81, 0xB3, 0xC9, 0xB0, 0x5C, 0x13, 0x1D, 0x48, 0xE0, 0xD5, 0x49, - 0xB9, 0x16, 0x3A, 0x8A, 0xC0, 0xD9, 0xDE, 0x9B, 0x32, 0x4D, 0x36, 0x8D, 0x71, 0xF5, 0xC3, 0xCB, - 0x80, 0x2F, 0x7C, 0xE9, 0xD7, 0xCB, 0xC2, 0xC1, 0xA4, 0x4F, 0x72, 0x56, 0xF5, 0xBB, 0x66, 0xF3, - 0x74, 0xD3, 0xC3, 0x50, 0x9B, 0xC6, 0xB0, 0xC8, 0xF2, 0x91, 0x6D, 0x9D, 0xBD, 0x86, 0x5B, 0x71, - 0x0B, 0x40, 0xDE, 0x08, 0x41, 0x3D, 0x39, 0x0A, 0x12, 0xBE, 0xD8, 0x14, 0x9A, 0x20, 0x1A, 0x48, - 0x43, 0xDC, 0x55, 0x9A, 0x8E, 0x1E, 0xAF, 0xAE, 0x5E, 0xA7, 0x60, 0x2C, 0x19, 0x86, 0xE9, 0x6A, - 0x37, 0xEE, 0x24, 0xFC, 0x57, 0xDE, 0x61, 0x9D, 0xD4, 0xF7, 0x23, 0x3E, 0x17, 0xEB, 0x2B, 0x57, - 0xE9, 0xA0, 0x9F, 0x93, 0x38, 0x00, 0xEF, 0x0B, 0x05, 0x6A, 0x1B, 0xA8, 0xC7, 0x99, 0x8D, 0x3E, - 0x93, 0x36, 0x39, 0x6E, 0x7F, 0xE0, 0x3C, 0xA8, 0x54, 0xCA, 0xF9, 0x8F, 0xCB, 0xED, 0x98, 0xDE, - 0x05, 0x0F, 0xBE, 0x75, 0xF6, 0x19, 0x40, 0x47, 0xBD, 0xDD, 0x7A, 0xAF, 0x94, 0x9E, 0x0F, 0x68, - 0x6F, 0xB4, 0x1E, 0xB5, 0x97, 0x7B, 0xB9, 0xE0, 0xF8, 0xC8, 0xAF, 0x6B, 0x7F, 0x6A, 0xD2, 0xC4, - 0xA2, 0x12, 0x45, 0x10, 0x41, 0xC6, 0xA3, 0xA5, 0x3F, 0x1E, 0xBF, 0xEF, 0x86, 0xE9, 0x8D, 0x2D, - 0x34, 0x3E, 0xF0, 0x00, 0x34, 0x3D, 0xA0, 0x08, 0x8B, 0x79, 0xED, 0xCB, 0xBF, 0x1C, 0x28, 0x44, - 0xBE, 0xE9, 0x20, 0x6F, 0x2C, 0x5A, 0x71, 0x25, 0x2D, 0x31, 0x06, 0x07, 0x86, 0x91, 0x02, 0x11, - 0xA2, 0x00, 0xEB, 0xD0, 0xC1, 0x22, 0xDD, 0xE1, 0xCA, 0xDB, 0x33, 0x37, 0x7D, 0x8D, 0xD9, 0xA4, - 0xB9, 0x78, 0x93, 0xD6, 0xE2, 0x4D, 0xD6, 0xE6, 0x36, 0x41, 0x03, 0x86, 0xA9, 0xEF, 0x61, 0x60, - 0x14, 0x2C, 0xA0, 0xC3, 0xDA, 0x63, 0x68, 0x03, 0xD7, 0x5F, 0x88, 0x8E, 0x09, 0x2D, 0x9C, 0xEE, - 0x21, 0x4C, 0xDF, 0x1E, 0x25, 0x3E, 0x52, 0xBA, 0x3D, 0x07, 0x45, 0x4A, 0xC3, 0x52, 0xE5, 0x40, - 0x8C, 0xF0, 0xC9, 0x65, 0x5F, 0xB8, 0x60, 0x03, 0x32, 0x12, 0x96, 0x64, 0xBF, 0x47, 0x4E, 0x63, - 0x7D, 0xC9, 0x2D, 0x09, 0xA0, 0xD9, 0xB2, 0x5E, 0x13, 0xD0, 0xB0, 0x28, 0x80, 0x2C, 0xC6, 0x65, - 0x9B, 0x0F, 0x61, 0xD3, 0x1D, 0x40, 0x3F, 0xBE, 0xAC, 0x56, 0xCE, 0xC2, 0x31, 0x88, 0xE7, 0xF8, - 0xD4, 0x42, 0x58, 0x9E, 0xC3, 0xAE, 0x79, 0xA4, 0x88, 0x0B, 0xE9, 0x4A, 0xC5, 0x9D, 0x64, 0xA3, - 0xCE, 0x37, 0x24, 0xE5, 0xCE, 0xC7, 0x61, 0x1B, 0x67, 0xEE, 0xBB, 0x66, 0x83, 0xEE, 0x4A, 0xE6, - 0x88, 0x86, 0xB1, 0xBC, 0x69, 0x42, 0xC0, 0x34, 0x3E, 0xAB, 0x00, 0x18, 0x7F, 0xE4, 0x72, 0x51, - 0xD8, 0x17, 0x1F, 0xC5, 0x25, 0x62, 0xC5, 0x22, 0x4D, 0xA3, 0xD1, 0x40, 0xB8, 0x7C, 0xF3, 0x44, - 0x0E, 0xCA, 0x42, 0x26, 0x68, 0x2B, 0x99, 0xAF, 0x02, 0x5C, 0x4D, 0xBE, 0xDB, 0xE9, 0x90, 0xF4, - 0x25, 0x4D, 0xE7, 0xD8, 0xB3, 0xDB, 0x57, 0x0B, 0xFB, 0x12, 0xB7, 0x65, 0xBC, 0x22, 0x5A, 0x5D, - 0xCA, 0x6A, 0xC4, 0xA4, 0xF0, 0x38, 0x28, 0x5B, 0x87, 0xD9, 0x45, 0x75, 0x71, 0x83, 0x27, 0x2C, - 0xC5, 0xB5, 0xB3, 0x66, 0xD6, 0x95, 0x62, 0x79, 0x8A, 0xE6, 0x72, 0xD4, 0x73, 0x48, 0x0C, 0xAE, - 0xC2, 0x7E, 0x97, 0x41, 0xD2, 0xD7, 0x15, 0x7B, 0x7A, 0xA6, 0xCD, 0x06, 0xDD, 0x47, 0x9F, 0x9A, - 0x07, 0xC0, 0xB6, 0x33, 0x89, 0x48, 0x32, 0x4F, 0x3D, 0xA0, 0xA9, 0x53, 0x95, 0x54, 0x2B, 0x4E, - 0xDD, 0x67, 0xBE, 0x9A, 0x38, 0xD4, 0x03, 0x1C, 0x45, 0x86, 0x27, 0xC8, 0x85, 0xCE, 0x4A, 0x89, - 0xD8, 0x91, 0xFB, 0x5F, 0x45, 0x58, 0x2F, 0x2A, 0x3B, 0x1E, 0x46, 0x7D, 0x01, 0x96, 0x73, 0x70, - 0x7D, 0x89, 0x89, 0x94, 0xF2, 0x76, 0x3E, 0xE7, 0xC1, 0x52, 0xA3, 0xB1, 0xFE, 0x98, 0x76, 0x18, - 0x2E, 0x5E, 0x61, 0x16, 0xC5, 0x68, 0xB8, 0x8A, 0xFF, 0xC6, 0xEA, 0x86, 0x6F, 0x52, 0x5A, 0x54, - 0x79, 0x0C, 0x06, 0xEF, 0xC3, 0x4C, 0x01, 0x6F, 0x83, 0x25, 0x6F, 0xDC, 0xFD, 0x6E, 0xD8, 0x45, - 0xAD, 0x41, 0x99, 0x85, 0xDC, 0x68, 0x6C, 0x20, 0x46, 0x93, 0xB4, 0xB7, 0x05, 0x7A, 0x4C, 0xDA, - 0xF2, 0x6C, 0xF6, 0x20, 0xEF, 0xD6, 0xB4, 0x27, 0xA9, 0x6D, 0x03, 0x45, 0x6C, 0xC6, 0x5C, 0x24, - 0xEC, 0x6A, 0x33, 0xBC, 0x35, 0x88, 0x24, 0x1A, 0x80, 0xFF, 0x06, 0xBF, 0xF3, 0x60, 0xE4, 0xB0, - 0x7E, 0xC0, 0xEF, 0x29, 0xFC, 0xAC, 0xEF, 0x4F, 0x42, 0x7C, 0x05, 0x8A, 0x3D, 0x6B, 0xB7, 0x99, - 0x62, 0x64, 0x37, 0x89, 0x7C, 0x97, 0xE3, 0x42, 0x5C, 0x79, 0xF9, 0x1D, 0x71, 0xC5, 0xEC, 0x7F, - 0x70, 0xDD, 0x0C, 0xBA, 0x5D, 0xC6, 0xB7, 0x74, 0x50, 0xE9, 0x46, 0x9C, 0xA7, 0xAD, 0x4A, 0xA8, - 0xDE, 0x40, 0xCA, 0x3F, 0x69, 0xEF, 0x4C, 0x77, 0x66, 0xC7, 0x66, 0xA1, 0xD8, 0x36, 0x8C, 0xE2, - 0x41, 0xE1, 0x90, 0x9A, 0x82, 0xFE, 0xA0, 0x2C, 0x29, 0x9E, 0x00, 0xA8, 0x71, 0xC7, 0x61, 0x91, - 0xFB, 0x06, 0x69, 0x3B, 0x8A, 0xC6, 0x93, 0x1D, 0x0E, 0xED, 0x02, 0xBA, 0xF0, 0xBC, 0x48, 0x22, - 0xA0, 0xA1, 0x40, 0x52, 0x58, 0x71, 0xF7, 0xB1, 0x47, 0x40, 0xDF, 0x5E, 0x51, 0xEC, 0xC9, 0xA7, - 0x3A, 0x1F, 0x6D, 0x3E, 0x71, 0xD6, 0x69, 0x8B, 0x0E, 0xFA, 0xA9, 0x9D, 0x90, 0xCC, 0x05, 0x2F, - 0x64, 0x28, 0x38, 0x6A, 0xCD, 0x74, 0xB4, 0xF4, 0x07, 0x3D, 0x62, 0x5F, 0xEE, 0x1E, 0x1D, 0xD5, - 0xCF, 0x5F, 0x9D, 0xBE, 0x79, 0xFB, 0xF5, 0x2B, 0x4B, 0x8C, 0x7B, 0xE4, 0xEF, 0xC1, 0xC1, 0xA3, - 0xB8, 0x96, 0x29, 0x42, 0xD2, 0xC6, 0x64, 0x46, 0x08, 0x10, 0x09, 0x5A, 0x64, 0x62, 0x34, 0xB3, - 0x80, 0xD2, 0xCF, 0x24, 0x8F, 0x0D, 0x07, 0xDC, 0x9A, 0x55, 0x8C, 0x0E, 0xC0, 0x8F, 0x0D, 0x67, - 0x60, 0xA7, 0x98, 0x5F, 0x03, 0x47, 0xB2, 0x18, 0x7E, 0xB6, 0x8B, 0xA7, 0xA2, 0x68, 0xEA, 0xB4, - 0x92, 0x2D, 0xEC, 0xCF, 0x2A, 0x0B, 0xC5, 0x63, 0xF3, 0x09, 0x00, 0xFF, 0xDD, 0x57, 0x8D, 0xBC, - 0xDA, 0xAD, 0x9A, 0xF4, 0xC9, 0xAE, 0x0C, 0x79, 0x1A, 0x44, 0x25, 0xF8, 0xD1, 0x2A, 0x83, 0xB3, - 0xF7, 0xBB, 0xEF, 0x30, 0x8C, 0xB1, 0x4C, 0x67, 0x0D, 0xDE, 0xD9, 0x70, 0xA8, 0x3C, 0x77, 0x2B, - 0x8A, 0x72, 0x01, 0x4A, 0xFC, 0x56, 0x73, 0x6B, 0x51, 0xDE, 0x6C, 0x51, 0x89, 0x7E, 0xC9, 0xD4, - 0x91, 0x52, 0x9F, 0x0D, 0xCA, 0xC4, 0xEC, 0x76, 0xC7, 0xF8, 0x45, 0x8A, 0x67, 0x1C, 0xB7, 0xA5, - 0xCC, 0x77, 0x9D, 0xEC, 0x4E, 0xA4, 0x9A, 0x70, 0xCA, 0xDD, 0xF4, 0xC8, 0x02, 0x7E, 0xAE, 0x60, - 0xEF, 0x18, 0x7A, 0xFB, 0x4C, 0xE4, 0xED, 0x20, 0x53, 0x8C, 0xC7, 0xE0, 0xBA, 0xB0, 0xA9, 0x57, - 0x98, 0x50, 0xEE, 0xCD, 0xD6, 0x2B, 0x62, 0xE1, 0x82, 0xCF, 0x08, 0x59, 0xCC, 0xB2, 0x96, 0xDE, - 0x7E, 0x8E, 0xA5, 0x57, 0xA4, 0x24, 0xE1, 0xDF, 0x4F, 0xCF, 0xFC, 0xB6, 0x5E, 0x01, 0x7C, 0x71, - 0x33, 0x2F, 0xB8, 0x54, 0xD2, 0x3E, 0x2A, 0x0D, 0xB9, 0x3E, 0xA3, 0xED, 0x56, 0xA3, 0xBC, 0xCD, - 0xF6, 0x8F, 0x93, 0xC1, 0x88, 0x55, 0x5F, 0xF2, 0x0B, 0x74, 0x39, 0x8B, 0xAD, 0x40, 0xBD, 0x84, - 0xC1, 0xD6, 0x1E, 0xE4, 0x3C, 0xBB, 0xED, 0xEB, 0x78, 0x21, 0xD3, 0x2D, 0xAF, 0xBE, 0x90, 0xF5, - 0x76, 0x3F, 0x1E, 0x56, 0x52, 0x92, 0x4E, 0x8A, 0x6C, 0xB8, 0x5E, 0xCB, 0xEC, 0x2B, 0x3C, 0x7D, - 0x4A, 0x59, 0x66, 0xE3, 0xD1, 0x82, 0x86, 0x59, 0xC2, 0x6B, 0xB4, 0x90, 0x79, 0xF6, 0x28, 0x1A, - 0x44, 0xB2, 0x0D, 0x78, 0xA3, 0xE1, 0xAC, 0x41, 0x8F, 0xE0, 0xD8, 0x18, 0xCF, 0x33, 0xCF, 0xE2, - 0x68, 0xCA, 0x99, 0x67, 0x05, 0xD1, 0xCA, 0x1B, 0x69, 0xF7, 0x49, 0x77, 0xB7, 0x90, 0x95, 0x56, - 0x6A, 0xC8, 0xA1, 0x6D, 0x69, 0xAB, 0xEB, 0xEB, 0xF8, 0xAE, 0x86, 0x57, 0x89, 0x62, 0x39, 0xCB, - 0xAB, 0x52, 0x99, 0xBE, 0x9E, 0x67, 0x79, 0xED, 0xF5, 0xE6, 0x9B, 0x5E, 0x5F, 0xC7, 0x8B, 0x5A, - 0x5F, 0x39, 0x3F, 0x69, 0xE3, 0x6B, 0xF5, 0xCE, 0xD6, 0xD7, 0x0C, 0xE6, 0x5A, 0x57, 0x2D, 0x56, - 0xA9, 0xAD, 0xA8, 0xF6, 0x5A, 0x4F, 0x5F, 0x4F, 0xF0, 0xF9, 0xFE, 0xDD, 0x2D, 0xA7, 0xF4, 0xA8, - 0xAB, 0x84, 0xD9, 0xB4, 0xDC, 0x62, 0xBD, 0x5F, 0xE3, 0x29, 0xF5, 0x39, 0x59, 0xDC, 0x84, 0xAA, - 0x1B, 0xDE, 0xC5, 0x90, 0xAA, 0x5B, 0xDF, 0xC1, 0x9C, 0x6A, 0xD0, 0x69, 0x61, 0xA3, 0xAA, 0x5C, - 0x07, 0x0B, 0x59, 0x55, 0x45, 0x87, 0x85, 0xB6, 0x55, 0x65, 0xC2, 0x9A, 0x63, 0x62, 0xCD, 0x87, - 0x55, 0xDE, 0xD0, 0x4A, 0x30, 0x22, 0x8F, 0xB9, 0x55, 0x2D, 0x17, 0xB1, 0x44, 0x2C, 0x1B, 0xD7, - 0xC2, 0x46, 0x56, 0x49, 0xAC, 0x4F, 0xB1, 0xB2, 0x4A, 0x44, 0x16, 0x35, 0xB3, 0x1A, 0x93, 0xAC, - 0xCD, 0x95, 0x3E, 0x5B, 0xAB, 0x6D, 0x3B, 0xB4, 0xBA, 0xBB, 0xAB, 0xAD, 0x95, 0xF4, 0xF2, 0xA7, - 0x98, 0x71, 0x3A, 0xCF, 0xE8, 0x2A, 0x21, 0x88, 0x17, 0x9F, 0x85, 0x46, 0x57, 0xEF, 0x58, 0x3C, - 0xA6, 0xD7, 0x82, 0xA1, 0x2C, 0x6E, 0x7A, 0xDD, 0xA7, 0xB7, 0x40, 0x1F, 0x6D, 0x0B, 0x2C, 0x76, - 0x5D, 0x6C, 0x7E, 0xB5, 0xFA, 0xBD, 0xB3, 0xFD, 0xF5, 0xE4, 0xF4, 0xF0, 0x78, 0xF7, 0xF4, 0x7B, - 0x8F, 0xF5, 0xD5, 0xC7, 0x9A, 0x77, 0x32, 0xBF, 0x4A, 0xF6, 0xBC, 0x1F, 0xFB, 0xAB, 0x35, 0xEC, - 0x3B, 0x1A, 0x60, 0x25, 0x46, 0x25, 0x2C, 0xB0, 0x12, 0x46, 0x09, 0x64, 0x16, 0x36, 0xC4, 0xFA, - 0x0E, 0x37, 0xC3, 0x04, 0x29, 0x52, 0x9E, 0x0B, 0x08, 0x14, 0xEB, 0x9D, 0xDF, 0x77, 0x23, 0xD2, - 0x4A, 0xBA, 0x56, 0xDC, 0x4F, 0x32, 0x54, 0xE6, 0x9A, 0x6F, 0xF9, 0x65, 0x21, 0x85, 0x67, 0x22, - 0xAE, 0x49, 0xF5, 0xD4, 0xB5, 0xE0, 0x7E, 0xB2, 0xB9, 0x78, 0xBB, 0x90, 0x2C, 0xB8, 0x83, 0x8D, - 0x2D, 0x64, 0x94, 0xE1, 0x33, 0x17, 0xA7, 0x22, 0x64, 0xB2, 0xDC, 0x52, 0xC6, 0x58, 0xEB, 0x58, - 0x69, 0x25, 0x90, 0xD2, 0xC6, 0x5A, 0x9F, 0x95, 0x56, 0xCF, 0x4E, 0x79, 0x63, 0x2D, 0xDD, 0xE1, - 0x3E, 0xC5, 0x5C, 0x4B, 0x10, 0x16, 0x34, 0xD8, 0x52, 0xA3, 0xC5, 0x4C, 0xB6, 0xA2, 0xA3, 0xC5, - 0x8C, 0xB6, 0xD4, 0xE8, 0x13, 0xCC, 0xB6, 0x04, 0xC0, 0xD3, 0x92, 0x1F, 0xE5, 0x7C, 0xD0, 0xAB, - 0x27, 0x7B, 0x8C, 0xD4, 0xCE, 0xB9, 0x26, 0x5C, 0x82, 0xE0, 0x37, 0xE2, 0xE6, 0x25, 0xF2, 0xFC, - 0x7B, 0x32, 0xC5, 0x2A, 0x84, 0xFE, 0x66, 0xC6, 0xD8, 0xB9, 0x7A, 0xC6, 0x79, 0xD6, 0xD8, 0x7C, - 0x00, 0x7F, 0x45, 0x73, 0xEC, 0xDC, 0x51, 0x18, 0x01, 0xBE, 0x14, 0x2E, 0xF8, 0x8C, 0x00, 0x2D, - 0x28, 0xFC, 0x9E, 0xF8, 0xD5, 0x57, 0x8E, 0x41, 0xD2, 0x56, 0x52, 0x9A, 0x86, 0x48, 0xBB, 0x9E, - 0xDF, 0x26, 0xA9, 0xD5, 0x58, 0xE2, 0xC6, 0x62, 0x37, 0xBA, 0xB3, 0xF1, 0x72, 0xEE, 0x40, 0xE7, - 0x5A, 0x2F, 0xE7, 0x2B, 0x96, 0xE7, 0x9A, 0x2F, 0xE7, 0x82, 0xC8, 0xB1, 0x5F, 0xE2, 0x2C, 0xE3, - 0x2B, 0x6A, 0xBE, 0x5E, 0x61, 0x91, 0x0B, 0x15, 0xE1, 0x22, 0x66, 0xCB, 0xB9, 0x7D, 0xFB, 0xED, - 0x96, 0xF3, 0xAC, 0x8F, 0xF7, 0x6A, 0x31, 0x74, 0x8D, 0x7A, 0x0E, 0xCE, 0x59, 0x6B, 0x9E, 0xAF, - 0x82, 0x6D, 0xC3, 0xF3, 0xD5, 0xB0, 0x6D, 0x77, 0xBE, 0x1A, 0x79, 0xC6, 0xBB, 0x4A, 0xE1, 0xFC, - 0x2F, 0x64, 0x87, 0xCB, 0x18, 0xD5, 0x4A, 0x18, 0x2E, 0xEE, 0x60, 0x55, 0x2B, 0x03, 0x75, 0x61, - 0xF3, 0x57, 0x09, 0xA0, 0x77, 0x33, 0x40, 0xCD, 0xDF, 0x54, 0x09, 0xEC, 0x15, 0xE8, 0xD1, 0x4A, - 0x18, 0x83, 0xE6, 0x1B, 0x2A, 0xCB, 0xDA, 0x82, 0xCA, 0x98, 0x7B, 0xC4, 0xAA, 0x9C, 0x6F, 0xF1, - 0xF1, 0x55, 0x64, 0xF5, 0xAC, 0x7B, 0x5E, 0x76, 0xEB, 0xF5, 0xD9, 0x81, 0xB4, 0x95, 0x47, 0xFA, - 0x82, 0x50, 0x2D, 0xFA, 0x96, 0x31, 0x1F, 0x50, 0x68, 0x25, 0xBB, 0xA6, 0x8A, 0x08, 0x63, 0xD7, - 0x04, 0xDB, 0x8F, 0x5B, 0x13, 0xBE, 0x65, 0x6A, 0x4E, 0x9D, 0x5A, 0xD3, 0x2C, 0x2C, 0x17, 0x4E, - 0xD6, 0xAC, 0x21, 0x0D, 0x43, 0x4E, 0x4D, 0xF5, 0x3D, 0xA7, 0x05, 0x19, 0x88, 0xBC, 0x8D, 0xCC, - 0xCC, 0xEB, 0x46, 0x3B, 0xB0, 0x19, 0x39, 0xF5, 0xE1, 0x53, 0x81, 0x21, 0x66, 0xD2, 0xB7, 0xCC, - 0x30, 0x7C, 0x0A, 0xF5, 0x73, 0x40, 0xE1, 0x4B, 0x60, 0x86, 0xA7, 0x17, 0x75, 0x5C, 0xE2, 0xE0, - 0x29, 0xF6, 0xDD, 0x8E, 0xB7, 0xD2, 0xCC, 0xAA, 0xF4, 0xBD, 0x53, 0xE9, 0xD6, 0x45, 0xAD, 0x20, - 0x31, 0xBA, 0x4B, 0xA4, 0x4F, 0xB1, 0x16, 0x89, 0x77, 0x9A, 0x42, 0x8A, 0x47, 0xFF, 0x44, 0xA5, - 0xF0, 0x3E, 0x25, 0x85, 0xF7, 0x45, 0xCA, 0x67, 0x86, 0xF4, 0x47, 0xD6, 0x3B, 0x5E, 0x7A, 0xB3, - 0x04, 0x09, 0x65, 0xB8, 0x4C, 0xC8, 0xEF, 0x9E, 0xE2, 0xAE, 0xD9, 0x85, 0xD7, 0x69, 0x68, 0xBA, - 0x38, 0x7F, 0xE1, 0xDA, 0x74, 0xC6, 0x39, 0x3E, 0x80, 0xD4, 0xA7, 0xE8, 0xAF, 0x48, 0x00, 0x35, - 0xE5, 0x3B, 0x2D, 0x00, 0x66, 0xB8, 0xCB, 0x78, 0xEB, 0xF9, 0xDB, 0x6F, 0xF0, 0x90, 0xB3, 0x6E, - 0xBC, 0x77, 0x75, 0x98, 0xCA, 0x78, 0xF3, 0x29, 0x1F, 0xD0, 0xD3, 0xBB, 0xCD, 0xBA, 0x13, 0xFF, - 0x47, 0x07, 0x3C, 0xCC, 0xA6, 0x4F, 0x17, 0x5A, 0x06, 0xD3, 0x7D, 0xB7, 0x0A, 0x51, 0x38, 0x56, - 0xCE, 0xBE, 0x3F, 0xF3, 0xBF, 0x59, 0xD5, 0x36, 0xE7, 0xBC, 0x01, 0x1B, 0x1C, 0x25, 0x59, 0x67, - 0xBA, 0x63, 0x7D, 0xFF, 0x5E, 0x7E, 0x9F, 0x59, 0xC8, 0x4C, 0x08, 0x19, 0xE7, 0xEE, 0x3B, 0x07, - 0x1F, 0x71, 0x39, 0x2D, 0x81, 0x92, 0xC3, 0xED, 0x40, 0x35, 0x9B, 0x34, 0x26, 0x82, 0x54, 0x68, - 0x44, 0x79, 0x3D, 0x0A, 0x13, 0x88, 0x85, 0xFB, 0x16, 0x5C, 0x7F, 0x9D, 0x38, 0xAF, 0x22, 0x28, - 0xB9, 0x93, 0x8D, 0xFD, 0x3C, 0x68, 0xCB, 0xCB, 0x0F, 0xAF, 0xC3, 0x97, 0x31, 0xBF, 0xF9, 0xC4, - 0xA3, 0x6C, 0x1C, 0xCD, 0x57, 0xE7, 0x25, 0x92, 0xB3, 0x73, 0x60, 0x79, 0x63, 0xF3, 0x3E, 0xA0, - 0x46, 0xF6, 0x81, 0xC1, 0x15, 0xC4, 0x1F, 0xD3, 0x5B, 0x23, 0x3F, 0x05, 0xC1, 0xA8, 0xE0, 0x8F, - 0x9E, 0x7A, 0xC6, 0xA4, 0x05, 0x70, 0x32, 0x82, 0xDF, 0x69, 0x3F, 0x77, 0x46, 0x71, 0xF6, 0x36, - 0x87, 0x5B, 0xB0, 0xE5, 0xDB, 0xD1, 0xBD, 0x23, 0x6F, 0x05, 0xB4, 0x33, 0x4E, 0x8F, 0x65, 0xD7, - 0x96, 0xEF, 0x09, 0xA6, 0x36, 0xAF, 0x99, 0x30, 0xEC, 0x7B, 0xE2, 0xEA, 0x2D, 0x09, 0x0A, 0x2D, - 0x16, 0x33, 0x4F, 0x21, 0x73, 0xD7, 0xD8, 0x79, 0xE7, 0x6A, 0x0A, 0xC0, 0xD5, 0x2C, 0x7F, 0x12, - 0xF6, 0x8B, 0x26, 0x61, 0x1F, 0x9A, 0xFE, 0x4D, 0xA6, 0x41, 0xD2, 0x73, 0xF1, 0x99, 0xC0, 0x09, - 0xFC, 0xBB, 0x99, 0x86, 0x1D, 0xCF, 0x5F, 0xE7, 0xB4, 0xF6, 0x0F, 0x87, 0x51, 0x1A, 0x81, 0x52, - 0x50, 0xE9, 0x8D, 0x85, 0x9F, 0x5C, 0x2A, 0xCD, 0x35, 0x8C, 0x9D, 0xE8, 0x68, 0x52, 0x2A, 0x9B, - 0xE4, 0x05, 0x4C, 0xC7, 0x0E, 0xC6, 0xB1, 0x99, 0xD2, 0x3F, 0xB3, 0x1D, 0x14, 0xB0, 0x20, 0xAE, - 0x00, 0x84, 0xE1, 0xC7, 0xB8, 0x7F, 0x39, 0xF6, 0x2B, 0x02, 0xA1, 0x0D, 0x42, 0xDE, 0xB8, 0xAD, - 0x11, 0x89, 0xB0, 0xB2, 0x56, 0x1E, 0x07, 0x70, 0x50, 0xA7, 0xFC, 0x6E, 0x71, 0x1D, 0x0C, 0xD3, - 0xC7, 0x8C, 0xDE, 0xA3, 0x83, 0x00, 0xDE, 0x34, 0x49, 0x00, 0xB1, 0x96, 0xCC, 0x41, 0x93, 0xAA, - 0x26, 0x1E, 0x86, 0x4C, 0x46, 0xB5, 0xE9, 0x85, 0x01, 0x05, 0xC1, 0x12, 0x8A, 0xBB, 0x34, 0x4A, - 0xFB, 0xA4, 0xBC, 0x49, 0x64, 0x6E, 0x38, 0x99, 0x26, 0x0B, 0x21, 0xA0, 0x57, 0xDC, 0x0A, 0x13, - 0xAA, 0xC7, 0xFE, 0xAC, 0xC6, 0x1E, 0xA2, 0xFE, 0xE4, 0xA1, 0xAD, 0xE1, 0x15, 0x60, 0x29, 0x48, - 0x52, 0x94, 0x40, 0x68, 0xF6, 0x44, 0x86, 0xF6, 0x01, 0x7D, 0x32, 0xE4, 0x0D, 0x15, 0xAA, 0x65, - 0x34, 0x06, 0xB4, 0xC1, 0x56, 0x87, 0xC1, 0x93, 0x44, 0x2A, 0x11, 0x89, 0x56, 0x7B, 0x26, 0xEC, - 0xA0, 0x98, 0x32, 0x4F, 0x9C, 0xFB, 0x11, 0x08, 0xB9, 0x70, 0xE5, 0x93, 0xAB, 0x09, 0x54, 0x3C, - 0x2E, 0xF6, 0xD1, 0x90, 0x43, 0xC3, 0x20, 0x2D, 0xB6, 0xEA, 0xCA, 0x32, 0x26, 0x40, 0x5F, 0xA4, - 0xCC, 0x5E, 0x8D, 0x3A, 0x7C, 0x96, 0xFA, 0x41, 0x3B, 0xEC, 0x27, 0x6C, 0x82, 0xCA, 0xEE, 0xAB, - 0x70, 0x1A, 0x74, 0xC3, 0x4E, 0x04, 0x42, 0x9D, 0xC7, 0xF9, 0x43, 0x80, 0xF8, 0x65, 0x12, 0x8E, - 0x67, 0xF3, 0x81, 0x28, 0xFD, 0x78, 0x06, 0x5A, 0xAB, 0x34, 0x42, 0x6F, 0xCF, 0x5F, 0xD6, 0xB7, - 0x7C, 0x8E, 0x22, 0xE5, 0x50, 0x31, 0x9B, 0x57, 0x81, 0x3F, 0xF9, 0x14, 0xF0, 0xFB, 0x22, 0xC6, - 0x75, 0xE2, 0xD3, 0xFF, 0xF0, 0x1C, 0xA9, 0x87, 0x8F, 0x2E, 0x1E, 0xE6, 0x1E, 0xDD, 0x61, 0x8A, - 0xD5, 0xB0, 0x56, 0x1E, 0x6B, 0xBA, 0xCB, 0xF0, 0xCF, 0xEA, 0xA8, 0x05, 0x73, 0xF2, 0x42, 0x67, - 0xED, 0x8B, 0xC2, 0xB3, 0x56, 0x82, 0xFB, 0xAC, 0x87, 0x2D, 0x97, 0x02, 0xAF, 0xF3, 0x0F, 0xDB, - 0x36, 0xAC, 0x2A, 0xF4, 0x5D, 0x41, 0xCB, 0x86, 0x0A, 0xC5, 0x7D, 0x39, 0x0E, 0x46, 0x57, 0x51, - 0xC7, 0x08, 0xE2, 0x00, 0xE3, 0xA4, 0x78, 0x42, 0xA7, 0x07, 0x39, 0xE1, 0x45, 0xC8, 0x0B, 0x46, - 0x45, 0xDD, 0xD6, 0x8E, 0x0C, 0x0B, 0x0F, 0x0E, 0xC7, 0x51, 0xA3, 0x40, 0x56, 0x4F, 0x8D, 0xFD, - 0xFB, 0x22, 0xBB, 0x71, 0xCF, 0xDE, 0x8B, 0xCA, 0x18, 0xB4, 0x13, 0x6A, 0x5D, 0x08, 0x02, 0xD4, - 0x19, 0x89, 0xAA, 0xF4, 0xBB, 0x48, 0xD0, 0x23, 0x82, 0x78, 0xFA, 0x42, 0xA5, 0x1A, 0x6D, 0x75, - 0x78, 0x4E, 0x9B, 0x5C, 0x97, 0x0C, 0xA6, 0x9E, 0xED, 0xC1, 0xF5, 0x94, 0x55, 0xCF, 0x5F, 0xEC, - 0x79, 0xB3, 0xB2, 0x53, 0x31, 0xE7, 0x19, 0x5C, 0xE5, 0xC2, 0x07, 0x2A, 0x27, 0x47, 0xFB, 0x9A, - 0xD1, 0x62, 0x57, 0x78, 0x6C, 0x9C, 0xC4, 0x10, 0xEE, 0x20, 0x82, 0x0D, 0x4A, 0x3C, 0x1F, 0x32, - 0x56, 0x1A, 0x55, 0x3D, 0x43, 0x76, 0xE3, 0xEC, 0x07, 0xE7, 0xD3, 0x4A, 0xCE, 0x1B, 0xA3, 0x60, - 0x38, 0x0C, 0xC6, 0xED, 0x78, 0xBC, 0x1A, 0x04, 0x41, 0x7D, 0x72, 0xB9, 0x2A, 0x36, 0xF3, 0xCD, - 0xDC, 0x57, 0x46, 0x9C, 0x91, 0x09, 0xFC, 0x27, 0xC4, 0xCE, 0x31, 0xD2, 0x14, 0x9A, 0x7A, 0x4B, - 0xB8, 0x56, 0x0A, 0xE2, 0x62, 0x0B, 0x37, 0x01, 0x14, 0xA5, 0x22, 0xB3, 0x58, 0x58, 0x5C, 0x4E, - 0x7F, 0xBD, 0xCD, 0x32, 0xEE, 0x80, 0x45, 0x8C, 0x1D, 0x73, 0x2E, 0x0B, 0x38, 0x79, 0x47, 0x33, - 0x56, 0x3D, 0xF6, 0xCF, 0x04, 0x05, 0x9C, 0x90, 0xF1, 0x22, 0xFC, 0x33, 0x60, 0xB8, 0xCF, 0xC4, - 0xBD, 0x9E, 0x4C, 0x71, 0x21, 0x1F, 0x07, 0xF4, 0xC3, 0xB1, 0xC7, 0x86, 0xB1, 0x61, 0xB4, 0x19, - 0x16, 0x36, 0x51, 0x57, 0xBA, 0x88, 0x00, 0xD8, 0x48, 0x17, 0x26, 0x2C, 0x6A, 0x1A, 0x43, 0xC0, - 0x95, 0x00, 0xF0, 0x03, 0x7E, 0xC2, 0xF2, 0xF5, 0x49, 0x1B, 0x48, 0xE1, 0x40, 0x82, 0x09, 0xE7, - 0x11, 0x6C, 0x3C, 0x0F, 0xFF, 0xA2, 0x9A, 0x4D, 0x66, 0x91, 0x12, 0x4E, 0xB3, 0x18, 0x0C, 0x5C, - 0xA0, 0xFC, 0xE8, 0x07, 0xFC, 0x00, 0x8D, 0x2E, 0x87, 0x31, 0x1C, 0x75, 0xE4, 0xED, 0x95, 0x69, - 0x6C, 0x0E, 0x82, 0x33, 0x34, 0x26, 0x4D, 0xF2, 0xE7, 0x67, 0x1D, 0x00, 0x65, 0x90, 0x30, 0x65, - 0xF6, 0x65, 0x25, 0x1B, 0x0C, 0xF4, 0x8D, 0x9C, 0xEF, 0xD0, 0x74, 0xFE, 0x4A, 0x63, 0x5F, 0x5D, - 0x78, 0xC1, 0x4F, 0x12, 0xB2, 0x0D, 0x52, 0x40, 0x35, 0xCC, 0xFA, 0xDD, 0x01, 0xBD, 0xD9, 0xCD, - 0x55, 0xA8, 0x2D, 0x73, 0xFC, 0x33, 0x84, 0x0F, 0x4B, 0xC7, 0x93, 0x4E, 0xCA, 0x42, 0xB2, 0xEB, - 0x27, 0xF0, 0x46, 0x66, 0x08, 0x39, 0xBB, 0xAF, 0xE2, 0x3E, 0x6E, 0x8C, 0x46, 0x1C, 0x3D, 0x7E, - 0xEE, 0x83, 0x36, 0x53, 0xE5, 0xD9, 0xD6, 0xEE, 0x18, 0xE8, 0x36, 0x22, 0xB3, 0xFF, 0x06, 0xEC, - 0x32, 0x82, 0x07, 0x1D, 0xE4, 0x0E, 0x72, 0xAE, 0xD2, 0x79, 0xAB, 0xE0, 0x64, 0x18, 0xEC, 0x51, - 0x86, 0xF4, 0x24, 0xFF, 0x83, 0xF4, 0x4A, 0xFB, 0x14, 0xA0, 0x73, 0x1D, 0x5F, 0xCD, 0x38, 0x34, - 0x01, 0x81, 0x12, 0xDE, 0x9A, 0x20, 0x12, 0x8D, 0x07, 0x0E, 0x1A, 0x73, 0xD5, 0x24, 0xE0, 0xB0, - 0x29, 0x05, 0x21, 0x09, 0x6F, 0x05, 0x73, 0xFE, 0xA6, 0x7E, 0x28, 0x04, 0x41, 0xC4, 0xA7, 0xAC, - 0xD9, 0x78, 0xA0, 0x61, 0x1C, 0xED, 0x91, 0x31, 0x8B, 0x52, 0x10, 0x51, 0x40, 0x06, 0xED, 0x0B, - 0xA1, 0xCA, 0xC3, 0xBA, 0x48, 0x90, 0x19, 0x9D, 0x9D, 0xDF, 0x64, 0x42, 0x82, 0xB6, 0x8C, 0x3A, - 0x2F, 0xC5, 0x7C, 0x67, 0x6B, 0xAD, 0x1B, 0xB5, 0xDE, 0xC0, 0x64, 0x19, 0x55, 0x0E, 0x7B, 0x98, - 0x93, 0xC6, 0x12, 0x73, 0x89, 0xD8, 0x35, 0xE4, 0x35, 0x3B, 0xE3, 0xBA, 0xC2, 0x9D, 0x43, 0x89, - 0xC4, 0x9C, 0x5B, 0x43, 0xF0, 0xB3, 0x25, 0x6F, 0x74, 0xAA, 0xE0, 0x94, 0xE5, 0x4C, 0x95, 0xA9, - 0x4C, 0x48, 0x89, 0x9A, 0x35, 0xF8, 0xA1, 0xC3, 0x0F, 0x2A, 0x61, 0xB7, 0xA6, 0xE7, 0xDD, 0x5D, - 0x76, 0xCD, 0xB7, 0x04, 0x7C, 0x24, 0xEF, 0x61, 0x6C, 0xC9, 0x82, 0xDA, 0x6E, 0x3D, 0x56, 0x51, - 0x1B, 0x61, 0x8E, 0xF5, 0xFC, 0xD0, 0xBC, 0x83, 0x28, 0x54, 0x6F, 0x3E, 0xAC, 0x51, 0x4F, 0x04, - 0xA3, 0xC3, 0x4F, 0x02, 0xC8, 0xA1, 0x19, 0x0A, 0x01, 0x4D, 0xE4, 0xA4, 0x8E, 0xF1, 0xF1, 0xB0, - 0xD5, 0x41, 0xE8, 0xB0, 0x65, 0x2A, 0x25, 0x3F, 0x2F, 0x5B, 0x1A, 0xA6, 0x77, 0x5F, 0xC0, 0xD9, - 0xBF, 0xC2, 0xFC, 0xA7, 0x36, 0xC6, 0x89, 0x66, 0xDD, 0x2C, 0x60, 0xA6, 0x1D, 0x39, 0xA4, 0x8F, - 0xCD, 0xB7, 0xE0, 0x02, 0x52, 0x5C, 0xB3, 0x26, 0x76, 0x8D, 0x49, 0x22, 0xBD, 0x98, 0xC4, 0x5C, - 0x12, 0x04, 0x70, 0xAE, 0xC2, 0x57, 0x4A, 0xC1, 0x47, 0xC8, 0xFB, 0x2A, 0xA2, 0xA4, 0x86, 0x5D, - 0x45, 0x56, 0x98, 0x10, 0xED, 0x7A, 0x6A, 0x3C, 0xD8, 0xA6, 0xF6, 0x41, 0x17, 0xB7, 0x95, 0xC0, - 0x18, 0x05, 0x87, 0x16, 0x06, 0x9C, 0x49, 0x64, 0x2B, 0xF4, 0x44, 0xC3, 0x4D, 0x0B, 0x13, 0x9F, - 0x49, 0x1C, 0xF4, 0xC4, 0x8C, 0xFD, 0x9C, 0x2B, 0x46, 0x70, 0xAC, 0x78, 0xAF, 0x34, 0xF7, 0x8E, - 0xF4, 0x9E, 0xEA, 0x70, 0xD7, 0x28, 0xC6, 0xA3, 0xEE, 0x58, 0x06, 0xA2, 0x25, 0x4F, 0x50, 0x77, - 0x7F, 0x15, 0x17, 0x1D, 0x6B, 0x93, 0x85, 0x11, 0xA0, 0xB1, 0x82, 0x5C, 0x68, 0xC4, 0x89, 0xA9, - 0xDC, 0x4D, 0xE0, 0x2B, 0x26, 0x7F, 0x02, 0xD4, 0xE5, 0x04, 0xBF, 0x0B, 0xFA, 0x51, 0x57, 0x3E, - 0x65, 0x92, 0xB7, 0x24, 0x45, 0x28, 0x9B, 0xE5, 0xE8, 0x94, 0x1A, 0x82, 0x63, 0x6B, 0xA6, 0x1F, - 0xDF, 0xE6, 0x84, 0x75, 0xE8, 0x91, 0x9D, 0x73, 0x75, 0x26, 0x03, 0x4D, 0x44, 0xEF, 0x94, 0xC4, - 0x12, 0xF5, 0xB1, 0xAE, 0x08, 0xD0, 0x9A, 0xE9, 0x2C, 0xB3, 0x31, 0x31, 0x1D, 0xBE, 0x43, 0xEC, - 0x4E, 0x0E, 0x4B, 0x09, 0xC1, 0x44, 0xAC, 0x59, 0xE8, 0xBA, 0xC9, 0xF2, 0x36, 0xA3, 0x13, 0x3D, - 0x03, 0xA5, 0x26, 0xF4, 0x0B, 0x36, 0x82, 0xA9, 0x8C, 0x7B, 0xA9, 0x8E, 0xB4, 0x3B, 0x56, 0x4F, - 0x03, 0xCE, 0xCE, 0x45, 0x0A, 0xC8, 0x39, 0x0F, 0xD4, 0x53, 0xA0, 0xC2, 0x7A, 0xBD, 0xD9, 0xC8, - 0x7F, 0xA1, 0xCE, 0x7B, 0xA0, 0x0B, 0x7A, 0x91, 0x4E, 0x34, 0xEF, 0x89, 0x52, 0x81, 0x57, 0x41, - 0x81, 0x05, 0xBB, 0xC8, 0x3C, 0x8D, 0xB6, 0x2C, 0x2E, 0xD8, 0x40, 0xB1, 0xAC, 0x9A, 0x6F, 0x0D, - 0x86, 0xDA, 0xCF, 0x3D, 0xD5, 0xB2, 0xEE, 0x01, 0x19, 0x1D, 0x7A, 0xC3, 0xF9, 0x6A, 0x5B, 0x61, - 0xCC, 0x00, 0x86, 0x92, 0x02, 0x39, 0xC9, 0xE0, 0xED, 0x7B, 0x1B, 0xE9, 0xCE, 0x2D, 0xBC, 0xC4, - 0x5B, 0x1A, 0xC3, 0x0C, 0x83, 0x9F, 0xE9, 0x21, 0x8E, 0xAE, 0xEE, 0xD6, 0x07, 0x8E, 0xBD, 0x80, - 0x16, 0xEF, 0x65, 0xB9, 0x75, 0xA9, 0xF9, 0x52, 0x2E, 0xF7, 0x53, 0x11, 0x8A, 0x1A, 0xA3, 0x62, - 0xAB, 0xD7, 0x1D, 0xA7, 0x7F, 0x3A, 0x06, 0x9F, 0xA9, 0x97, 0x9C, 0x0A, 0xEF, 0xCE, 0xD7, 0x1A, - 0x3A, 0x32, 0x34, 0xC4, 0xF0, 0x9E, 0x19, 0xAC, 0x4D, 0xD0, 0xF8, 0xD1, 0x35, 0xF8, 0x92, 0x09, - 0x57, 0x34, 0x11, 0xEF, 0x39, 0x91, 0xF1, 0x98, 0x11, 0xA8, 0x0C, 0x75, 0x8C, 0xEE, 0x5C, 0xA7, - 0xC7, 0x14, 0x02, 0x10, 0x04, 0x64, 0x5D, 0xC7, 0x90, 0x63, 0xD4, 0x22, 0x6F, 0x70, 0x2A, 0x52, - 0x16, 0xCC, 0x4E, 0x7C, 0x39, 0x8C, 0xFE, 0xA2, 0x23, 0x62, 0x34, 0xF1, 0x49, 0xAD, 0xF2, 0xF4, - 0x6A, 0xF1, 0x5F, 0x91, 0xC1, 0xE5, 0x87, 0x35, 0xFE, 0x61, 0xC4, 0x19, 0x36, 0x18, 0xF2, 0xF3, - 0xAC, 0x3F, 0x33, 0xEB, 0xAE, 0x3B, 0x45, 0xD4, 0xCE, 0x7B, 0xB5, 0x45, 0xDA, 0xEC, 0x0E, 0x93, - 0xA8, 0xF4, 0xCA, 0x7B, 0xEE, 0x23, 0x2E, 0x3C, 0xD3, 0x19, 0x89, 0x67, 0x3A, 0x77, 0xA3, 0xF1, - 0x73, 0x45, 0xE5, 0x51, 0x59, 0x2A, 0x93, 0x7E, 0xAD, 0xE6, 0x50, 0x99, 0x08, 0x2C, 0x8E, 0xA1, - 0x44, 0xF9, 0x1B, 0xC2, 0xEC, 0x13, 0x4E, 0x39, 0x97, 0x7C, 0x1C, 0x88, 0x78, 0x6A, 0x54, 0x9A, - 0x18, 0x52, 0x7F, 0xF9, 0xD0, 0x3C, 0x5C, 0xB8, 0xF8, 0x89, 0xD2, 0x34, 0x1C, 0x93, 0xC4, 0xC4, - 0xE2, 0xD1, 0x0F, 0x50, 0xC3, 0xBB, 0xF9, 0x93, 0x31, 0x18, 0x01, 0xE4, 0x9C, 0x03, 0xD2, 0x33, - 0xCC, 0x8E, 0x4B, 0x2E, 0x8A, 0x5A, 0xA2, 0xA8, 0x95, 0x2D, 0x5A, 0x13, 0x45, 0x6B, 0xAA, 0xC8, - 0x8B, 0x80, 0x2B, 0x33, 0xFB, 0x0E, 0xA1, 0xAD, 0x3A, 0x78, 0x41, 0x8A, 0xDB, 0x60, 0xC6, 0xF9, - 0x1D, 0x6A, 0x3C, 0xB2, 0x6A, 0xB0, 0xAA, 0x38, 0x4A, 0x50, 0x77, 0x88, 0x4C, 0x00, 0x29, 0x8A, - 0x7D, 0x67, 0x8E, 0x0B, 0xDA, 0x7F, 0x46, 0xEC, 0x69, 0xBA, 0x1E, 0x89, 0xBD, 0xA1, 0xD4, 0x0C, - 0xFD, 0x02, 0x1E, 0xE3, 0x7C, 0x57, 0x3C, 0x3A, 0xD8, 0xA7, 0x87, 0x27, 0x47, 0x47, 0x05, 0x0A, - 0x0E, 0x10, 0xB1, 0x79, 0xCD, 0xB3, 0xBC, 0x8B, 0x75, 0x53, 0x3C, 0x13, 0x02, 0xE5, 0xF4, 0xEB, - 0xC9, 0x00, 0x9D, 0xD1, 0x7D, 0x63, 0xA2, 0x1A, 0x7B, 0xC1, 0x28, 0xF1, 0x54, 0x59, 0x33, 0xAA, - 0x08, 0x9B, 0x84, 0x17, 0x0E, 0x75, 0x76, 0x30, 0x05, 0x97, 0xF0, 0x49, 0x94, 0x5C, 0xE5, 0xF7, - 0xD8, 0x72, 0x6B, 0xE6, 0xF4, 0xDC, 0x62, 0x32, 0x8C, 0x93, 0xAE, 0x6A, 0x61, 0xE0, 0x0B, 0xC6, - 0xCC, 0xA9, 0x87, 0xC4, 0x2B, 0x49, 0xF0, 0xB3, 0x13, 0xF6, 0x8B, 0xB1, 0x1C, 0xE8, 0xB0, 0xA1, - 0x7C, 0x12, 0xB4, 0x12, 0xDE, 0x42, 0x52, 0x63, 0x78, 0x6E, 0xE7, 0xB2, 0x03, 0x4D, 0x44, 0x5B, - 0xBE, 0xF2, 0x6A, 0xF7, 0x33, 0xF8, 0x37, 0x3D, 0x35, 0xF2, 0xA6, 0x8A, 0x68, 0x92, 0xA4, 0x98, - 0x43, 0xD7, 0x03, 0x6B, 0xCD, 0x86, 0xC5, 0xCF, 0xDA, 0x70, 0xDC, 0xD7, 0x9A, 0x27, 0x4B, 0x56, - 0x17, 0x50, 0x8C, 0x3A, 0x39, 0x4C, 0x8A, 0xA3, 0x3D, 0xC3, 0xC1, 0x96, 0x24, 0xD7, 0x43, 0x4D, - 0x2D, 0xF0, 0x4F, 0x37, 0xB4, 0x93, 0x00, 0x59, 0x98, 0x2A, 0x54, 0x42, 0x13, 0x41, 0xC2, 0x5D, - 0x77, 0x33, 0x11, 0x72, 0x73, 0x19, 0x71, 0x12, 0x37, 0xCE, 0x7D, 0xDC, 0x8E, 0xF1, 0xC7, 0x23, - 0xB8, 0x4A, 0x51, 0x12, 0x8C, 0x62, 0xAE, 0xF7, 0x36, 0x44, 0x79, 0x32, 0x9B, 0x40, 0xA3, 0x35, - 0xAF, 0xAB, 0x5C, 0x0A, 0x42, 0x36, 0x1F, 0x35, 0x70, 0x21, 0x55, 0x94, 0x3A, 0x97, 0x06, 0xD2, - 0x91, 0x41, 0xDA, 0xBE, 0x33, 0xAF, 0x47, 0xDF, 0xD1, 0x8D, 0x98, 0xEE, 0x84, 0xEA, 0x66, 0x79, - 0x82, 0xBA, 0x8D, 0xEB, 0x88, 0xCB, 0xCB, 0x32, 0x5B, 0x02, 0xDA, 0xAF, 0x85, 0x6E, 0x00, 0x40, - 0x81, 0xD3, 0x3C, 0xAF, 0x26, 0xE3, 0x0F, 0x8C, 0x85, 0x1D, 0x49, 0xE4, 0xB6, 0x04, 0xAA, 0xD3, - 0x69, 0x54, 0x64, 0x5C, 0x17, 0x98, 0x10, 0x0E, 0xE5, 0x98, 0x23, 0xE5, 0xA7, 0x4B, 0x9F, 0xFF, - 0xDF, 0xE6, 0xFF, 0x8F, 0x77, 0xF0, 0xE4, 0x95, 0x09, 0x99, 0xAF, 0xC0, 0xDC, 0x66, 0x26, 0xE8, - 0x00, 0xB9, 0x83, 0xD3, 0x8C, 0x7F, 0x9E, 0xF4, 0x41, 0xED, 0x3A, 0x0E, 0x03, 0x7A, 0x9D, 0xBA, - 0x7B, 0xBA, 0xBB, 0x54, 0x13, 0x09, 0xA7, 0xE9, 0x08, 0xD6, 0x33, 0x65, 0x75, 0x60, 0x25, 0xB0, - 0x18, 0x13, 0x2C, 0xDB, 0xC9, 0xD8, 0xAC, 0x60, 0xE5, 0x78, 0xC7, 0xDB, 0x62, 0x07, 0x71, 0x7A, - 0x0C, 0xA6, 0xC6, 0x66, 0x8D, 0xAD, 0xD7, 0xD8, 0x46, 0x8D, 0x3D, 0xC2, 0xE6, 0xAF, 0xDF, 0x9C, - 0x1F, 0x3C, 0x36, 0x93, 0x11, 0x57, 0xE4, 0x1D, 0x04, 0x65, 0x3A, 0x4C, 0x01, 0x02, 0x57, 0x2D, - 0xC1, 0x7C, 0x79, 0xAC, 0x01, 0xA3, 0x3D, 0x1C, 0x9E, 0x4A, 0xCC, 0x8A, 0x14, 0xBA, 0xA9, 0xA9, - 0xCC, 0x95, 0x8A, 0x77, 0x66, 0x04, 0xD8, 0x16, 0xDF, 0xDA, 0xFA, 0x5B, 0x4B, 0x7E, 0x1B, 0xEB, - 0x6F, 0x6B, 0xF2, 0x5B, 0x40, 0x7C, 0x28, 0x3E, 0xAF, 0x93, 0xAE, 0x1D, 0xFD, 0x9D, 0xF9, 0x66, - 0x20, 0xEA, 0x44, 0xF8, 0x51, 0xB8, 0x36, 0xA7, 0xEC, 0x09, 0x07, 0x0E, 0xD9, 0x11, 0x59, 0xAA, - 0xDD, 0x9B, 0xE7, 0xE9, 0xFE, 0xDF, 0x93, 0x6D, 0x17, 0x61, 0x80, 0xBF, 0x74, 0x9F, 0x7C, 0xA4, - 0xC7, 0x8E, 0x8F, 0x34, 0x2A, 0xF5, 0x23, 0xD0, 0xE6, 0x5F, 0x04, 0xA8, 0xFE, 0x17, 0x1F, 0xF8, - 0xB8, 0xDE, 0x9B, 0xBE, 0x3E, 0xE5, 0x6D, 0xBB, 0x8A, 0x56, 0x85, 0xC5, 0xAD, 0xF7, 0x4B, 0xD9, - 0x45, 0x67, 0x7A, 0xBF, 0xE4, 0xAF, 0xB8, 0xC2, 0xD5, 0x23, 0xF4, 0x4A, 0xF9, 0x4B, 0x08, 0xD6, - 0xE3, 0x1D, 0xD6, 0x8F, 0x69, 0x63, 0x16, 0x02, 0xD6, 0xB7, 0xEA, 0xFD, 0x4E, 0x34, 0x52, 0x0E, - 0xF9, 0xF8, 0xFC, 0xAA, 0x9B, 0x52, 0x0A, 0x15, 0x8E, 0xD2, 0x0D, 0xBC, 0x83, 0xE1, 0xFF, 0xA2, - 0xDE, 0x03, 0x6C, 0x71, 0x89, 0x91, 0xD8, 0x3D, 0x09, 0xB5, 0x8C, 0xE3, 0x3E, 0xD5, 0x20, 0xA3, - 0x1E, 0xBD, 0xA5, 0xEA, 0xC7, 0x37, 0xD4, 0xD9, 0x9B, 0x91, 0x20, 0x91, 0xA1, 0xAC, 0xCC, 0x97, - 0x03, 0xB9, 0xDC, 0xC4, 0x17, 0x29, 0xB8, 0xD0, 0x06, 0x22, 0x25, 0x72, 0xD0, 0x77, 0x64, 0x43, - 0x3E, 0x56, 0x4E, 0x44, 0x9F, 0x72, 0x6A, 0x3F, 0xAC, 0x83, 0x8D, 0x31, 0xEA, 0x49, 0x93, 0xA3, - 0x6F, 0x53, 0x3E, 0x2C, 0xA8, 0xB1, 0x86, 0xB9, 0xED, 0xA7, 0xF0, 0xD7, 0x0C, 0xEA, 0x1E, 0xC3, - 0xEB, 0x34, 0xF1, 0xB4, 0x88, 0x2F, 0xF1, 0x8B, 0x69, 0x8D, 0xCD, 0xDE, 0x67, 0x0E, 0x48, 0x5E, - 0xFB, 0x0A, 0x1F, 0xFE, 0xC1, 0x4F, 0x37, 0x51, 0x37, 0xBD, 0x12, 0x8F, 0x10, 0xC0, 0x3F, 0x0C, - 0x46, 0x46, 0x4B, 0x5F, 0xC1, 0x91, 0xED, 0x45, 0x23, 0x18, 0x30, 0xB5, 0xE2, 0x9B, 0xD8, 0x28, - 0x9A, 0x86, 0xAE, 0x7C, 0x29, 0xA2, 0x2B, 0x07, 0x51, 0xE2, 0x05, 0x47, 0xC4, 0x1B, 0x43, 0xCA, - 0x6D, 0x61, 0x32, 0x4F, 0xD2, 0xA0, 0xF3, 0x51, 0x99, 0x77, 0xF1, 0x95, 0xD4, 0xB8, 0xEB, 0x4F, - 0x03, 0x75, 0x14, 0xDF, 0x88, 0x74, 0x30, 0x3E, 0xA8, 0xF2, 0xE5, 0x64, 0x4F, 0x6B, 0xA2, 0x19, - 0x41, 0xCF, 0x01, 0xFA, 0x48, 0xBC, 0xBF, 0x40, 0xFF, 0xBD, 0x0C, 0xD8, 0xCC, 0x73, 0xFB, 0xB9, - 0x94, 0xC3, 0x44, 0x4E, 0x01, 0x6C, 0xE6, 0x9A, 0x6C, 0x17, 0xD4, 0x64, 0x07, 0xEB, 0xBF, 0x07, - 0xA2, 0xE5, 0x25, 0x90, 0xDA, 0xC6, 0x1E, 0xD4, 0xB3, 0x14, 0x3C, 0x15, 0xF9, 0x4E, 0x10, 0x0D, - 0xE0, 0xAA, 0xE9, 0xC5, 0x89, 0x5A, 0x10, 0x37, 0x1D, 0x8B, 0x9A, 0x92, 0x26, 0x22, 0x8F, 0xD4, - 0x58, 0x60, 0x17, 0x3B, 0x8F, 0xBC, 0xE0, 0xAB, 0xE7, 0x55, 0x8B, 0xC6, 0xE0, 0x2D, 0x87, 0x82, - 0x8E, 0x83, 0x75, 0x61, 0xBC, 0xF2, 0xBF, 0xA3, 0xD1, 0x08, 0x88, 0x53, 0x2E, 0xB5, 0x5A, 0xB9, - 0x0D, 0xE4, 0x9B, 0x19, 0x8C, 0xFF, 0x65, 0xCD, 0x21, 0x9F, 0xA7, 0xD4, 0xB0, 0x0C, 0x98, 0x65, - 0x8A, 0x35, 0x12, 0x16, 0x8F, 0xC0, 0x8C, 0x36, 0x8C, 0x87, 0x62, 0xE9, 0x44, 0x61, 0x97, 0x9F, - 0x97, 0xF8, 0xE2, 0x0B, 0x5C, 0x0C, 0x29, 0x75, 0x75, 0x93, 0x6F, 0xE8, 0x0E, 0x24, 0x09, 0x42, - 0x74, 0x06, 0x4A, 0x43, 0xD9, 0x3E, 0xD3, 0xBC, 0x05, 0xCD, 0x1D, 0xBC, 0xD7, 0x72, 0xF1, 0x1E, - 0x89, 0x7C, 0x16, 0x2B, 0x28, 0xCA, 0x80, 0xE5, 0x3D, 0x22, 0x30, 0x2A, 0xD5, 0xC0, 0x0E, 0x2E, - 0xD1, 0x19, 0x4B, 0x1D, 0x98, 0xEB, 0xB9, 0x30, 0xF5, 0xCA, 0x72, 0x80, 0x6A, 0xAD, 0x81, 0x8F, - 0x19, 0xDD, 0x0E, 0xB6, 0xCC, 0x0E, 0x70, 0xA5, 0x09, 0x17, 0x50, 0x9B, 0x57, 0xFD, 0x2C, 0x69, - 0x0F, 0x26, 0x87, 0xFD, 0xDD, 0x1E, 0xB7, 0x8B, 0x7A, 0x14, 0x7C, 0x54, 0xAA, 0xBB, 0xED, 0x12, - 0xDD, 0xB5, 0xD4, 0x5A, 0xC9, 0x50, 0xB0, 0x42, 0xF3, 0x4B, 0xEE, 0x1B, 0x26, 0x11, 0x25, 0x80, - 0x37, 0xF0, 0xEA, 0xF6, 0x88, 0x51, 0x05, 0x76, 0x76, 0xEE, 0x00, 0xCE, 0x65, 0xD3, 0x4A, 0x42, - 0x3E, 0x32, 0xD6, 0xC4, 0x20, 0xB0, 0xBE, 0x04, 0x91, 0x03, 0xB2, 0x65, 0xAC, 0x2D, 0x3C, 0x7E, - 0x09, 0x2C, 0xA2, 0x49, 0x7B, 0x2A, 0x6D, 0x65, 0xE8, 0x43, 0xA2, 0x13, 0xAE, 0xE1, 0xF6, 0xE5, - 0x1E, 0x0C, 0x2D, 0x63, 0xD9, 0xB9, 0xB0, 0x24, 0x80, 0xA2, 0x96, 0x2D, 0xB7, 0xA5, 0xD3, 0xB9, - 0xBF, 0xED, 0x9A, 0x67, 0x7F, 0x2A, 0x1A, 0x04, 0x1C, 0xD4, 0x85, 0xC3, 0x58, 0x33, 0x86, 0xE1, - 0x01, 0xA8, 0xA1, 0x14, 0x35, 0x6F, 0x79, 0x9A, 0x67, 0xD0, 0xC8, 0x02, 0x78, 0x06, 0x10, 0xD4, - 0xFB, 0x3B, 0xB1, 0x45, 0x6A, 0x37, 0x43, 0x10, 0x6F, 0x8E, 0x4E, 0x72, 0xBC, 0x4C, 0x94, 0x3C, - 0x12, 0x0A, 0x01, 0xE5, 0xAE, 0xF7, 0x83, 0x54, 0x5E, 0x81, 0x28, 0xF9, 0x47, 0x89, 0x0B, 0xC2, - 0xA9, 0x73, 0x41, 0x20, 0x00, 0xF7, 0x74, 0x4B, 0xB0, 0x6F, 0x08, 0x63, 0xC2, 0x8A, 0x6F, 0x8F, - 0x78, 0x90, 0x7C, 0x8E, 0x6B, 0x82, 0xE8, 0xA2, 0xE4, 0x55, 0xC1, 0x6F, 0x7D, 0x4F, 0xB5, 0xF6, - 0xA2, 0xA4, 0x5F, 0x1E, 0x5F, 0xBB, 0x07, 0x60, 0xDD, 0x52, 0x22, 0x1A, 0x41, 0x90, 0x91, 0xAE, - 0x03, 0x06, 0x72, 0x61, 0x5F, 0xFB, 0xE0, 0x79, 0x6E, 0xE5, 0x67, 0x9F, 0xE0, 0xF6, 0xF6, 0xA7, - 0x72, 0xFE, 0x6E, 0x39, 0x6E, 0x6E, 0x85, 0x3D, 0xE7, 0xFA, 0xB7, 0xCD, 0xE9, 0x93, 0xDA, 0x69, - 0xA7, 0x36, 0x25, 0x8C, 0xE5, 0x7A, 0xB7, 0xE5, 0x5C, 0xFA, 0x94, 0x6B, 0xDB, 0x4B, 0xA2, 0xDD, - 0x02, 0x5A, 0x28, 0x63, 0x1E, 0x6F, 0x82, 0x31, 0xB8, 0x98, 0xD4, 0xE1, 0xCD, 0x3D, 0xBB, 0x06, - 0xE7, 0x25, 0xA1, 0x49, 0xF9, 0xF6, 0xC5, 0xBB, 0x5C, 0x5D, 0x14, 0x9F, 0x78, 0xA2, 0x6F, 0xDC, - 0xEB, 0xB9, 0x84, 0xAB, 0x01, 0x19, 0x78, 0x05, 0x5A, 0xEF, 0x7D, 0x57, 0x8C, 0xDA, 0xE0, 0x15, - 0x36, 0xF9, 0xFF, 0x8F, 0xF8, 0xFF, 0xBC, 0xD6, 0x96, 0xB0, 0xCE, 0x5D, 0x5E, 0xE5, 0xDD, 0x6D, - 0xBF, 0x25, 0x04, 0xE1, 0x05, 0xFE, 0x3B, 0x42, 0xAF, 0xFC, 0x38, 0x27, 0x7A, 0x9C, 0x03, 0x8C, - 0x93, 0x93, 0x1D, 0xE6, 0x71, 0xDE, 0x30, 0xEF, 0x3A, 0xC0, 0x06, 0xAF, 0xB0, 0xF0, 0x20, 0x29, - 0x8A, 0xCF, 0xA2, 0x63, 0x74, 0x77, 0xB9, 0xD1, 0x8E, 0xFE, 0x36, 0xFA, 0x92, 0x5D, 0x0B, 0x8D, - 0x08, 0x38, 0xD9, 0xF8, 0x35, 0x20, 0xA7, 0xBB, 0xB6, 0xFE, 0x63, 0xE9, 0x8E, 0x5B, 0x9B, 0x9D, - 0xE2, 0x53, 0x98, 0x90, 0xC1, 0xF7, 0xC7, 0x81, 0x67, 0x67, 0x02, 0x85, 0xC8, 0x95, 0x22, 0x17, - 0xAB, 0x15, 0x76, 0x7B, 0xE4, 0xAB, 0xA6, 0xA0, 0xDD, 0xC7, 0x5E, 0xD8, 0xE1, 0x24, 0x59, 0x6C, - 0x0B, 0x3C, 0x01, 0xC9, 0x88, 0x0F, 0x00, 0x28, 0xC2, 0x90, 0x24, 0x15, 0x26, 0x64, 0x65, 0x11, - 0xF7, 0xFF, 0x65, 0x04, 0xA1, 0x1B, 0x98, 0x06, 0x0B, 0x14, 0x3E, 0x78, 0x79, 0x4A, 0x27, 0x48, - 0xCB, 0x51, 0x31, 0xD9, 0xDE, 0xDA, 0xF4, 0x98, 0xA8, 0x1F, 0xF6, 0x52, 0xF1, 0xA2, 0x68, 0x67, - 0x0C, 0xC2, 0x98, 0xBC, 0x4F, 0xEE, 0x63, 0xA2, 0x5D, 0x22, 0x47, 0x27, 0xE6, 0x77, 0xAB, 0x68, - 0x88, 0x59, 0x46, 0xF9, 0x4E, 0x11, 0xF0, 0xBB, 0x31, 0xF6, 0xAB, 0x66, 0x05, 0xFB, 0x09, 0x20, - 0x7F, 0x2F, 0xD4, 0x21, 0x00, 0x11, 0x78, 0x12, 0xED, 0x0E, 0x67, 0x18, 0x9D, 0x09, 0xA0, 0xC8, - 0x04, 0xB8, 0xE0, 0xF9, 0x10, 0x82, 0x46, 0x91, 0x5F, 0x7A, 0xE2, 0x49, 0x9A, 0x80, 0x71, 0x5B, - 0x6C, 0xE2, 0x04, 0x57, 0xDE, 0xCF, 0x05, 0x70, 0x30, 0xDF, 0xA9, 0x8A, 0xBA, 0x4B, 0x7A, 0xD3, - 0xCA, 0x81, 0x5D, 0x86, 0xC3, 0x70, 0x1C, 0x60, 0x94, 0x61, 0x8E, 0x85, 0xBA, 0x19, 0xEA, 0x9A, - 0xA6, 0x53, 0x06, 0x93, 0x34, 0x53, 0xC5, 0x44, 0x0C, 0x61, 0x1E, 0x49, 0x39, 0x9B, 0xA6, 0xD2, - 0xEE, 0x17, 0x24, 0xEC, 0x21, 0x3F, 0x72, 0xEA, 0xC9, 0x55, 0x9C, 0x3E, 0x94, 0x71, 0x86, 0x70, - 0x4C, 0xA6, 0x47, 0x50, 0x0A, 0x19, 0x93, 0x01, 0x84, 0x4C, 0xB9, 0x6B, 0xB9, 0x83, 0x8B, 0x9B, - 0x6B, 0x47, 0x78, 0x6A, 0x4A, 0x1A, 0x18, 0x97, 0x0A, 0x7E, 0x8B, 0x21, 0xAF, 0x35, 0x6B, 0x72, - 0x00, 0x98, 0x74, 0xD8, 0x82, 0x2B, 0x0C, 0xA8, 0x20, 0xFA, 0x2A, 0x5D, 0x30, 0x05, 0x76, 0x89, - 0x78, 0xB3, 0x36, 0x90, 0x84, 0x72, 0x57, 0xAE, 0xA0, 0xD2, 0xE6, 0xE0, 0xE8, 0x54, 0x0E, 0xA6, - 0x13, 0x48, 0x9F, 0xAF, 0x0E, 0x1C, 0x05, 0x00, 0x02, 0x54, 0xAB, 0xF1, 0x24, 0x31, 0x88, 0x83, - 0x09, 0x95, 0x09, 0x17, 0x1F, 0xD7, 0x12, 0x97, 0x13, 0xCD, 0x16, 0xE4, 0xDE, 0x84, 0x5F, 0x8B, - 0x94, 0x51, 0x52, 0x82, 0x36, 0x99, 0x10, 0xE5, 0x9D, 0x83, 0x3F, 0x9D, 0x9F, 0x18, 0xB1, 0xEC, - 0xA2, 0x9E, 0x30, 0x33, 0x06, 0xEC, 0x61, 0xE3, 0xA1, 0xD6, 0x80, 0xC3, 0x96, 0xF6, 0x10, 0x7C, - 0x8E, 0x60, 0x8E, 0x85, 0x0C, 0x99, 0xC8, 0x60, 0x0C, 0xFC, 0x84, 0x43, 0x7B, 0x56, 0x4D, 0x10, - 0xEC, 0x4A, 0x29, 0x85, 0xB4, 0x8F, 0x4C, 0xD8, 0x8F, 0x3A, 0xE0, 0x52, 0x16, 0xE8, 0xEC, 0xB2, - 0xF2, 0xDA, 0x02, 0xAA, 0x2F, 0x0C, 0x49, 0x77, 0x73, 0x15, 0xCB, 0x27, 0x08, 0x66, 0x9E, 0xEC, - 0x90, 0x5F, 0x6C, 0xA2, 0xB6, 0xD4, 0x00, 0xD0, 0x38, 0x4C, 0x7D, 0x0F, 0xDF, 0x67, 0xA1, 0x88, - 0x7C, 0xF0, 0x00, 0xFB, 0x21, 0xBF, 0x08, 0xC1, 0x93, 0x66, 0x72, 0x59, 0x69, 0xE9, 0x5D, 0x66, - 0x48, 0x7B, 0xFC, 0x93, 0xBA, 0x70, 0xDE, 0x88, 0xD2, 0x99, 0xAF, 0x90, 0x6E, 0x45, 0xED, 0xC8, - 0x0C, 0x6B, 0xA5, 0x4B, 0x5B, 0x78, 0x59, 0x4B, 0xC7, 0xC1, 0x30, 0x81, 0xF0, 0x78, 0x6B, 0x5B, - 0x2B, 0xEB, 0x1F, 0x59, 0x3B, 0x98, 0x74, 0xF3, 0x2B, 0xCB, 0x30, 0x90, 0xC5, 0x75, 0x3B, 0x68, - 0xBF, 0xE1, 0x24, 0x4D, 0xA3, 0x51, 0x3F, 0x32, 0x75, 0x29, 0x43, 0x3A, 0x82, 0x79, 0x9D, 0xB3, - 0xF3, 0x13, 0xD6, 0xEB, 0x07, 0x97, 0x7E, 0xC3, 0xA0, 0xB4, 0xDC, 0x6A, 0xE2, 0x95, 0xE7, 0x14, - 0x61, 0x70, 0x51, 0x32, 0xB2, 0xD4, 0x37, 0x1C, 0x50, 0x66, 0x36, 0x3C, 0x38, 0x77, 0xF7, 0x0E, - 0xBC, 0x46, 0x2A, 0x79, 0x05, 0x18, 0xA3, 0xF7, 0x1D, 0xBC, 0x08, 0x97, 0x0B, 0xAC, 0xC6, 0xC0, - 0x3B, 0x63, 0xE4, 0xBA, 0xD7, 0x34, 0xEF, 0xD6, 0x8C, 0x44, 0x34, 0xBD, 0x78, 0xAA, 0x5C, 0x96, - 0xEB, 0xA4, 0x39, 0x4F, 0x94, 0x70, 0x3C, 0x34, 0x08, 0x31, 0x86, 0x52, 0xC4, 0xE8, 0xEC, 0x38, - 0x07, 0xE1, 0x97, 0x6C, 0x4A, 0x48, 0xBC, 0x84, 0x05, 0xEF, 0x3D, 0x54, 0x5F, 0xCA, 0x4B, 0x83, - 0xBB, 0xE5, 0x33, 0x4C, 0x11, 0x2D, 0x76, 0x71, 0x65, 0xCA, 0xE2, 0x83, 0x9D, 0x24, 0xEE, 0x39, - 0x59, 0xE2, 0xDC, 0xBD, 0x8F, 0x63, 0x90, 0x6F, 0xF1, 0xFD, 0x52, 0x46, 0x03, 0x74, 0xB6, 0x77, - 0xAD, 0x06, 0x86, 0x25, 0xA1, 0xE9, 0xB1, 0x24, 0xB4, 0x3C, 0x96, 0x84, 0x35, 0x8F, 0x25, 0xE1, - 0xEF, 0xC8, 0x64, 0x20, 0x8D, 0x05, 0x8D, 0xF7, 0x35, 0x76, 0x96, 0xC2, 0x8B, 0xF4, 0x15, 0x60, - 0x4B, 0x30, 0xBC, 0xED, 0x41, 0xC8, 0x95, 0xCE, 0xD5, 0xD2, 0xA7, 0x59, 0x11, 0x9A, 0xC5, 0x56, - 0x84, 0xB5, 0xF7, 0xBE, 0x47, 0x61, 0x13, 0x2E, 0x6A, 0xFC, 0xC5, 0x12, 0x35, 0x64, 0xAE, 0x7A, - 0xD2, 0x99, 0xC0, 0x96, 0x5B, 0xA5, 0xD3, 0x46, 0x2E, 0xC8, 0x02, 0x25, 0x7A, 0xA1, 0x01, 0x54, - 0x02, 0x56, 0x6A, 0xFB, 0x62, 0x5B, 0xBF, 0xA8, 0x5D, 0xE0, 0x34, 0xE7, 0x54, 0x41, 0x5C, 0xE0, - 0xE6, 0x48, 0xE7, 0x24, 0x7A, 0x1C, 0x0F, 0x5D, 0x2F, 0x4D, 0xAF, 0xC7, 0xB3, 0x70, 0x9A, 0xCF, - 0x08, 0x41, 0x6C, 0x32, 0x8C, 0xC8, 0x8B, 0x42, 0x9C, 0xC8, 0x52, 0xE0, 0x00, 0xF8, 0x85, 0x8E, - 0x85, 0xF9, 0xAE, 0x1D, 0x13, 0xB5, 0xC3, 0x02, 0xB6, 0x42, 0x92, 0xE0, 0x83, 0x91, 0xAF, 0x7D, - 0xC8, 0xA2, 0x27, 0xD6, 0x2F, 0x3F, 0xCE, 0x4D, 0xA5, 0xFC, 0x44, 0xED, 0xE0, 0x5D, 0x4C, 0x8A, - 0xCE, 0x46, 0x57, 0xB3, 0x04, 0x93, 0xFA, 0xBA, 0xEA, 0xFB, 0x09, 0x11, 0x09, 0xF6, 0x7A, 0x17, - 0x58, 0xEE, 0xD9, 0x2F, 0xC8, 0xA9, 0xE7, 0xBD, 0x60, 0xCD, 0x5E, 0x07, 0x7D, 0x73, 0xD1, 0x42, - 0xBA, 0xF5, 0x9D, 0x07, 0x2A, 0x22, 0x8F, 0x1D, 0x0A, 0xE4, 0x9A, 0xA2, 0x2D, 0x8B, 0x32, 0x7E, - 0x23, 0x96, 0xF3, 0x26, 0x8A, 0x72, 0x2F, 0x1D, 0x5F, 0x2A, 0xCE, 0x44, 0x23, 0xB9, 0x77, 0x43, - 0x3C, 0xB8, 0x07, 0x33, 0xEB, 0x7D, 0xEC, 0x76, 0x68, 0x5C, 0xFF, 0xEB, 0xDA, 0x48, 0xBD, 0x3B, - 0x9B, 0x7A, 0xC0, 0x84, 0xA5, 0xB8, 0xB5, 0xD2, 0xCE, 0x85, 0x08, 0xC2, 0x99, 0x5B, 0x5D, 0x12, - 0xEF, 0x96, 0x54, 0x5A, 0xF8, 0xE7, 0x7F, 0xFD, 0xDD, 0x10, 0xF0, 0xFB, 0x84, 0xAD, 0x6E, 0x41, - 0x83, 0xE9, 0xC9, 0x80, 0x8F, 0xF8, 0x57, 0x79, 0x5D, 0x47, 0xE9, 0x43, 0xF2, 0xA0, 0xE0, 0x52, - 0x52, 0x13, 0x1E, 0x94, 0xD8, 0xE2, 0x3C, 0x76, 0x42, 0xD3, 0x44, 0x28, 0x2E, 0x14, 0xAE, 0x9D, - 0x90, 0x76, 0xC0, 0x78, 0x48, 0x7E, 0x81, 0xE0, 0x71, 0x8F, 0x82, 0xC8, 0x74, 0x84, 0xC2, 0x2A, - 0xE3, 0xE2, 0xA8, 0x4A, 0xA2, 0x22, 0xC4, 0xE5, 0x3F, 0x1D, 0x9D, 0xE8, 0x7D, 0xD1, 0xF8, 0xA3, - 0x42, 0xE6, 0xAA, 0xCD, 0x13, 0x5F, 0x96, 0x06, 0xFD, 0x24, 0x86, 0x7B, 0x80, 0xBA, 0x00, 0x78, - 0x6F, 0x58, 0xBE, 0x8D, 0x96, 0x76, 0x33, 0x19, 0x64, 0x08, 0x1F, 0x69, 0xA3, 0xC8, 0x89, 0x83, - 0xF3, 0xFA, 0xD9, 0x77, 0x63, 0xE1, 0x3D, 0x59, 0xBE, 0xE1, 0x9A, 0xA7, 0xAB, 0xC9, 0x28, 0xBF, - 0xFE, 0x7A, 0x7E, 0x47, 0x6E, 0x33, 0xBF, 0xCE, 0x43, 0xCC, 0xAF, 0x8E, 0x47, 0xB4, 0xA0, 0xC2, - 0xE3, 0x4B, 0x9B, 0x5F, 0x40, 0xA6, 0x2E, 0xD8, 0x85, 0xCE, 0x3E, 0x79, 0x1B, 0xCA, 0x95, 0x2B, - 0x79, 0xCF, 0x07, 0xA5, 0xF6, 0x16, 0xF7, 0x70, 0xAF, 0xB0, 0xDF, 0xA4, 0x52, 0x9A, 0x6E, 0x66, - 0x92, 0xE5, 0x55, 0xDE, 0x76, 0x97, 0xCF, 0x8A, 0x5D, 0xE4, 0x7D, 0x4C, 0x5D, 0xE3, 0x3C, 0x64, - 0x1F, 0x63, 0xEA, 0xB6, 0xA2, 0x94, 0xAF, 0xE0, 0xFA, 0x77, 0x7A, 0x62, 0x9F, 0xA0, 0xF2, 0x0C, - 0x5D, 0x79, 0x40, 0xBF, 0xF3, 0xAB, 0x71, 0x56, 0xEC, 0xB8, 0xE2, 0xD7, 0xF2, 0x36, 0xD8, 0x99, - 0xE4, 0xF9, 0x0E, 0x21, 0xA1, 0xC5, 0xCD, 0xB7, 0xA6, 0xEC, 0x03, 0xFD, 0xBE, 0xE4, 0x71, 0x5A, - 0x56, 0xE2, 0x9D, 0x94, 0xE8, 0xD5, 0x86, 0x2A, 0x9F, 0x19, 0x08, 0x86, 0x82, 0xCB, 0x27, 0x5F, - 0x36, 0xD4, 0x5E, 0x2B, 0x17, 0x74, 0x50, 0x66, 0xCE, 0x6A, 0x30, 0x99, 0xC8, 0xDA, 0xA4, 0x15, - 0x10, 0x5E, 0xFE, 0x33, 0x8E, 0xDC, 0x75, 0x88, 0xD8, 0x99, 0x2A, 0x67, 0xB3, 0x77, 0xBE, 0x9B, - 0xA0, 0x7A, 0x0E, 0x23, 0x83, 0xCE, 0xD1, 0x8A, 0x10, 0x0C, 0xAF, 0xC2, 0xA5, 0x06, 0x3D, 0xBA, - 0x1F, 0x13, 0xDD, 0xBD, 0xEC, 0x99, 0x40, 0xE8, 0xEE, 0x0F, 0x5E, 0x9E, 0x4A, 0xE2, 0x92, 0x4D, - 0x17, 0x98, 0x22, 0x34, 0x34, 0x4C, 0x3B, 0x70, 0x61, 0x00, 0x55, 0x1E, 0xFB, 0x8A, 0xB7, 0x7B, - 0xE0, 0x57, 0x1C, 0xE1, 0xA0, 0x77, 0x88, 0x1A, 0x3B, 0xF0, 0xAC, 0xBF, 0x83, 0x0F, 0x50, 0x77, - 0x40, 0x5F, 0xF6, 0xBE, 0x88, 0x6B, 0xB0, 0xA1, 0xE6, 0x96, 0x50, 0x6D, 0x81, 0x92, 0x0A, 0x93, - 0x61, 0x70, 0x1D, 0x44, 0x7D, 0x3C, 0x64, 0xF1, 0x92, 0x4C, 0x0F, 0x88, 0x8C, 0xDB, 0x78, 0x02, - 0xA1, 0xC2, 0x2C, 0x08, 0x72, 0xBF, 0x22, 0x76, 0xAE, 0x0B, 0x16, 0x90, 0x01, 0x56, 0x69, 0xDC, - 0xC0, 0xCF, 0x76, 0x2B, 0xDA, 0xB3, 0x40, 0xFD, 0x65, 0x6E, 0x55, 0x76, 0x9D, 0xB5, 0x4C, 0x1D, - 0x73, 0x01, 0x87, 0x6A, 0x43, 0x1A, 0x44, 0xDD, 0x2E, 0x47, 0x38, 0x17, 0xCE, 0x86, 0xA7, 0x96, - 0x0B, 0x89, 0xFC, 0x1F, 0xC6, 0x74, 0xF3, 0xCF, 0x03, 0xF4, 0x28, 0x5B, 0xC9, 0x85, 0x43, 0x7A, - 0xDF, 0xE3, 0xF5, 0x7C, 0x20, 0xDB, 0x4E, 0x0D, 0x17, 0x42, 0xD3, 0x99, 0x13, 0xA9, 0x7A, 0x73, - 0xD9, 0x4D, 0xB4, 0xFA, 0xF9, 0x67, 0x82, 0x53, 0xA9, 0xD8, 0xCF, 0xA4, 0x02, 0x50, 0x60, 0x0C, - 0x82, 0xE4, 0x23, 0x83, 0x44, 0x4B, 0x1D, 0x52, 0xD3, 0xD0, 0xEB, 0x13, 0x6A, 0x60, 0xC4, 0x8C, - 0x60, 0xF2, 0x3D, 0xA3, 0xE6, 0x8D, 0xB6, 0x12, 0x88, 0x55, 0x6A, 0xAA, 0xC4, 0x19, 0x4C, 0x9B, - 0xF3, 0x28, 0xC9, 0xBD, 0x05, 0x64, 0x83, 0x4A, 0x24, 0xF2, 0x16, 0xCD, 0x12, 0xD4, 0x5A, 0xC7, - 0x5A, 0xF9, 0x1C, 0x01, 0x75, 0xB6, 0xB0, 0x8E, 0x97, 0xBA, 0x3F, 0xFF, 0xCC, 0x57, 0x02, 0x27, - 0x02, 0x6C, 0x0D, 0x3F, 0xFF, 0x4C, 0x2B, 0xC2, 0xA4, 0x89, 0xF6, 0xB5, 0x72, 0xD4, 0xA9, 0x86, - 0x2F, 0x8B, 0xAB, 0x1E, 0x94, 0x1E, 0xF3, 0xA6, 0xD5, 0xB3, 0x26, 0xD2, 0x30, 0x75, 0x41, 0x3F, - 0xB9, 0x7B, 0xB6, 0x77, 0x78, 0xC8, 0x72, 0xC2, 0x27, 0xC0, 0xA5, 0xE6, 0xE7, 0x9F, 0x61, 0x51, - 0xBA, 0x73, 0x03, 0xC7, 0xA7, 0xF5, 0xA2, 0xAA, 0x26, 0xAC, 0xBB, 0xA4, 0x51, 0xB4, 0x95, 0x8F, - 0x45, 0x9A, 0x1E, 0xB1, 0x91, 0xAA, 0xB3, 0xA3, 0xD4, 0x21, 0xC4, 0x06, 0x60, 0x27, 0xB9, 0x85, - 0xDF, 0x0F, 0xF1, 0x3D, 0x0E, 0xFF, 0x94, 0x88, 0x47, 0xEC, 0x90, 0x3E, 0xC6, 0x09, 0x71, 0xC0, - 0x97, 0xEF, 0xE1, 0x9E, 0x4F, 0xBD, 0x71, 0x1F, 0x02, 0x3A, 0x3D, 0x08, 0xA2, 0xBE, 0x2D, 0x81, - 0xA0, 0xE0, 0x39, 0xBA, 0x21, 0x9D, 0x67, 0x83, 0x05, 0xC0, 0x6B, 0x1C, 0x33, 0x5C, 0x40, 0x8E, - 0x98, 0x6D, 0x48, 0xD9, 0x54, 0x39, 0xF2, 0x06, 0x0C, 0xF8, 0xD5, 0x16, 0xA0, 0x75, 0x77, 0x05, - 0xE1, 0x5A, 0x49, 0x12, 0x8F, 0xDE, 0x5B, 0x91, 0x68, 0xA6, 0x20, 0xBC, 0x63, 0xE0, 0x99, 0xCE, - 0x95, 0x0A, 0x4D, 0x66, 0x57, 0x1F, 0xC9, 0x08, 0x0E, 0x86, 0xFC, 0x9D, 0x11, 0xBE, 0xB3, 0xF3, - 0xF8, 0x3B, 0xFC, 0x2E, 0x62, 0xA2, 0xCF, 0x9B, 0xC7, 0x7D, 0x77, 0x1E, 0xEF, 0x6B, 0x1A, 0x29, - 0x0E, 0xC0, 0xBF, 0x81, 0x69, 0xAC, 0x19, 0x61, 0xE7, 0x9C, 0xE9, 0x9B, 0x24, 0x57, 0x55, 0x35, - 0xB9, 0x73, 0x66, 0x90, 0x02, 0x80, 0x9D, 0x60, 0xF8, 0xB6, 0x55, 0x92, 0x65, 0x57, 0xDF, 0x45, - 0xC9, 0x24, 0xE8, 0xF3, 0xDF, 0x82, 0x31, 0x1F, 0x32, 0xDA, 0x81, 0x29, 0x2C, 0x98, 0x57, 0x35, - 0xC0, 0x07, 0x7D, 0x22, 0xC2, 0xE4, 0xBA, 0xD4, 0x36, 0x42, 0xC3, 0x59, 0xC9, 0x28, 0xA1, 0x67, - 0xDF, 0x8B, 0x86, 0x10, 0xFD, 0x49, 0xCB, 0xC2, 0x12, 0xCF, 0xE4, 0x72, 0x80, 0x21, 0x62, 0xE2, - 0x32, 0xE7, 0x07, 0xF6, 0x13, 0x97, 0xCE, 0x75, 0x12, 0x2F, 0x27, 0xBF, 0x96, 0x93, 0x57, 0x2B, - 0x27, 0x39, 0x57, 0x4E, 0x4A, 0x2F, 0xF3, 0xE5, 0xA1, 0xCC, 0x4D, 0x65, 0x7C, 0xAA, 0xA9, 0x3B, - 0xB3, 0xCA, 0x5C, 0x15, 0x8F, 0x66, 0x14, 0x94, 0xBC, 0xAA, 0xE7, 0x72, 0x89, 0xEA, 0xDD, 0x8C, - 0xA3, 0x54, 0xF6, 0x81, 0x3F, 0x3F, 0x10, 0x69, 0xAD, 0xF4, 0x17, 0x67, 0x80, 0xBA, 0x94, 0xAE, - 0x08, 0x4E, 0x22, 0x50, 0x2C, 0xB9, 0xC6, 0x39, 0xF6, 0x3E, 0x72, 0x2C, 0x7C, 0x37, 0x29, 0x43, - 0x20, 0x0A, 0xE2, 0x88, 0xA1, 0x2F, 0x15, 0xCF, 0x69, 0xE1, 0x34, 0xA8, 0x57, 0x88, 0x38, 0x1F, - 0x46, 0x38, 0xBD, 0x99, 0x5D, 0x30, 0xD3, 0x05, 0x66, 0x84, 0x4C, 0x51, 0x28, 0x03, 0x64, 0x1A, - 0x0B, 0xD8, 0xAE, 0x20, 0x63, 0x6D, 0xFA, 0x86, 0x68, 0xD4, 0x33, 0x4B, 0x54, 0x75, 0x2B, 0xCC, - 0x27, 0xD5, 0x53, 0x51, 0x3E, 0xAD, 0x59, 0x30, 0x2A, 0xE0, 0x27, 0xA8, 0x60, 0x46, 0x26, 0xC1, - 0x22, 0xFF, 0xEC, 0xD8, 0x64, 0x2E, 0x98, 0x9E, 0x82, 0x20, 0x94, 0x45, 0x4B, 0x81, 0x16, 0x75, - 0xD1, 0x52, 0x80, 0xD5, 0xA5, 0x6A, 0x15, 0xB0, 0xA5, 0x83, 0xFF, 0x79, 0x38, 0x4D, 0xD5, 0x9E, - 0x64, 0xFD, 0x4B, 0xF3, 0x24, 0x63, 0xE7, 0x78, 0x3F, 0x2E, 0xF9, 0x47, 0x3C, 0x7F, 0x9B, 0x28, - 0x1C, 0x8E, 0x67, 0xBE, 0xD4, 0xD8, 0xBC, 0x53, 0x52, 0x50, 0x4C, 0x83, 0x0C, 0xBB, 0x9F, 0x71, - 0x6A, 0xC4, 0x46, 0x6B, 0x8C, 0x05, 0xA4, 0x49, 0x63, 0x3C, 0xBC, 0xD6, 0x18, 0x56, 0x03, 0x45, - 0x42, 0x16, 0xB4, 0x87, 0x36, 0xBE, 0x95, 0x4D, 0x25, 0x22, 0x22, 0x1E, 0x00, 0xDA, 0xC9, 0xCC, - 0xB2, 0xEA, 0xB0, 0xCC, 0x2C, 0x3B, 0xAD, 0x3C, 0x71, 0x2F, 0x9D, 0x1A, 0x66, 0x04, 0x4C, 0x71, - 0xE4, 0xB6, 0xAD, 0x77, 0xCA, 0x16, 0x0B, 0x98, 0x8F, 0x96, 0xF1, 0x5C, 0x84, 0xFA, 0x14, 0x94, - 0x1E, 0x8F, 0x44, 0x4D, 0x00, 0x3A, 0x19, 0x44, 0xFC, 0x7A, 0xEB, 0xA0, 0x14, 0xAA, 0x63, 0x3A, - 0x01, 0x45, 0x54, 0x54, 0x32, 0xA5, 0x70, 0x38, 0x55, 0xF3, 0xED, 0x33, 0x97, 0xDC, 0x7F, 0x6F, - 0x4C, 0x9B, 0xBD, 0xDE, 0x12, 0xFB, 0x8D, 0xAD, 0xEF, 0x14, 0xB6, 0x6E, 0xBE, 0x97, 0x08, 0x1B, - 0xDD, 0xF3, 0x02, 0x37, 0xD0, 0x9F, 0xD1, 0x06, 0xE4, 0x03, 0x71, 0x26, 0x17, 0x74, 0x2B, 0xF3, - 0x18, 0x7A, 0x60, 0x63, 0x09, 0x05, 0x2D, 0x52, 0x67, 0xB6, 0xDA, 0x07, 0x33, 0xEF, 0xBB, 0xA7, - 0x1E, 0x04, 0x25, 0x7D, 0x1E, 0xB8, 0x4C, 0x69, 0x81, 0x28, 0xCD, 0xA0, 0x62, 0xFF, 0x76, 0x19, - 0xD4, 0x8C, 0x86, 0x6A, 0x72, 0xA2, 0x58, 0x0F, 0x0F, 0x8C, 0xD0, 0xB0, 0x0E, 0x77, 0x64, 0x43, - 0x2C, 0x66, 0x16, 0x2A, 0x55, 0x34, 0xC8, 0x3C, 0xCD, 0xA9, 0xF2, 0x9D, 0x51, 0x67, 0x96, 0x53, - 0x47, 0x04, 0xF5, 0xF5, 0x2E, 0x79, 0xB3, 0xA3, 0x82, 0x0A, 0xDF, 0xCD, 0xAD, 0xF1, 0xBD, 0x3D, - 0x63, 0x9F, 0x46, 0x72, 0xBD, 0x1E, 0x4D, 0x8A, 0xD3, 0xAA, 0x54, 0x42, 0xAC, 0xA4, 0x1C, 0xFD, - 0x2B, 0x83, 0xE4, 0xE2, 0x6F, 0x42, 0x00, 0x85, 0x78, 0x41, 0x9C, 0x1D, 0xDF, 0x6B, 0x5B, 0x26, - 0xB4, 0x13, 0x4F, 0xFD, 0x67, 0x20, 0x6C, 0x62, 0x94, 0x4A, 0xB9, 0x9C, 0x66, 0x7A, 0x39, 0xF1, - 0x96, 0x17, 0xB3, 0xF7, 0xA2, 0xB1, 0x92, 0x57, 0xA1, 0x35, 0x85, 0xDC, 0xE5, 0xFF, 0x88, 0xD6, - 0xBC, 0x9A, 0x02, 0x30, 0x35, 0x05, 0x57, 0x02, 0x71, 0x31, 0x55, 0x96, 0xCD, 0x84, 0x7E, 0x45, - 0xEB, 0xA6, 0xF9, 0x7B, 0xF6, 0x69, 0x14, 0x39, 0xE8, 0x03, 0x84, 0x5C, 0x0A, 0x5D, 0xC2, 0xB3, - 0xE3, 0xD1, 0x0C, 0x4E, 0x1E, 0xF4, 0x6B, 0x37, 0xC8, 0x04, 0xCE, 0xEE, 0x86, 0x2D, 0x45, 0xD7, - 0xA0, 0x69, 0xEB, 0x18, 0xCD, 0x04, 0x9D, 0xBA, 0x71, 0x67, 0x32, 0x20, 0xA3, 0x3C, 0x2D, 0x59, - 0xF1, 0xFB, 0x8E, 0xCE, 0x60, 0x21, 0x1A, 0x28, 0xD6, 0xD5, 0x50, 0x65, 0xE5, 0x95, 0x0E, 0xFA, - 0x0B, 0x1D, 0x50, 0x04, 0xFB, 0x6A, 0x45, 0x56, 0x91, 0x49, 0x02, 0xE4, 0xEF, 0x22, 0xB6, 0xFD, - 0x48, 0x5F, 0x93, 0x2B, 0x41, 0x3B, 0xE1, 0xB7, 0x95, 0x34, 0xAC, 0x78, 0x6B, 0xA2, 0x16, 0x82, - 0xD7, 0xAA, 0xAF, 0xB5, 0x1A, 0x8D, 0xC6, 0x68, 0xEA, 0xAF, 0x95, 0x62, 0x74, 0x88, 0x39, 0x95, - 0xC8, 0xB3, 0x9E, 0x57, 0xCB, 0xAD, 0x21, 0xBC, 0xF0, 0x8B, 0xAA, 0xC4, 0xA3, 0xA0, 0x03, 0xF1, - 0x27, 0xA1, 0x8E, 0xBF, 0x06, 0x64, 0x4B, 0xB8, 0xC4, 0x18, 0x19, 0xFC, 0x16, 0x46, 0x01, 0xFC, - 0x51, 0xE9, 0xCB, 0xEF, 0x40, 0x9C, 0x34, 0x39, 0x6D, 0xF0, 0xC9, 0x8E, 0x7C, 0x9F, 0x5B, 0x19, - 0xC6, 0xC3, 0x1C, 0x72, 0x70, 0xAE, 0x00, 0xEE, 0x71, 0x6B, 0xD2, 0xFA, 0x94, 0x73, 0xC1, 0xD9, - 0x43, 0x4C, 0x44, 0xF2, 0x62, 0x76, 0x1E, 0x5C, 0xBE, 0x0E, 0x06, 0x61, 0xB5, 0xD2, 0x8E, 0xBB, - 0xB3, 0xCA, 0x12, 0x67, 0x40, 0x88, 0xB9, 0x11, 0x72, 0xEC, 0xF8, 0xD5, 0xAC, 0x5B, 0x55, 0x73, - 0x2B, 0x80, 0x64, 0xD9, 0x04, 0xF8, 0x42, 0xFC, 0xB8, 0xE3, 0xF0, 0xA8, 0xFE, 0x2E, 0x6E, 0xC3, - 0x74, 0x83, 0x7D, 0x03, 0x66, 0x9C, 0x9B, 0x78, 0xFC, 0x91, 0xF4, 0x9D, 0xA3, 0x71, 0x34, 0x08, - 0xC6, 0x33, 0x23, 0x13, 0x17, 0xFF, 0xEF, 0xBB, 0x66, 0x93, 0x54, 0x17, 0xF1, 0xB0, 0xCE, 0x7F, - 0xC6, 0x78, 0x34, 0x09, 0x24, 0x9E, 0x9C, 0xF4, 0xBB, 0x94, 0x5A, 0x2F, 0x1D, 0xF7, 0xEB, 0x7B, - 0x2C, 0x1A, 0xE2, 0x1B, 0xE7, 0x5C, 0x47, 0x42, 0xC0, 0x32, 0x9F, 0xFF, 0x79, 0x97, 0x3D, 0xC1, - 0xD7, 0x82, 0xDB, 0xDD, 0x15, 0xE1, 0x2C, 0xA5, 0xEA, 0x92, 0x3E, 0x38, 0xC2, 0x41, 0xC4, 0x39, - 0x19, 0x3A, 0xA9, 0x50, 0x3B, 0x51, 0x26, 0x67, 0x04, 0x73, 0x2C, 0x08, 0x3B, 0x9C, 0xFC, 0x06, - 0x3F, 0x40, 0x9A, 0x2B, 0xB1, 0x9E, 0xF8, 0x6F, 0x56, 0x31, 0x3D, 0xEE, 0xF5, 0x14, 0x40, 0xBC, - 0x71, 0x49, 0x1E, 0xBA, 0xA0, 0x36, 0xA8, 0x4F, 0xB1, 0xBD, 0x50, 0xD7, 0xE8, 0x77, 0x3C, 0x08, - 0x39, 0x13, 0x54, 0x9D, 0x93, 0x88, 0xE1, 0x50, 0x55, 0x06, 0x09, 0x03, 0x35, 0x51, 0x62, 0x7C, - 0xB9, 0xAD, 0x15, 0xED, 0xBE, 0x5A, 0xA8, 0x35, 0xC9, 0x3A, 0xE5, 0xDB, 0xF7, 0xB4, 0x55, 0x63, - 0x33, 0xFE, 0xEF, 0xAC, 0xA5, 0x09, 0x1C, 0x4F, 0x65, 0xFC, 0xC8, 0x78, 0xDA, 0x92, 0x3F, 0xCD, - 0xD4, 0xB7, 0x99, 0xFC, 0x96, 0x0E, 0x46, 0xE2, 0xA7, 0xA9, 0xF8, 0x77, 0x26, 0x7F, 0xEF, 0x8B, - 0x1F, 0x02, 0x0C, 0xCD, 0x62, 0x9D, 0x9C, 0x52, 0xF6, 0x54, 0x1B, 0xF3, 0xB4, 0xA9, 0x76, 0x32, - 0x59, 0xB6, 0x32, 0x6D, 0xEE, 0x88, 0xC2, 0x96, 0xA7, 0xB0, 0x25, 0x0A, 0x67, 0x9E, 0x96, 0x33, - 0xD9, 0x72, 0xE6, 0x69, 0x39, 0x6B, 0x89, 0x15, 0x01, 0xE8, 0x40, 0x8D, 0x27, 0x00, 0xC4, 0x50, - 0x4D, 0x0C, 0x60, 0xCB, 0x89, 0x65, 0x07, 0xB2, 0xFF, 0x58, 0xA2, 0xA3, 0xB0, 0x1D, 0xA8, 0x14, - 0x02, 0xA2, 0xC9, 0x4C, 0x37, 0xC1, 0x8E, 0xE3, 0x99, 0x6E, 0x32, 0xB3, 0x9A, 0xDC, 0x1A, 0x18, - 0x4C, 0x11, 0x03, 0x0E, 0xF2, 0xAB, 0xAF, 0xA8, 0xDA, 0x53, 0x04, 0xF5, 0x09, 0x08, 0xDD, 0x1A, - 0x49, 0x8F, 0x66, 0x02, 0x0F, 0x38, 0x18, 0x09, 0x45, 0xF3, 0x40, 0x64, 0x4C, 0xC5, 0x9A, 0xC7, - 0x5F, 0x8C, 0x0B, 0x52, 0x5F, 0x49, 0x64, 0x12, 0xD3, 0x99, 0x40, 0xCD, 0xA0, 0x15, 0xB5, 0x37, - 0x30, 0xB9, 0xF5, 0xD4, 0x6F, 0x59, 0xF5, 0xFB, 0xF6, 0x58, 0x64, 0x03, 0x61, 0x85, 0x9F, 0x02, - 0x96, 0xD3, 0xBE, 0x73, 0xE8, 0x1A, 0xAC, 0x63, 0x1C, 0xB1, 0x2B, 0x31, 0xDF, 0x51, 0xBE, 0xA0, - 0x38, 0x3E, 0x6E, 0xB2, 0x04, 0xB7, 0x2E, 0x49, 0xCC, 0x3E, 0x08, 0x3B, 0x56, 0x3B, 0x53, 0x14, - 0x2A, 0xA8, 0x18, 0x18, 0xC1, 0x87, 0x0A, 0xAA, 0x95, 0x84, 0xE6, 0x96, 0x33, 0xF5, 0xCE, 0x3A, - 0x33, 0x0C, 0x25, 0x55, 0x98, 0xB4, 0xBB, 0x35, 0x67, 0xBD, 0x68, 0x3D, 0xE4, 0xAF, 0x32, 0x6C, - 0x8C, 0x4D, 0x8F, 0x83, 0xF4, 0x0A, 0xB4, 0x69, 0x55, 0xD8, 0x11, 0x1A, 0xB8, 0xAF, 0x18, 0xDF, - 0xA3, 0x21, 0x7E, 0xCF, 0xBF, 0xED, 0xD0, 0x7E, 0x86, 0xEC, 0xAF, 0x21, 0xB5, 0x14, 0xA4, 0x96, - 0x05, 0xA9, 0x35, 0x1F, 0x92, 0x8D, 0x2D, 0x28, 0xB5, 0xF8, 0x28, 0x1E, 0x33, 0xDA, 0xB6, 0x1E, - 0x8B, 0xAD, 0xEB, 0xB1, 0xD8, 0xBE, 0x1E, 0x43, 0x07, 0xB7, 0x6A, 0xAF, 0xC1, 0xB5, 0xAD, 0xD9, - 0x95, 0xD6, 0x91, 0x64, 0x3D, 0x5C, 0x43, 0x53, 0x8B, 0x30, 0x72, 0xFD, 0x50, 0x45, 0xB9, 0x9A, - 0x11, 0x67, 0x49, 0x41, 0x73, 0x19, 0xAB, 0x4C, 0x60, 0xB8, 0x82, 0x69, 0x01, 0x8B, 0xF5, 0xAB, - 0x79, 0xBE, 0x64, 0xA7, 0xB7, 0x4A, 0x96, 0x9D, 0x51, 0x6F, 0xB4, 0x5E, 0x9D, 0xE5, 0x6A, 0x2C, - 0xD6, 0xBC, 0xA5, 0xAA, 0x17, 0x9E, 0xB9, 0x4E, 0xA7, 0x46, 0xB7, 0xB7, 0x6E, 0x3D, 0x63, 0x7D, - 0x22, 0x54, 0x89, 0xEC, 0xAD, 0xDE, 0x45, 0xF2, 0x16, 0x66, 0x76, 0xA1, 0xE1, 0xA2, 0xCC, 0xAE, - 0x0C, 0x11, 0xE2, 0x36, 0x7F, 0x71, 0x7E, 0xF5, 0x54, 0x5C, 0x24, 0x8B, 0xAB, 0xFD, 0xC6, 0xAF, - 0xBD, 0x58, 0x8D, 0x3D, 0x79, 0xC2, 0xB6, 0x8D, 0xBB, 0x6E, 0xEE, 0x9A, 0x34, 0x7A, 0xF6, 0xAD, - 0x33, 0xB5, 0x98, 0xAA, 0x81, 0x7B, 0x9D, 0xAD, 0xBA, 0x3D, 0x2D, 0xD5, 0x54, 0x6D, 0xCF, 0xC2, - 0x14, 0x65, 0xB9, 0xBD, 0x09, 0xCA, 0x04, 0x22, 0x50, 0x99, 0x71, 0x31, 0x40, 0xA6, 0x9A, 0x41, - 0x04, 0x2E, 0xBD, 0x1A, 0xD4, 0x6A, 0x99, 0xB5, 0x9C, 0xEF, 0x8B, 0x2F, 0xD4, 0x4F, 0x5A, 0x9B, - 0x76, 0x63, 0x31, 0x2B, 0xF2, 0x1E, 0x28, 0xA4, 0x86, 0x4F, 0xD0, 0x13, 0x5D, 0x8E, 0x83, 0x76, - 0x69, 0x99, 0x04, 0x2F, 0x7E, 0x95, 0x8A, 0x90, 0x2B, 0xDA, 0x93, 0x9E, 0xF9, 0x6B, 0xE7, 0x6A, - 0x9E, 0x20, 0x82, 0x6B, 0xED, 0x3F, 0xEF, 0x0D, 0x7F, 0xA5, 0xBD, 0x41, 0xEB, 0xE1, 0xEC, 0x75, - 0x62, 0x8A, 0x14, 0x50, 0x07, 0x52, 0x10, 0xB2, 0x8A, 0x79, 0x80, 0xC3, 0xC4, 0x2E, 0x6B, 0x57, - 0x39, 0x04, 0xC6, 0x45, 0xEF, 0x68, 0xA8, 0xB3, 0x6F, 0x99, 0x72, 0x06, 0xAF, 0x6E, 0xB6, 0x06, - 0x2E, 0xE1, 0xAD, 0xF9, 0xD7, 0x1D, 0x0B, 0xA2, 0x99, 0x6F, 0x4D, 0x36, 0x17, 0x75, 0x75, 0x4F, - 0x00, 0x2F, 0x4A, 0xBE, 0x8D, 0xC8, 0x2D, 0x79, 0x09, 0x46, 0x64, 0x0E, 0xD8, 0x86, 0x23, 0x5A, - 0x57, 0x7E, 0x18, 0x56, 0xD4, 0x3C, 0x81, 0xC5, 0xB7, 0xC7, 0x6E, 0xC2, 0xCA, 0x38, 0x44, 0x1B, - 0xB4, 0x08, 0x0A, 0x0F, 0x9E, 0xF7, 0xC2, 0x10, 0x8E, 0x75, 0x80, 0x24, 0x70, 0x43, 0x07, 0x4B, - 0x60, 0xD0, 0x05, 0x17, 0x8E, 0x61, 0x78, 0x43, 0x81, 0x9E, 0x04, 0x59, 0x71, 0x5A, 0x60, 0x11, - 0x10, 0xBB, 0xA1, 0x6A, 0x42, 0xCD, 0xA9, 0x45, 0x6A, 0x9F, 0x6C, 0x04, 0x3A, 0xBE, 0x2F, 0x5C, - 0xCA, 0xD2, 0xFA, 0xE1, 0x7F, 0xAF, 0x24, 0x68, 0x6F, 0xE3, 0xAB, 0xB4, 0xAE, 0x6D, 0x6D, 0x99, - 0xCC, 0x4D, 0x0F, 0x4A, 0xA9, 0x2C, 0x3E, 0x86, 0xB3, 0xAC, 0x65, 0x2B, 0xBC, 0xAE, 0x41, 0xC0, - 0x55, 0x9D, 0x4B, 0x09, 0xA2, 0xAF, 0xE2, 0x4C, 0x7F, 0xAC, 0x80, 0x4E, 0x47, 0xFD, 0xFA, 0x95, - 0x42, 0x4F, 0x68, 0x15, 0x21, 0x79, 0xC6, 0x4C, 0x5C, 0x67, 0x74, 0x74, 0x73, 0x55, 0x7F, 0x64, - 0x37, 0x7F, 0x6F, 0x37, 0xA7, 0x8B, 0x9D, 0xF4, 0x93, 0xC1, 0x24, 0xA4, 0x95, 0x5C, 0x50, 0x9D, - 0xA2, 0xB6, 0xA4, 0xF5, 0xF0, 0x36, 0x7E, 0x86, 0x1A, 0x02, 0x58, 0xD0, 0xF0, 0x1B, 0xE7, 0xFC, - 0xCA, 0xB6, 0x82, 0x84, 0xC0, 0xD9, 0x32, 0xFC, 0x63, 0xAD, 0xBA, 0x2F, 0x7E, 0x47, 0x6A, 0x50, - 0xF1, 0xF6, 0x4E, 0x5E, 0xAF, 0x60, 0x66, 0xAD, 0x10, 0xE5, 0xF2, 0xB0, 0x1E, 0x16, 0x61, 0x8D, - 0x06, 0x66, 0x48, 0x0C, 0x94, 0x3F, 0xEA, 0x93, 0xB9, 0xED, 0x65, 0x6C, 0xAA, 0x7C, 0x18, 0x8F, - 0x0B, 0x29, 0x17, 0x0F, 0x06, 0x60, 0xF9, 0x86, 0x77, 0xCA, 0xF9, 0x20, 0x2E, 0x1C, 0x10, 0xDA, - 0xA6, 0x69, 0xA6, 0x58, 0xF0, 0xB3, 0x5B, 0xD6, 0xE8, 0x66, 0xB1, 0x1B, 0xE9, 0x6E, 0xAD, 0x34, - 0x65, 0x0F, 0x8C, 0x45, 0x62, 0x68, 0x75, 0x4D, 0x4E, 0x1A, 0xDA, 0x8C, 0xF5, 0x5A, 0xE1, 0x27, - 0x35, 0x22, 0xD0, 0x16, 0x3B, 0x87, 0xE6, 0xAA, 0x47, 0x6B, 0xAF, 0x57, 0xAD, 0x7F, 0x98, 0x36, - 0xD6, 0x01, 0x00, 0xAC, 0xF4, 0x0E, 0xA8, 0x3B, 0xBA, 0x08, 0x4A, 0xAA, 0x29, 0x3D, 0xE6, 0xA2, - 0x1D, 0x7B, 0x25, 0x0B, 0x43, 0xE0, 0x53, 0xD3, 0x90, 0x6E, 0x4A, 0x5D, 0xEC, 0x38, 0x1A, 0x44, - 0x1D, 0x76, 0x1D, 0x0D, 0x58, 0x3B, 0xBC, 0x0A, 0xF8, 0x7C, 0xC9, 0xCC, 0x80, 0x4A, 0x65, 0xAC, - 0x4E, 0x72, 0xF1, 0x65, 0x99, 0xD9, 0x5A, 0xDB, 0x25, 0xB6, 0xCA, 0x5A, 0x5C, 0xAA, 0xC9, 0x4D, - 0xF9, 0x36, 0xEF, 0x40, 0xC7, 0x8D, 0x82, 0xA6, 0xF6, 0x57, 0xB3, 0x89, 0x48, 0x5C, 0xC4, 0x07, - 0x50, 0xCD, 0xE9, 0xD1, 0x30, 0xE0, 0x1B, 0x63, 0xD6, 0xE6, 0x27, 0xC7, 0x4D, 0xA0, 0xC0, 0x1A, - 0x57, 0x60, 0x7B, 0x93, 0xF0, 0x3D, 0x99, 0x7B, 0x8D, 0x79, 0x6A, 0x6E, 0x58, 0xF3, 0x34, 0xB9, - 0xF3, 0x3C, 0x35, 0xEE, 0x34, 0x3D, 0x5C, 0x00, 0x13, 0x5F, 0xEA, 0xF9, 0xD3, 0xD3, 0xB8, 0xCF, - 0x29, 0xA9, 0xFF, 0xFD, 0xCF, 0x49, 0x63, 0xD3, 0x9A, 0x93, 0x5E, 0xB9, 0x39, 0x71, 0x07, 0xEA, - 0xA3, 0xCD, 0xDF, 0x78, 0x5C, 0x2D, 0x6B, 0x5C, 0xED, 0xBB, 0x8D, 0xCB, 0x9D, 0xC0, 0xBF, 0x83, - 0xA1, 0x39, 0x67, 0x3A, 0x5F, 0x55, 0xED, 0x8B, 0x5D, 0x2B, 0x4B, 0xF7, 0xFC, 0x11, 0xCE, 0xEA, - 0x75, 0x77, 0x6D, 0x71, 0x81, 0xA7, 0xE1, 0x8C, 0x61, 0x66, 0x6A, 0xAB, 0x32, 0x94, 0x69, 0xFE, - 0xB5, 0x98, 0xD8, 0xB3, 0xC4, 0xFC, 0xEE, 0x23, 0xE0, 0x92, 0x56, 0x9A, 0x8C, 0x1F, 0x3C, 0x64, - 0x7C, 0xB1, 0x28, 0x19, 0xA5, 0xBC, 0x6A, 0x90, 0xF1, 0x99, 0x61, 0x65, 0xF5, 0xD0, 0xD3, 0x62, - 0xA7, 0x3C, 0xDA, 0xFE, 0xFD, 0x90, 0xD6, 0xB0, 0x38, 0x96, 0xE7, 0xD0, 0x2B, 0x0F, 0x69, 0xF7, - 0x2D, 0xD2, 0x2A, 0x4B, 0xEC, 0xD4, 0xA0, 0xE6, 0x34, 0xC3, 0x94, 0x53, 0x0F, 0x53, 0x1A, 0x37, - 0xAF, 0x3B, 0x90, 0xE7, 0xAE, 0xBE, 0x25, 0x8B, 0xB0, 0x61, 0x69, 0x3A, 0xF5, 0x3D, 0x74, 0xDA, - 0x2B, 0x41, 0xA7, 0x0C, 0xD7, 0x4D, 0x15, 0xD7, 0x75, 0xAC, 0x1C, 0xEE, 0x8A, 0x60, 0x9E, 0xEB, - 0xE9, 0xBF, 0x76, 0xE2, 0x5D, 0xDB, 0xC4, 0xD3, 0x37, 0x2F, 0xB2, 0xB5, 0x16, 0x8E, 0xC9, 0xF0, - 0x64, 0xAA, 0x16, 0x60, 0x68, 0x78, 0x08, 0x55, 0x4B, 0xE3, 0x35, 0xB3, 0x10, 0xC9, 0xC5, 0x43, - 0x9A, 0x95, 0x95, 0x01, 0x4D, 0x68, 0x66, 0xAA, 0xA2, 0xDC, 0xD5, 0xC5, 0xAE, 0x4C, 0xE5, 0x3A, - 0x34, 0xAD, 0x32, 0xB5, 0xBC, 0xDA, 0xB3, 0x6C, 0x6D, 0xA1, 0x39, 0x52, 0x95, 0xA5, 0xD9, 0xAF, - 0x2A, 0x6C, 0x72, 0xC5, 0x03, 0xD7, 0x4F, 0xE7, 0x0C, 0x57, 0xBC, 0xF2, 0x54, 0xF9, 0x25, 0xCB, - 0xEA, 0xE5, 0xE8, 0x94, 0x3B, 0x11, 0x79, 0xF3, 0xB5, 0x28, 0x66, 0x37, 0x36, 0x66, 0xDF, 0x5A, - 0xEB, 0x2F, 0x76, 0x17, 0x20, 0x7E, 0xD4, 0x07, 0x83, 0xF9, 0xB1, 0x6B, 0x1D, 0x17, 0xC2, 0xEA, - 0xE5, 0x5B, 0xC4, 0xF6, 0xD9, 0x62, 0x7C, 0x6B, 0x3B, 0x10, 0x64, 0x41, 0x12, 0xDC, 0xFC, 0x94, - 0x8C, 0x82, 0x8E, 0xED, 0x19, 0x23, 0x15, 0x42, 0x3B, 0x36, 0x53, 0x65, 0xDF, 0x50, 0xCE, 0xE0, - 0xA1, 0xE5, 0x4C, 0x69, 0x82, 0x84, 0x2F, 0xB1, 0xA5, 0xE1, 0x70, 0x8D, 0x3F, 0xF8, 0x82, 0x92, - 0xF4, 0x1A, 0x4F, 0x32, 0x0A, 0x23, 0x66, 0x21, 0x64, 0x67, 0x69, 0x37, 0x6E, 0x9F, 0xAA, 0x92, - 0xDD, 0xD6, 0xCA, 0xE3, 0x6E, 0xE6, 0xB2, 0x56, 0xDB, 0x9A, 0xAD, 0x6F, 0x72, 0xF7, 0xB6, 0x9C, - 0xED, 0x4C, 0x56, 0x56, 0xB7, 0x38, 0x59, 0x0C, 0xAA, 0x83, 0xC2, 0xE1, 0x58, 0x36, 0x39, 0x02, - 0xB3, 0xBC, 0x9C, 0x77, 0x8E, 0xC3, 0x1F, 0x25, 0x3C, 0x59, 0x0D, 0xDA, 0xEC, 0x99, 0xF7, 0xFA, - 0x28, 0xDA, 0xE8, 0xB9, 0x75, 0xB3, 0xB5, 0xB3, 0x0C, 0x83, 0xE4, 0x90, 0xCA, 0x24, 0x96, 0xFE, - 0x29, 0x4F, 0x57, 0x67, 0x29, 0x98, 0x8C, 0xC3, 0x03, 0x14, 0x5D, 0x4A, 0x60, 0x7A, 0xCA, 0xF2, - 0xE4, 0x5E, 0x6B, 0x2F, 0x9F, 0xB5, 0x97, 0x0C, 0x2B, 0x6E, 0xE9, 0xF3, 0x22, 0x36, 0x0E, 0x8C, - 0x18, 0xA4, 0x33, 0xBE, 0x48, 0x3E, 0x4D, 0xF6, 0x6D, 0xDB, 0x8B, 0xF5, 0xC5, 0xDF, 0xD1, 0x62, - 0xFD, 0x84, 0x15, 0xE9, 0xAE, 0xF1, 0x29, 0xBC, 0x73, 0x77, 0xF8, 0xF6, 0x19, 0xB0, 0xAD, 0xFE, - 0x86, 0x99, 0x22, 0xD5, 0xF7, 0xCC, 0xD2, 0x7E, 0x66, 0x5D, 0x91, 0x4B, 0xAD, 0x69, 0x6B, 0xC9, - 0x42, 0x47, 0x55, 0x7C, 0xE2, 0x61, 0xEE, 0x12, 0x46, 0xF7, 0xCB, 0x66, 0xF7, 0x4B, 0x2E, 0xB7, - 0x1B, 0x4B, 0x39, 0x8F, 0x93, 0xED, 0xED, 0x9B, 0xFE, 0xE4, 0x6F, 0x2B, 0x7E, 0xD6, 0x9F, 0xEA, - 0x85, 0x68, 0xEF, 0x18, 0x28, 0x35, 0x5A, 0xEB, 0x5A, 0x6F, 0x0E, 0x48, 0xD8, 0x2C, 0x31, 0x80, - 0xAF, 0xBE, 0xD0, 0x5B, 0x96, 0xBB, 0x41, 0x78, 0x77, 0x1C, 0x02, 0x5B, 0xAF, 0x3B, 0x77, 0x27, - 0xF8, 0x33, 0xB3, 0x29, 0x20, 0xEA, 0xB5, 0xB3, 0x15, 0x61, 0x6B, 0x70, 0xA9, 0xE5, 0xEC, 0x48, - 0x7E, 0x02, 0xFE, 0x5B, 0xDF, 0x0A, 0x42, 0x7B, 0x2B, 0x38, 0xC8, 0x91, 0x9B, 0x31, 0xC6, 0xC0, - 0xE2, 0xC7, 0xAE, 0xF7, 0xE4, 0x01, 0x76, 0xFB, 0xDB, 0x1E, 0xBC, 0xD6, 0xC2, 0xF2, 0xAC, 0xA1, - 0x9C, 0xC3, 0xF5, 0xF6, 0xFE, 0x30, 0x20, 0xC2, 0xC0, 0xB9, 0xFA, 0xEC, 0xA9, 0xB9, 0x49, 0xD9, - 0x1B, 0x52, 0x66, 0x43, 0xB0, 0x8F, 0xCC, 0x92, 0xFC, 0xFC, 0x6F, 0x57, 0x22, 0xF8, 0xCF, 0xCB, - 0xDD, 0x5D, 0xEE, 0x3F, 0xDA, 0xCB, 0xBD, 0x91, 0x7F, 0xF2, 0x2B, 0x6C, 0x3D, 0x95, 0x3D, 0x3A, - 0x04, 0x8F, 0xB9, 0xE4, 0xC7, 0xCA, 0xBC, 0x95, 0xED, 0x19, 0x89, 0x75, 0x9A, 0x5B, 0x1C, 0xB4, - 0xE0, 0xAA, 0xF3, 0x2C, 0xA0, 0xCF, 0x26, 0x33, 0x6B, 0xC6, 0xB0, 0xF8, 0xE5, 0xCE, 0x73, 0xFD, - 0xB7, 0x57, 0x0B, 0x7C, 0x39, 0x5F, 0x24, 0x5C, 0x64, 0x3A, 0xAD, 0xC3, 0xC4, 0xA6, 0x5E, 0x8E, - 0xB0, 0x35, 0x6F, 0x36, 0x3D, 0xB4, 0x85, 0x0D, 0xC9, 0xE2, 0x0E, 0xB2, 0x15, 0x58, 0x9B, 0xBD, - 0xC5, 0x02, 0x72, 0xAE, 0xD5, 0xB6, 0xAA, 0x95, 0x39, 0x59, 0xE1, 0xC7, 0x9D, 0xE3, 0x7F, 0xC5, - 0x93, 0x7B, 0x69, 0x6F, 0x02, 0x5F, 0xDF, 0x9B, 0xF8, 0x2F, 0xE9, 0x62, 0xF4, 0xE4, 0xDB, 0x32, - 0x8C, 0xDD, 0x33, 0x5F, 0x2F, 0xAE, 0xE1, 0xDA, 0x84, 0xB0, 0xE0, 0x7F, 0x3D, 0x0F, 0xBE, 0x3A, - 0x69, 0x8A, 0xF4, 0xC4, 0xC6, 0xE9, 0xE2, 0xF2, 0xC1, 0xDF, 0x70, 0xAB, 0x7E, 0x65, 0xCF, 0xD2, - 0xB1, 0xFD, 0xEB, 0xD1, 0x1D, 0x26, 0xCD, 0x01, 0x5F, 0x6E, 0x6A, 0x7C, 0x64, 0x3F, 0x2E, 0x4F, - 0x76, 0x61, 0xA9, 0xCB, 0x87, 0x75, 0x74, 0x87, 0x29, 0xFC, 0xC4, 0xF9, 0xB1, 0x66, 0x25, 0xBE, - 0xF3, 0xEA, 0x83, 0x96, 0xF1, 0xCC, 0x56, 0xF9, 0x7D, 0xE2, 0xCA, 0xFC, 0xD5, 0x9E, 0xE4, 0xDB, - 0xFB, 0xBF, 0x98, 0xC3, 0x9E, 0xAA, 0x2B, 0xC2, 0x4D, 0x0D, 0xB2, 0x86, 0x30, 0xE3, 0xED, 0x24, - 0x95, 0xF4, 0xE0, 0xC9, 0x88, 0xE7, 0x33, 0x44, 0xD5, 0xFA, 0x29, 0x4A, 0xD4, 0x05, 0xB3, 0xEE, - 0xBD, 0x16, 0x80, 0xE1, 0xDE, 0x1C, 0xD4, 0x73, 0x5E, 0x8F, 0x3D, 0x56, 0x66, 0xA5, 0x42, 0x35, - 0x5D, 0xE4, 0x93, 0x3D, 0x7E, 0xAD, 0xD8, 0x47, 0x43, 0xE6, 0xAE, 0x68, 0xDD, 0x14, 0xB1, 0x06, - 0xC8, 0x8D, 0xBC, 0xCA, 0xAC, 0xED, 0x5E, 0x6F, 0x7D, 0x5C, 0x78, 0x9B, 0x81, 0x9F, 0x27, 0xA6, - 0x5A, 0x42, 0xAA, 0xE8, 0xE8, 0x89, 0x25, 0xA0, 0x9A, 0x37, 0x51, 0xCB, 0xCB, 0x39, 0x73, 0xDF, - 0x29, 0xB8, 0xEB, 0x88, 0x1A, 0x2A, 0x36, 0x81, 0xF9, 0xFE, 0x92, 0x9C, 0xA9, 0xA2, 0xAC, 0xB3, - 0xB9, 0xCE, 0x70, 0xE5, 0x13, 0x7F, 0xA0, 0x86, 0x3B, 0x7F, 0x4F, 0x61, 0x06, 0x5D, 0x99, 0x3A, - 0x33, 0xC9, 0xD6, 0x2D, 0xFA, 0xD6, 0xF8, 0xD9, 0xE0, 0x1F, 0x57, 0xD3, 0xE0, 0x0A, 0x5B, 0x9A, - 0xE8, 0x51, 0xF6, 0x2E, 0x71, 0x5F, 0x88, 0x36, 0x2D, 0x44, 0x75, 0x97, 0x1E, 0x68, 0x19, 0x05, - 0x82, 0xE4, 0xF8, 0x8C, 0xCA, 0xA4, 0x10, 0x4C, 0x06, 0x27, 0xA9, 0x00, 0xEA, 0xA1, 0x83, 0x7F, - 0x2E, 0xD0, 0xF9, 0x62, 0xE9, 0xED, 0x03, 0x83, 0x1F, 0x11, 0xCE, 0x92, 0xAC, 0x6A, 0x14, 0x78, - 0x57, 0x88, 0x8F, 0x4B, 0x4B, 0x29, 0x57, 0x7C, 0x8B, 0x06, 0xFE, 0x20, 0x05, 0xF2, 0xF0, 0x9C, - 0xB3, 0x9C, 0x7C, 0x6B, 0x73, 0xB1, 0x4B, 0x60, 0xE1, 0x0A, 0x9B, 0x8B, 0x9E, 0x2B, 0x91, 0x7F, - 0x21, 0x68, 0xF9, 0x6B, 0x09, 0x2A, 0xDA, 0xBC, 0x8F, 0x5B, 0x96, 0xFA, 0xBD, 0xC4, 0xB8, 0xF3, - 0x04, 0x90, 0xDC, 0x6B, 0xAB, 0x85, 0xAC, 0xF7, 0x34, 0xFC, 0xD7, 0x75, 0xDD, 0x5C, 0xB5, 0xCF, - 0xB3, 0xE7, 0x0B, 0x5B, 0x17, 0x85, 0xE7, 0x9A, 0x01, 0xB0, 0xA8, 0x6F, 0xE1, 0xF6, 0x56, 0x1C, - 0x8A, 0x44, 0xF9, 0xC3, 0x95, 0xF3, 0xFD, 0xB4, 0x6C, 0x6C, 0xB4, 0x53, 0xEB, 0x47, 0xD8, 0xD2, - 0x3E, 0x56, 0xE8, 0x43, 0x33, 0x46, 0x22, 0x88, 0xE1, 0x1A, 0x9E, 0x7C, 0xA0, 0x40, 0x2D, 0x70, - 0xE5, 0x5B, 0x2A, 0xEA, 0x54, 0x9D, 0x96, 0x32, 0x18, 0x81, 0x24, 0xD9, 0x78, 0x66, 0xCC, 0xFC, - 0x17, 0xF8, 0x61, 0xC9, 0x2F, 0xBE, 0xE4, 0xFA, 0xD0, 0xE9, 0xC1, 0x28, 0x56, 0xFC, 0x4C, 0xE2, - 0x47, 0x8E, 0x90, 0x21, 0x62, 0x7C, 0x67, 0x0B, 0xE6, 0xEB, 0x23, 0x3D, 0x2E, 0x26, 0x24, 0x6C, - 0x60, 0x08, 0x20, 0xF9, 0xEB, 0x04, 0x5C, 0xD8, 0x0D, 0x5A, 0x8B, 0x81, 0x3F, 0x67, 0xC6, 0x14, - 0x41, 0xC8, 0x06, 0xF1, 0xFD, 0x31, 0xFB, 0xC2, 0x29, 0xC8, 0x53, 0x60, 0x7A, 0x0E, 0x74, 0x7D, - 0x96, 0xCF, 0x53, 0x60, 0xB8, 0x67, 0x3D, 0x4E, 0x9E, 0x2F, 0xC0, 0x02, 0xFD, 0xA1, 0x6B, 0xEA, - 0x32, 0xAF, 0x6A, 0x6B, 0x29, 0x32, 0x4A, 0x2F, 0x7D, 0x95, 0x86, 0xDA, 0xCA, 0xCB, 0x1A, 0xC1, - 0x73, 0x69, 0xC1, 0x3D, 0xC0, 0xF2, 0x8C, 0x0C, 0x1E, 0x30, 0x4F, 0x0D, 0x30, 0xC0, 0xCE, 0x91, - 0xFE, 0x22, 0xF0, 0xCE, 0x1E, 0xEE, 0xF9, 0x07, 0x6D, 0x49, 0x7D, 0x5D, 0xF6, 0x38, 0x94, 0x25, - 0x53, 0x70, 0x6C, 0x8F, 0x34, 0x6B, 0xD8, 0xDA, 0x1C, 0xEF, 0x11, 0x2A, 0x2E, 0xF8, 0x46, 0xB5, - 0x2F, 0x26, 0xA3, 0x79, 0x67, 0x97, 0xB1, 0x71, 0x67, 0xDE, 0x7F, 0x65, 0xA6, 0x48, 0x30, 0xB3, - 0x67, 0x5E, 0xA4, 0x27, 0x00, 0xE4, 0x7C, 0x09, 0x93, 0x24, 0xB8, 0x0C, 0xAB, 0x15, 0xB1, 0x33, - 0xC9, 0x28, 0xF7, 0x6C, 0x8F, 0x94, 0x93, 0x10, 0xA3, 0x2F, 0x48, 0xD9, 0xF9, 0x9B, 0x93, 0x95, - 0xCA, 0x92, 0x09, 0x43, 0x2F, 0x15, 0x97, 0x9A, 0xCE, 0xD9, 0xE5, 0x9C, 0xD6, 0x8B, 0x49, 0x0A, - 0xF7, 0x3D, 0x8E, 0x17, 0x6F, 0xCE, 0xCF, 0xDF, 0x1C, 0x2F, 0x34, 0x94, 0x7C, 0x92, 0x97, 0x38, - 0xF2, 0x3D, 0x27, 0xFE, 0x4C, 0x3D, 0x50, 0x42, 0x98, 0xEE, 0x6D, 0xA2, 0xAD, 0x8F, 0x5A, 0x0F, - 0x31, 0x95, 0xA8, 0x64, 0x0A, 0x25, 0xBF, 0x3A, 0x18, 0xF3, 0x0A, 0x75, 0xCF, 0x11, 0xAF, 0xC0, - 0xFB, 0x8A, 0xF2, 0x67, 0x29, 0xAF, 0x05, 0x1F, 0x87, 0x5F, 0x90, 0x30, 0xB7, 0xFC, 0x1C, 0x9D, - 0x75, 0x79, 0x31, 0x62, 0x8E, 0x20, 0xF1, 0xE9, 0xA2, 0x84, 0x1E, 0xBA, 0xE7, 0xF4, 0xF1, 0x30, - 0xD8, 0xC3, 0xD7, 0x31, 0x1B, 0x04, 0x69, 0xE7, 0x0A, 0xA3, 0x98, 0xF2, 0xD9, 0x5D, 0x79, 0x28, - 0x63, 0x3B, 0xCC, 0x39, 0xE3, 0xE6, 0x9F, 0xD7, 0x6D, 0xD7, 0xC9, 0xE6, 0x51, 0x2F, 0xEB, 0x64, - 0x63, 0x6D, 0x72, 0xE2, 0x3E, 0x61, 0xA2, 0xBE, 0x40, 0x9C, 0x1D, 0x33, 0xF4, 0x8C, 0x75, 0x92, - 0x7B, 0x5E, 0xBC, 0xC8, 0x70, 0x3C, 0xBA, 0x92, 0x15, 0x67, 0x46, 0x82, 0xB7, 0x8E, 0x0E, 0x41, - 0x43, 0xE3, 0x50, 0x72, 0xC3, 0xEA, 0x28, 0xDB, 0xB7, 0xB7, 0x0E, 0xD3, 0x2F, 0x0E, 0xFD, 0x30, - 0x1A, 0xEF, 0xA5, 0x03, 0x15, 0x07, 0x84, 0x3F, 0x99, 0x51, 0x79, 0x94, 0x76, 0x35, 0xAB, 0x20, - 0xC9, 0x0F, 0xC6, 0xE2, 0xAF, 0xEF, 0x2A, 0x54, 0xFC, 0xD3, 0x68, 0xCE, 0x4A, 0x53, 0x3E, 0x79, - 0x79, 0xF6, 0x54, 0x5A, 0xFE, 0xE5, 0x03, 0x98, 0xDF, 0x2D, 0xE5, 0xCA, 0x5D, 0xE6, 0x6A, 0x19, - 0x85, 0x88, 0x3B, 0x4F, 0x8C, 0x86, 0xF9, 0x19, 0x23, 0x26, 0x29, 0x04, 0xE7, 0x4D, 0x6D, 0x89, - 0x08, 0x49, 0x1C, 0x56, 0x76, 0x76, 0xE5, 0xF9, 0xF8, 0xD9, 0x67, 0x37, 0x2B, 0xDC, 0x8B, 0x70, - 0x89, 0x7B, 0x2A, 0x67, 0xC2, 0x59, 0x98, 0xBA, 0xB1, 0x11, 0x21, 0xA1, 0x02, 0xDF, 0x37, 0x20, - 0x38, 0xCF, 0xAF, 0x22, 0x2C, 0x08, 0xE4, 0xDF, 0x3E, 0x83, 0x1C, 0x12, 0x41, 0xDF, 0x68, 0x0B, - 0xCF, 0x7F, 0x8E, 0x40, 0x7C, 0xDB, 0x1F, 0x07, 0x37, 0x70, 0x4E, 0x71, 0x60, 0x18, 0x13, 0xE4, - 0x2A, 0x4D, 0x47, 0x8F, 0x57, 0x57, 0xAF, 0xD3, 0x66, 0xA3, 0xB1, 0x32, 0x0C, 0xD3, 0xD5, 0x6E, - 0xDC, 0x49, 0xF0, 0xD7, 0x56, 0x7D, 0x72, 0xB9, 0x9A, 0x42, 0x44, 0xCC, 0x8D, 0x7A, 0x73, 0x6D, - 0xE5, 0x2A, 0x1D, 0x60, 0x74, 0xEB, 0x5D, 0xD6, 0x8F, 0x31, 0xC9, 0x32, 0x44, 0xAF, 0x83, 0x3C, - 0x56, 0xA3, 0x51, 0x82, 0x41, 0x44, 0x60, 0x74, 0xC0, 0xA4, 0x18, 0x92, 0x3A, 0x09, 0x43, 0x76, - 0x7E, 0x70, 0x7A, 0xFC, 0x14, 0xE3, 0x54, 0x62, 0x4F, 0x69, 0x98, 0x40, 0x34, 0xDE, 0xC7, 0x2C, - 0xEC, 0x5C, 0xC5, 0xAC, 0x1E, 0xF2, 0xBD, 0x87, 0xAF, 0xFE, 0x80, 0xFF, 0xF5, 0xA2, 0x02, 0xE5, - 0xE7, 0x2A, 0xE4, 0x6C, 0x3C, 0x49, 0x47, 0x93, 0x94, 0x25, 0xF1, 0x20, 0x84, 0x3C, 0x5E, 0x10, - 0x7E, 0x39, 0x1C, 0x50, 0x7E, 0xF9, 0x78, 0xD8, 0xE3, 0xBB, 0x46, 0x4A, 0xC1, 0xA5, 0x45, 0x0C, - 0x5B, 0x4E, 0xE6, 0x70, 0x8C, 0xE9, 0x96, 0x82, 0x76, 0x7C, 0x1D, 0xAE, 0x08, 0x28, 0xD4, 0x28, - 0x1A, 0x92, 0xD8, 0x2A, 0x1B, 0xE8, 0xDA, 0xD0, 0x14, 0x03, 0x62, 0x8F, 0x27, 0x43, 0xC8, 0xBB, - 0xC7, 0xAE, 0x53, 0x40, 0x91, 0x5D, 0xC5, 0x37, 0x90, 0x40, 0x72, 0x45, 0xE2, 0x84, 0x24, 0x60, - 0xED, 0xB0, 0x1F, 0xDF, 0xB0, 0x21, 0xFF, 0x7F, 0x02, 0xA3, 0xC6, 0x2E, 0x2A, 0x89, 0x44, 0x15, - 0x73, 0xFA, 0x50, 0xFB, 0x95, 0xEC, 0xEC, 0xAC, 0x9C, 0xED, 0x1D, 0xED, 0xC3, 0x14, 0xC1, 0x5E, - 0x5F, 0x6D, 0xF0, 0xD9, 0xAE, 0xFC, 0x5C, 0x79, 0xCC, 0xC7, 0x3F, 0x69, 0x6D, 0x74, 0x36, 0x2B, - 0x35, 0xF8, 0x5C, 0xF9, 0x97, 0xFF, 0xF6, 0xBF, 0x80, 0xDD, 0xA5, 0x12, 0xC8, 0x92, 0xED, 0x96, - 0x2C, 0xF9, 0x6F, 0xFE, 0x6B, 0x2C, 0x69, 0x53, 0x49, 0xA3, 0xD1, 0xD8, 0x16, 0x25, 0x3F, 0xA4, - 0x58, 0xD0, 0x51, 0x05, 0x1D, 0x59, 0xD0, 0xC3, 0x82, 0xAE, 0x2A, 0xE8, 0xCA, 0x82, 0x31, 0x16, - 0x84, 0xAA, 0x20, 0x90, 0x05, 0x43, 0x2C, 0xE8, 0xC9, 0x82, 0x76, 0x43, 0x14, 0xFC, 0xBF, 0xFF, - 0x2B, 0x16, 0x5C, 0xAA, 0x82, 0xA6, 0x2C, 0xF8, 0xDF, 0xB0, 0xE0, 0x4A, 0xE0, 0xBB, 0xDE, 0x5A, - 0x97, 0xA0, 0xE8, 0x17, 0x56, 0x7D, 0x7D, 0xB4, 0x04, 0x35, 0x22, 0xD5, 0x59, 0x5B, 0xD6, 0xB8, - 0xC6, 0xA6, 0x1F, 0xE4, 0x50, 0x9B, 0x5B, 0x72, 0xA8, 0xFF, 0xFC, 0xDF, 0x61, 0xC9, 0x47, 0x55, - 0xD2, 0x50, 0x25, 0xFF, 0x15, 0x96, 0xF4, 0x65, 0x89, 0x1A, 0xEB, 0xBF, 0xFC, 0xF3, 0x7F, 0x89, - 0x25, 0x03, 0xD5, 0x66, 0x5D, 0x95, 0xFC, 0x33, 0x96, 0x0C, 0x65, 0xC9, 0x9A, 0x6E, 0xF3, 0x7F, - 0x63, 0x49, 0x2C, 0x4A, 0xD6, 0xDA, 0x92, 0x0E, 0xFF, 0xF2, 0x1F, 0xFF, 0x4F, 0x2C, 0x19, 0xA9, - 0x92, 0xB6, 0x2A, 0xF9, 0xBF, 0xB0, 0xE4, 0x17, 0x85, 0x81, 0xC6, 0xED, 0xDF, 0x61, 0xC9, 0x58, - 0xB5, 0x51, 0xFD, 0xFC, 0x47, 0xEA, 0x27, 0x51, 0x25, 0x5D, 0x55, 0xF2, 0xFF, 0x60, 0x49, 0xAA, - 0xB0, 0xD6, 0xB8, 0xFD, 0xF7, 0x58, 0x32, 0x91, 0x25, 0x2D, 0x3D, 0x9E, 0xFF, 0x09, 0x4B, 0xAE, - 0xD5, 0x78, 0x74, 0xC9, 0xFF, 0x8E, 0x25, 0x37, 0xAA, 0x8D, 0x86, 0xF6, 0xBF, 0x60, 0xC9, 0x54, - 0x61, 0xAD, 0xD8, 0xEA, 0x9F, 0xFF, 0x3D, 0x96, 0xCC, 0x44, 0x49, 0x6B, 0x53, 0x41, 0xFB, 0x0F, - 0xD4, 0xCF, 0x5F, 0x54, 0xC9, 0x86, 0x2A, 0xF9, 0x9F, 0xB1, 0xE4, 0x57, 0x31, 0xA5, 0x6B, 0x1D, - 0x49, 0x83, 0xFF, 0x8F, 0x48, 0xF0, 0x9B, 0x6A, 0xA2, 0x88, 0xF3, 0x1F, 0xFE, 0x07, 0x2C, 0xB9, - 0x95, 0x5C, 0x10, 0xAC, 0x49, 0x06, 0xFA, 0x1F, 0xB1, 0xE0, 0x77, 0xC5, 0x59, 0x8F, 0x2A, 0x8C, - 0x0A, 0xFE, 0x8F, 0x8A, 0xAD, 0xDE, 0x50, 0x0B, 0xE9, 0xED, 0x37, 0x8C, 0x82, 0x8B, 0x60, 0xC2, - 0x90, 0xEA, 0xAE, 0xAF, 0xCA, 0x99, 0x55, 0xE5, 0x05, 0xAB, 0xBE, 0x3D, 0xC3, 0x80, 0xD5, 0x4B, - 0x9E, 0xCA, 0xFB, 0x93, 0x14, 0x35, 0x25, 0xBA, 0xFE, 0xBA, 0xA7, 0xD6, 0xCB, 0x88, 0x6F, 0x10, - 0x89, 0x5D, 0x6F, 0x0F, 0xE2, 0xE9, 0x57, 0x37, 0x7C, 0xB5, 0x61, 0x77, 0xB1, 0x2B, 0x9F, 0xE6, - 0x56, 0xDB, 0x0B, 0x86, 0x41, 0x37, 0x0A, 0x86, 0x56, 0xF5, 0x3F, 0x79, 0xAA, 0x7F, 0xCD, 0xBF, - 0x38, 0xD5, 0xBE, 0xF1, 0x54, 0x3B, 0x4C, 0x83, 0xBE, 0x0B, 0xEE, 0x7B, 0x4F, 0xBD, 0xD7, 0xF1, - 0xF8, 0x26, 0xBC, 0xE4, 0x35, 0xF7, 0x83, 0xCC, 0xD0, 0x0E, 0x70, 0x68, 0x9B, 0xBE, 0x7D, 0x6C, - 0x94, 0xAD, 0xFD, 0x67, 0x5F, 0xBD, 0x9B, 0xB0, 0xEB, 0xD6, 0x7B, 0x85, 0x50, 0x1F, 0x79, 0x6B, - 0x47, 0x49, 0x62, 0xD5, 0x7D, 0xEA, 0x1B, 0xD9, 0xD9, 0x9B, 0x23, 0x08, 0xE7, 0x6E, 0x56, 0x5C, - 0xDD, 0x55, 0xC7, 0xE4, 0xAB, 0xB0, 0x3F, 0x0A, 0xC7, 0xE2, 0x7C, 0x94, 0x8A, 0x2F, 0x06, 0xBA, - 0xAF, 0x3E, 0x3F, 0x78, 0x67, 0xA3, 0xB0, 0xC6, 0xAE, 0xF8, 0x21, 0xD8, 0x0F, 0xC7, 0x35, 0xD6, - 0x09, 0x46, 0x90, 0x46, 0x96, 0x04, 0xA4, 0xB0, 0xBF, 0x12, 0x74, 0xBB, 0x98, 0x9B, 0xE3, 0x28, - 0x4A, 0x52, 0xC8, 0xBC, 0x50, 0xF5, 0xD7, 0x07, 0xB9, 0x19, 0xCF, 0x67, 0x08, 0x9D, 0x60, 0x76, - 0xD2, 0xEB, 0x95, 0xE9, 0x65, 0x1C, 0x0E, 0xF8, 0xE9, 0xF4, 0x29, 0x1D, 0x51, 0x4A, 0x95, 0x6A, - 0x78, 0xAD, 0x15, 0x79, 0xE1, 0x35, 0x04, 0x06, 0x04, 0x98, 0xFB, 0x32, 0x67, 0x61, 0xE6, 0x13, - 0xA9, 0xF1, 0xF8, 0x67, 0x92, 0x31, 0xDE, 0x89, 0xB8, 0x58, 0x4A, 0xFB, 0x24, 0xE0, 0x24, 0x69, - 0x3C, 0x3A, 0x19, 0xC7, 0xA3, 0xE0, 0x12, 0xB3, 0x94, 0x22, 0x20, 0xE7, 0x9B, 0x82, 0x44, 0x98, - 0xBC, 0x98, 0xB4, 0xDB, 0x7D, 0xD3, 0x0F, 0xD3, 0x11, 0x62, 0x0C, 0xD4, 0xA3, 0xE1, 0x55, 0x38, - 0x8E, 0xD2, 0xA4, 0xDA, 0x81, 0x48, 0x68, 0x35, 0x46, 0x01, 0xDA, 0x68, 0x1C, 0xAA, 0x52, 0xAF, - 0x6A, 0x29, 0x05, 0xF9, 0x61, 0x9F, 0x70, 0xC8, 0x1D, 0x4A, 0xCF, 0x84, 0x0D, 0x49, 0x5C, 0xE2, - 0x4D, 0xB4, 0xC6, 0x93, 0x3D, 0x15, 0xC0, 0xF4, 0x27, 0xA8, 0x85, 0xD5, 0xAD, 0x5A, 0xC3, 0xF0, - 0x86, 0xF5, 0x10, 0x2B, 0xCE, 0x39, 0x7C, 0xCC, 0x6D, 0x08, 0xFE, 0xC1, 0x45, 0x96, 0xF6, 0x38, - 0xFE, 0x18, 0x42, 0xEE, 0xBD, 0x10, 0x08, 0x5C, 0xC1, 0x14, 0x9A, 0x20, 0xCF, 0x44, 0xA9, 0x0C, - 0x84, 0x2F, 0xD3, 0x2F, 0xAE, 0x18, 0xE3, 0x49, 0x5E, 0xF0, 0xE6, 0x2F, 0xB0, 0x69, 0x55, 0x06, - 0x83, 0x23, 0xEC, 0x49, 0xDE, 0xEE, 0xC2, 0x65, 0xA7, 0x6C, 0x94, 0xB8, 0x1D, 0xD1, 0x2C, 0xEC, - 0xB3, 0xFC, 0x30, 0x7F, 0x09, 0x5F, 0x7C, 0xA4, 0x53, 0xE0, 0xCC, 0xC4, 0x77, 0xA4, 0x70, 0xFC, - 0xEA, 0xFC, 0xF8, 0x08, 0xEE, 0x37, 0x57, 0x61, 0xBF, 0x1F, 0x43, 0x10, 0xB8, 0x7E, 0x17, 0x6F, - 0x3A, 0x00, 0xD7, 0x0A, 0x3C, 0x17, 0xF6, 0x97, 0x64, 0x17, 0x37, 0x10, 0xC5, 0x82, 0x03, 0xA0, - 0x6B, 0xF1, 0xB7, 0x10, 0xA6, 0x4F, 0x80, 0xA4, 0xA0, 0x77, 0xBD, 0x78, 0x98, 0x7E, 0xAB, 0x42, - 0xF3, 0x01, 0x8D, 0x2A, 0xAA, 0x69, 0xCB, 0xDB, 0x14, 0x7B, 0x23, 0xE6, 0xB6, 0x7A, 0x13, 0xCC, - 0xC0, 0x3B, 0x04, 0x7D, 0xDC, 0x4D, 0x0B, 0x49, 0x0F, 0x70, 0x28, 0xE1, 0x9C, 0xBC, 0x4D, 0xD0, - 0x6F, 0x3B, 0x0F, 0x28, 0x84, 0x9C, 0x8C, 0xB9, 0x26, 0x4B, 0xF5, 0x17, 0x55, 0xE3, 0x10, 0x34, - 0xE7, 0xD7, 0x3A, 0x70, 0xB0, 0xF1, 0x69, 0xC7, 0xE2, 0xB8, 0x6E, 0x38, 0x7D, 0xD3, 0xAB, 0xC6, - 0xED, 0x0F, 0x35, 0x8E, 0xB5, 0x9E, 0x1B, 0xB8, 0xC7, 0xF0, 0x8F, 0xC6, 0xFD, 0x51, 0xA8, 0x2E, - 0x23, 0x1D, 0x34, 0x1D, 0x96, 0x04, 0xAF, 0x83, 0x77, 0x08, 0xD0, 0xF9, 0xF5, 0xE5, 0xF5, 0x97, - 0xF4, 0xAC, 0xB7, 0x7A, 0x78, 0x60, 0x21, 0xB6, 0x18, 0x5D, 0x45, 0xAA, 0x50, 0x6B, 0x94, 0x1F, - 0x06, 0x70, 0x23, 0xFB, 0x61, 0xD2, 0xEB, 0x35, 0xC0, 0xCB, 0xCC, 0x5E, 0x25, 0x0A, 0x12, 0xD4, - 0x7B, 0x26, 0xEB, 0x35, 0xF1, 0x32, 0x67, 0xB4, 0x6C, 0x87, 0x95, 0x25, 0x71, 0x51, 0x01, 0x75, - 0xBB, 0x51, 0xB7, 0xD3, 0x72, 0xEB, 0x76, 0x1E, 0xE5, 0xD6, 0x0D, 0x32, 0x75, 0x7B, 0x79, 0x75, - 0xBB, 0x19, 0xB8, 0xDD, 0x5C, 0xB8, 0xDD, 0x0C, 0xDC, 0x6E, 0x27, 0xAF, 0x6E, 0xD8, 0x70, 0xEB, - 0x86, 0x9B, 0xB9, 0x75, 0xB7, 0x32, 0x75, 0x31, 0x82, 0x81, 0x49, 0x71, 0x54, 0x94, 0x60, 0xF8, - 0xC7, 0xEA, 0x98, 0xDF, 0xC6, 0x2E, 0xF9, 0xFF, 0xED, 0xA6, 0x9E, 0xEE, 0xAB, 0x00, 0x0F, 0x22, - 0x5E, 0x06, 0x51, 0x83, 0x9A, 0x9B, 0x18, 0x46, 0xE8, 0x12, 0x7F, 0xD9, 0x82, 0x9F, 0xDB, 0x4D, - 0x15, 0x8C, 0x40, 0x43, 0x5A, 0xF9, 0xA9, 0x13, 0x74, 0xAE, 0xC2, 0x0B, 0x68, 0xFC, 0xDE, 0x0D, - 0x68, 0x26, 0xE6, 0x2B, 0xA7, 0xB6, 0xBA, 0xD1, 0xA1, 0x41, 0xA0, 0x1B, 0xF5, 0x20, 0x3C, 0xC9, - 0xE1, 0x10, 0xF3, 0xDD, 0xCA, 0xF0, 0x37, 0xFD, 0x08, 0x7D, 0x0B, 0xC4, 0x6F, 0xA8, 0x14, 0x17, - 0x3F, 0x77, 0xC4, 0xBF, 0x63, 0x19, 0xCC, 0xEF, 0x52, 0xFE, 0xD0, 0x96, 0x3F, 0x00, 0x48, 0x33, - 0x67, 0x24, 0x28, 0xD3, 0xD5, 0x71, 0x79, 0xDD, 0x01, 0x84, 0x12, 0x9F, 0x5E, 0xBD, 0xC3, 0xBB, - 0x71, 0xEB, 0xA9, 0x08, 0xC3, 0x63, 0x58, 0xDB, 0x1D, 0x15, 0x98, 0xE9, 0x92, 0x7E, 0x95, 0x91, - 0x61, 0xDA, 0xF4, 0x6B, 0x4B, 0x6A, 0xFB, 0xC5, 0xA8, 0x0C, 0x0A, 0xF0, 0xE3, 0x3E, 0x85, 0x33, - 0xC1, 0x98, 0x02, 0x18, 0x04, 0xE0, 0x0F, 0xA8, 0x9B, 0x06, 0x3B, 0x6A, 0x6C, 0xDB, 0xA8, 0x91, - 0x20, 0x91, 0x54, 0x96, 0x65, 0x7D, 0x53, 0x55, 0xBB, 0x27, 0x44, 0x52, 0xA3, 0xA5, 0xC0, 0x85, - 0xA8, 0x92, 0x85, 0xE6, 0xC6, 0x4D, 0xC9, 0x9B, 0x63, 0x88, 0x6E, 0x8B, 0x7C, 0x95, 0xA9, 0x60, - 0xDC, 0xAD, 0xC5, 0x65, 0x99, 0x0F, 0xB5, 0xF3, 0x91, 0x6F, 0x77, 0xE3, 0x1E, 0xE4, 0x44, 0xEF, - 0xC4, 0x83, 0x55, 0x8C, 0xB3, 0x01, 0x29, 0xC0, 0x56, 0x9B, 0x9B, 0x6B, 0x6B, 0x5B, 0xAD, 0xAD, - 0x07, 0x1E, 0xDA, 0x98, 0x16, 0xB9, 0x1C, 0x32, 0xE1, 0xB0, 0x04, 0xA6, 0x18, 0x8E, 0x60, 0x14, - 0xDF, 0x54, 0xD7, 0x1A, 0x5C, 0xBE, 0x01, 0xFE, 0xAD, 0xF3, 0xAA, 0x4B, 0x35, 0xD6, 0xA2, 0xC5, - 0xB2, 0xAC, 0x6B, 0x6C, 0x6C, 0x43, 0x8D, 0x4B, 0xA8, 0x71, 0xE9, 0xAF, 0xD1, 0x6C, 0x42, 0x8D, - 0x36, 0xD4, 0x68, 0x53, 0x0D, 0x52, 0x32, 0xA8, 0x55, 0x14, 0xF2, 0xA1, 0xD2, 0x5E, 0x19, 0xA5, - 0x28, 0x8A, 0xC4, 0x43, 0xBD, 0x83, 0xC1, 0x76, 0xC9, 0xB9, 0xED, 0x20, 0x80, 0x6D, 0x4D, 0x06, - 0xA0, 0xD1, 0xDF, 0xAA, 0xBA, 0xC9, 0xCE, 0x03, 0x7F, 0x64, 0x6D, 0x63, 0xC3, 0x35, 0x79, 0x12, - 0x1A, 0x72, 0x61, 0xA2, 0xDF, 0xAF, 0x76, 0x20, 0xFD, 0x2D, 0x6D, 0xB9, 0x1C, 0x05, 0xFC, 0x51, - 0x46, 0x1D, 0x31, 0xB0, 0xFC, 0x18, 0xCE, 0x12, 0xC0, 0x46, 0xA3, 0xF6, 0xA6, 0xFD, 0x21, 0xEC, - 0xA4, 0x60, 0xF6, 0x4C, 0x14, 0x6A, 0xC6, 0xB7, 0xAA, 0x84, 0x03, 0xF8, 0xF0, 0x0F, 0x68, 0x07, - 0x05, 0x61, 0x93, 0xC2, 0x0D, 0x23, 0xAA, 0xA0, 0x32, 0x8B, 0x70, 0x40, 0xE6, 0xF6, 0x2F, 0x80, - 0x68, 0xCB, 0x2A, 0xE7, 0x93, 0x37, 0x37, 0x43, 0x90, 0x86, 0xC2, 0x71, 0x3A, 0x23, 0xAC, 0x91, - 0x60, 0x60, 0x59, 0xD5, 0x0C, 0x09, 0xF0, 0x29, 0x2D, 0x86, 0x0C, 0x46, 0x22, 0x99, 0x50, 0xCD, - 0x2C, 0x54, 0x21, 0x41, 0x84, 0x64, 0xD7, 0x83, 0xE9, 0x08, 0x52, 0x40, 0xDB, 0xAA, 0x1D, 0x14, - 0x14, 0x0F, 0x30, 0x99, 0x19, 0x88, 0x3F, 0xE6, 0xAF, 0x3B, 0xBA, 0x96, 0x94, 0xAB, 0x80, 0xE1, - 0xC5, 0x8F, 0x46, 0x29, 0x06, 0xFD, 0x8D, 0x87, 0xE6, 0x17, 0x5C, 0x2C, 0x31, 0xAC, 0x15, 0x2D, - 0x62, 0xA3, 0x30, 0x07, 0x2B, 0x1C, 0x7F, 0xE0, 0x5C, 0x81, 0x7A, 0x60, 0x3E, 0xE6, 0xB8, 0x07, - 0x31, 0x63, 0x26, 0xFC, 0x70, 0xC4, 0xC0, 0x45, 0x93, 0x21, 0xE6, 0xED, 0x0E, 0xBB, 0x42, 0xB7, - 0x48, 0x65, 0x2B, 0xE1, 0x14, 0x53, 0x90, 0x1A, 0xDB, 0x0B, 0x1F, 0x9C, 0x56, 0xF1, 0xE3, 0x21, - 0xAD, 0x32, 0x71, 0x5B, 0x95, 0x1E, 0x3C, 0xB8, 0x5D, 0x22, 0x42, 0x3A, 0x21, 0x56, 0x8D, 0x08, - 0x2F, 0x78, 0x24, 0x08, 0x64, 0x28, 0x17, 0x91, 0x8B, 0x0C, 0x7B, 0x2E, 0x0B, 0x1E, 0xB3, 0xCB, - 0x7E, 0xDC, 0x0E, 0x40, 0xFE, 0xB8, 0xAD, 0x42, 0x18, 0x86, 0x27, 0xAB, 0x90, 0x45, 0x7B, 0x94, - 0x3E, 0x7B, 0xF0, 0xFF, 0x03, 0xE3, 0xE0, 0x92, 0x42, 0x39, 0x4A, 0x02, 0x00, - })) + 0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEC, 0xBD, 0xED, 0x7A, 0xDB, 0x38, + 0xD2, 0x20, 0xFA, 0x7B, 0xFB, 0x16, 0xCE, 0x1F, 0x9A, 0xDB, 0xAF, 0x96, 0x88, 0x21, 0x46, 0xF2, + 0x57, 0x12, 0x29, 0x8C, 0xD7, 0xB1, 0x9D, 0x6E, 0x6F, 0x3B, 0x71, 0x1E, 0xDB, 0x3D, 0x3D, 0xBD, + 0x1E, 0x3F, 0x0E, 0x2D, 0x42, 0x16, 0x27, 0x14, 0xA1, 0x21, 0x20, 0x7F, 0x8C, 0xC4, 0xBD, 0x96, + 0xBD, 0x96, 0xBD, 0xB2, 0xF3, 0xE0, 0x93, 0x20, 0x09, 0x52, 0x72, 0xD2, 0xB3, 0xF3, 0x9E, 0x33, + 0xD3, 0x3F, 0x3A, 0x16, 0x08, 0x14, 0x0A, 0x85, 0x42, 0xA1, 0x50, 0x28, 0x54, 0xBD, 0xDD, 0x88, + 0xF0, 0x88, 0x3E, 0xCD, 0x90, 0x33, 0xA1, 0xD3, 0xE4, 0xDD, 0x0F, 0x6F, 0xC5, 0x3F, 0x8E, 0xF3, + 0x76, 0x82, 0xC2, 0x88, 0xFD, 0xE1, 0x38, 0x6F, 0x69, 0x4C, 0x13, 0xF4, 0xEE, 0x12, 0x65, 0xD3, + 0x38, 0x0D, 0x93, 0xB7, 0x2F, 0xC5, 0xEF, 0x1F, 0xC4, 0xC7, 0x8D, 0x6E, 0x97, 0xFF, 0xE1, 0x38, + 0xDD, 0xAE, 0xB3, 0xF1, 0xFC, 0xFF, 0xFE, 0xA0, 0xC6, 0x97, 0x13, 0xE4, 0x3C, 0x52, 0x94, 0x4D, + 0x9D, 0x11, 0x8E, 0x90, 0x43, 0x68, 0x98, 0x51, 0xE2, 0x4C, 0x50, 0x86, 0x7C, 0x27, 0xC2, 0x4E, + 0x8A, 0x9D, 0x29, 0x8E, 0xE2, 0xF1, 0x93, 0x13, 0xC5, 0x19, 0x1A, 0xD1, 0xE4, 0x09, 0x16, 0x6D, + 0x43, 0xE2, 0xD0, 0x09, 0x72, 0xC8, 0x28, 0x8B, 0x67, 0xD4, 0xC9, 0xD0, 0x43, 0x16, 0x53, 0xC4, + 0xCA, 0x62, 0xE2, 0x10, 0x34, 0xA2, 0x31, 0x4E, 0x9D, 0x70, 0x4E, 0xF1, 0x34, 0xA4, 0xF1, 0x28, + 0x4C, 0x92, 0x27, 0xFF, 0x9F, 0x3C, 0xE2, 0x6E, 0xB7, 0xAB, 0xC8, 0x4F, 0xE8, 0x13, 0x9B, 0x0B, + 0x01, 0xF2, 0xE5, 0x0B, 0x87, 0x91, 0xA0, 0x3B, 0x22, 0xA4, 0xCB, 0x29, 0xE0, 0xBC, 0x78, 0xF9, + 0xC3, 0xCB, 0x17, 0x2F, 0x7E, 0x70, 0x5E, 0x38, 0x87, 0x78, 0xF6, 0x94, 0xC5, 0x77, 0x13, 0xEA, + 0x78, 0x23, 0xE0, 0x6C, 0xF5, 0xFA, 0x3B, 0x05, 0xCD, 0xFC, 0xBF, 0x12, 0x36, 0xC0, 0x09, 0xCE, + 0x88, 0xEF, 0x1C, 0x24, 0x89, 0xC3, 0x2B, 0x12, 0x27, 0x43, 0x04, 0x65, 0xF7, 0x28, 0xF2, 0xAD, + 0x00, 0xB6, 0xBA, 0x5B, 0xBD, 0xFE, 0x36, 0x74, 0x0E, 0x27, 0x59, 0x4C, 0x28, 0x9E, 0x4D, 0x50, + 0xE6, 0xFC, 0x0F, 0x34, 0x1E, 0x67, 0xE8, 0xC9, 0xF1, 0x3E, 0x9E, 0x5C, 0x3A, 0xA7, 0xF1, 0x08, + 0xA5, 0x04, 0x01, 0xD6, 0x7A, 0x42, 0xE9, 0x8C, 0x0C, 0x5E, 0xBE, 0xBC, 0x8B, 0xE9, 0x64, 0x7E, + 0xEB, 0x8F, 0xF0, 0xF4, 0xE5, 0x68, 0xF2, 0xD7, 0xBF, 0xBE, 0x94, 0xDD, 0xB3, 0x2A, 0xFF, 0x3D, + 0x11, 0xF5, 0x9D, 0x8F, 0x27, 0x97, 0x3F, 0x38, 0x1C, 0xE9, 0xCF, 0x8C, 0xE7, 0x08, 0x61, 0x13, + 0x10, 0x8B, 0xD9, 0xBC, 0x7D, 0x72, 0xEE, 0xB2, 0x30, 0xA5, 0x28, 0x82, 0xCE, 0x38, 0x43, 0xC8, + 0xC1, 0x63, 0x67, 0x34, 0x09, 0xB3, 0x3B, 0x04, 0x1D, 0x8A, 0x9D, 0x30, 0x7D, 0x72, 0x66, 0x28, + 0x23, 0x38, 0x75, 0xF0, 0x2D, 0x0D, 0xE3, 0x34, 0x4E, 0xEF, 0x9C, 0xD0, 0x19, 0xE1, 0xD9, 0x13, + 0x83, 0x87, 0xC7, 0x72, 0x56, 0xF1, 0x98, 0x3E, 0x84, 0x19, 0x72, 0xC2, 0x34, 0x72, 0x42, 0x42, + 0xF0, 0x28, 0x0E, 0x29, 0x8A, 0x9C, 0x08, 0x8F, 0xE6, 0x53, 0x94, 0xD2, 0x90, 0xCF, 0xF9, 0x38, + 0x4E, 0x10, 0x71, 0x3C, 0xC6, 0x1B, 0xEE, 0x85, 0x6C, 0xE1, 0x02, 0xDE, 0x4F, 0x84, 0xC2, 0x84, + 0x01, 0x8C, 0x53, 0xCE, 0x3A, 0xEA, 0xAB, 0xF3, 0x10, 0xD3, 0x09, 0x9E, 0x33, 0x26, 0x22, 0x34, + 0x8B, 0x39, 0xEB, 0x40, 0x27, 0x4E, 0x47, 0xC9, 0x3C, 0x62, 0x98, 0xA8, 0xCF, 0x49, 0x3C, 0x8D, + 0x65, 0x27, 0xAC, 0xB9, 0x20, 0x37, 0x83, 0x47, 0xB1, 0x33, 0x27, 0x08, 0x72, 0x84, 0xA1, 0x64, + 0x59, 0xE8, 0x4C, 0x11, 0x1F, 0xDF, 0x6C, 0x7E, 0x9B, 0xC4, 0x64, 0x02, 0x9D, 0x28, 0x66, 0xD0, + 0x6F, 0xE7, 0x14, 0x41, 0x87, 0xB0, 0x42, 0x4E, 0x37, 0xC8, 0x46, 0xF3, 0x12, 0x67, 0x0E, 0x41, + 0x09, 0x47, 0x6E, 0x84, 0x67, 0x31, 0x22, 0x62, 0xD0, 0x05, 0x8E, 0xBC, 0x1A, 0xEB, 0x68, 0xC6, + 0x88, 0x4B, 0x25, 0xB9, 0x08, 0x2B, 0x79, 0x98, 0xE0, 0x69, 0x79, 0x3C, 0x31, 0xC7, 0x6A, 0x3C, + 0xCF, 0xD2, 0x98, 0x4C, 0x10, 0x6F, 0x16, 0x61, 0x87, 0x60, 0xDE, 0xEF, 0x5F, 0xD1, 0x88, 0xB2, + 0x12, 0xD6, 0x62, 0x8C, 0x93, 0x04, 0x3F, 0xB0, 0x31, 0x8E, 0x70, 0x1A, 0xC5, 0x6C, 0x68, 0x64, + 0x20, 0x67, 0x91, 0xF1, 0x59, 0x78, 0x8B, 0xEF, 0x11, 0x1F, 0x96, 0xE0, 0xA1, 0x14, 0xD3, 0x78, + 0x24, 0xE8, 0xCF, 0x67, 0x64, 0x56, 0xCC, 0xB4, 0xFC, 0x44, 0x26, 0x61, 0x92, 0x38, 0xB7, 0x48, + 0x92, 0x0F, 0x45, 0x4E, 0x9C, 0x32, 0x68, 0xAC, 0x54, 0x8D, 0x2C, 0x63, 0x68, 0x10, 0x1A, 0xA6, + 0x34, 0x0E, 0x13, 0x67, 0x86, 0x33, 0xDE, 0x6F, 0x75, 0xC4, 0xBE, 0xC2, 0xE3, 0xE7, 0x63, 0xE7, + 0xE2, 0xEC, 0xC3, 0xE5, 0x6F, 0x07, 0xE7, 0xC7, 0xCE, 0xC9, 0x85, 0xF3, 0xF9, 0xFC, 0xEC, 0x4F, + 0x27, 0x47, 0xC7, 0x47, 0x8E, 0x7B, 0x70, 0xE1, 0x9C, 0x5C, 0xB8, 0xD0, 0xF9, 0xED, 0xE4, 0xF2, + 0xE7, 0xB3, 0x5F, 0x2F, 0x9D, 0xDF, 0x0E, 0xCE, 0xCF, 0x0F, 0x3E, 0x5D, 0xFE, 0xEE, 0x9C, 0x7D, + 0x70, 0x0E, 0x3E, 0xFD, 0xEE, 0xFC, 0x72, 0xF2, 0xE9, 0x08, 0x3A, 0xC7, 0x7F, 0xFE, 0x7C, 0x7E, + 0x7C, 0x71, 0xE1, 0x9C, 0x9D, 0x33, 0x68, 0x27, 0x1F, 0x3F, 0x9F, 0x9E, 0x1C, 0x1F, 0x41, 0xE7, + 0xE4, 0xD3, 0xE1, 0xE9, 0xAF, 0x47, 0x27, 0x9F, 0x7E, 0x72, 0xDE, 0xFF, 0x7A, 0xE9, 0x7C, 0x3A, + 0xBB, 0x74, 0x4E, 0x4F, 0x3E, 0x9E, 0x5C, 0x1E, 0x1F, 0x39, 0x97, 0x67, 0xBC, 0x4F, 0x09, 0xED, + 0xE4, 0xF8, 0x82, 0xC1, 0xFB, 0x78, 0x7C, 0x7E, 0xF8, 0xF3, 0xC1, 0xA7, 0xCB, 0x83, 0xF7, 0x27, + 0xA7, 0x27, 0x97, 0xBF, 0x43, 0x06, 0xEB, 0xC3, 0xC9, 0xE5, 0x27, 0x06, 0xF9, 0xC3, 0xD9, 0xB9, + 0x73, 0xE0, 0x7C, 0x3E, 0x38, 0xBF, 0x3C, 0x39, 0xFC, 0xF5, 0xF4, 0xE0, 0xDC, 0xF9, 0xFC, 0xEB, + 0xF9, 0xE7, 0xB3, 0x8B, 0x63, 0xE7, 0xE0, 0xD3, 0x91, 0xF3, 0xE9, 0xEC, 0xD3, 0xC9, 0xA7, 0x0F, + 0xE7, 0x27, 0x9F, 0x7E, 0x3A, 0xFE, 0x78, 0xFC, 0xE9, 0xD2, 0x77, 0x4E, 0x3E, 0x39, 0x9F, 0xCE, + 0x9C, 0xE3, 0x3F, 0x1D, 0x7F, 0xBA, 0x74, 0x2E, 0x7E, 0x3E, 0x38, 0x3D, 0x65, 0xBD, 0x31, 0x70, + 0x07, 0xBF, 0x5E, 0xFE, 0x7C, 0x76, 0xCE, 0x10, 0x75, 0x0E, 0xCF, 0x3E, 0xFF, 0x7E, 0x7E, 0xF2, + 0xD3, 0xCF, 0x97, 0xCE, 0xCF, 0x67, 0xA7, 0x47, 0xC7, 0xE7, 0x17, 0xCE, 0xFB, 0x63, 0xE7, 0xF4, + 0xE4, 0xE0, 0xFD, 0xE9, 0xB1, 0xE8, 0xED, 0xD3, 0xEF, 0xCE, 0xE1, 0xE9, 0xC1, 0xC9, 0x47, 0xE8, + 0x1C, 0x1D, 0x7C, 0x3C, 0xF8, 0xE9, 0x98, 0xB7, 0x3A, 0xBB, 0xFC, 0xF9, 0x98, 0x0F, 0x92, 0xD5, + 0x14, 0x68, 0x3A, 0xBF, 0xFD, 0x7C, 0xCC, 0x4A, 0x59, 0xAF, 0x07, 0x9F, 0x9C, 0x83, 0xC3, 0xCB, + 0x93, 0xB3, 0x4F, 0x6C, 0x3C, 0x87, 0x67, 0x9F, 0x2E, 0xCF, 0x0F, 0x0E, 0x2F, 0xA1, 0x73, 0x79, + 0x76, 0x7E, 0xA9, 0x5B, 0xFF, 0x76, 0x72, 0x71, 0x0C, 0x9D, 0x83, 0xF3, 0x93, 0x0B, 0x46, 0x99, + 0x0F, 0xE7, 0x67, 0x1F, 0xF9, 0x48, 0x19, 0x75, 0xCF, 0x3E, 0xB0, 0x5A, 0x27, 0x9F, 0x58, 0xD3, + 0x4F, 0xC7, 0x02, 0x10, 0xA3, 0x7C, 0x79, 0x82, 0xCE, 0xCE, 0xF9, 0xEF, 0x5F, 0x2F, 0x8E, 0x35, + 0x4C, 0xE7, 0xE8, 0xF8, 0xE0, 0xF4, 0xE4, 0xD3, 0x4F, 0x17, 0xCE, 0xC9, 0xA7, 0xEA, 0x84, 0xAA, + 0x49, 0x3E, 0xCB, 0xE2, 0x3B, 0xB6, 0x4D, 0x25, 0x4F, 0xCE, 0x18, 0x67, 0x5F, 0x51, 0xE4, 0x8C, + 0x33, 0x3C, 0x75, 0x3C, 0xB6, 0xF4, 0x38, 0x57, 0x08, 0x41, 0xF7, 0xDF, 0x4C, 0x96, 0x03, 0x8C, + 0x53, 0x1D, 0xC7, 0xF9, 0x10, 0xDE, 0x66, 0x8C, 0xF5, 0xDE, 0xA3, 0x24, 0x09, 0xB3, 0xE8, 0xBF, + 0x11, 0xE7, 0xAF, 0xE1, 0x7D, 0x28, 0xF7, 0x85, 0x7B, 0xDA, 0xEF, 0xF5, 0x18, 0x4C, 0xE7, 0xAF, + 0x24, 0x89, 0xD3, 0xF9, 0xA3, 0x6C, 0xC4, 0x24, 0xDB, 0xE0, 0xE5, 0xCB, 0x5B, 0xD1, 0xC6, 0xC7, + 0xD9, 0xDD, 0x4B, 0x59, 0xE1, 0xA5, 0xA8, 0x50, 0x13, 0x9C, 0xFD, 0x6A, 0x47, 0xA2, 0x1E, 0x5B, + 0x26, 0x58, 0x62, 0xEF, 0x44, 0x88, 0xC4, 0x77, 0xA9, 0x93, 0xA1, 0x69, 0x18, 0xA7, 0xC4, 0xE7, + 0x1F, 0xA9, 0xDC, 0x81, 0x9D, 0x98, 0x12, 0x94, 0x8C, 0x65, 0xF7, 0x21, 0x71, 0x6E, 0x11, 0x4A, + 0x1D, 0xF4, 0x48, 0x51, 0x1A, 0x89, 0x35, 0x2A, 0x97, 0x8C, 0xDC, 0x11, 0x0F, 0x2F, 0x4E, 0xF8, + 0xAE, 0x48, 0xA0, 0x13, 0x4E, 0x71, 0x7A, 0x27, 0x1A, 0x62, 0xCA, 0x04, 0xF6, 0x18, 0x85, 0x74, + 0x9E, 0x21, 0xC2, 0xC8, 0xF7, 0xF2, 0x07, 0xB5, 0x59, 0x38, 0x47, 0x68, 0x1C, 0xCE, 0x13, 0xEA, + 0xF0, 0xED, 0x85, 0xF0, 0x51, 0x3F, 0x16, 0xA2, 0xFA, 0xE5, 0x0F, 0x3F, 0xF8, 0x02, 0xF4, 0x82, + 0xEF, 0x3C, 0xA3, 0x79, 0x46, 0x70, 0x36, 0x70, 0x28, 0x7A, 0xA4, 0x43, 0x5E, 0x32, 0xC3, 0x84, + 0xCB, 0x80, 0x81, 0x93, 0xA1, 0x24, 0xA4, 0xF1, 0x3D, 0x12, 0xE5, 0x73, 0x82, 0xB2, 0x2E, 0x41, + 0x09, 0x1A, 0xD1, 0x81, 0x93, 0xE2, 0x54, 0x16, 0x77, 0xA7, 0xA4, 0xDB, 0xF4, 0xE9, 0x01, 0xDD, + 0x7E, 0x8D, 0xA9, 0xED, 0x73, 0xAE, 0xD0, 0xF0, 0xC7, 0x78, 0x34, 0x27, 0x50, 0xFE, 0x1A, 0xF0, + 0x5F, 0x12, 0x35, 0x3C, 0xA7, 0x49, 0x9C, 0xA2, 0x5A, 0x13, 0x47, 0xFC, 0xD3, 0x9D, 0xA0, 0x84, + 0x09, 0x40, 0x59, 0xBB, 0x40, 0x3B, 0xBC, 0x25, 0x38, 0x99, 0x53, 0x89, 0x04, 0xC5, 0xB3, 0x81, + 0xD3, 0x13, 0x7F, 0x73, 0x12, 0xB1, 0xFF, 0x84, 0x60, 0xFB, 0x7B, 0x37, 0x4E, 0x23, 0xF4, 0xA8, + 0x64, 0x8E, 0x82, 0x37, 0x9D, 0x13, 0xCA, 0x84, 0xD7, 0x24, 0xBE, 0x63, 0x64, 0xA6, 0x93, 0x50, + 0x88, 0xFA, 0x51, 0x98, 0xDE, 0x87, 0x04, 0x11, 0xB6, 0x73, 0xE0, 0x2C, 0x62, 0x33, 0x80, 0x33, + 0x05, 0xEF, 0xE4, 0xE3, 0x31, 0x97, 0xC3, 0xE1, 0x6C, 0x86, 0xC2, 0xCC, 0x61, 0xBB, 0x03, 0x9E, + 0x49, 0x65, 0xE3, 0xC5, 0x4B, 0xFE, 0xAF, 0xEC, 0x6E, 0xE0, 0xEC, 0x36, 0x0E, 0xA6, 0xCB, 0xA6, + 0x21, 0xCC, 0x50, 0xA8, 0x06, 0x15, 0x46, 0x6C, 0xF3, 0xD1, 0x03, 0xB8, 0xE5, 0xFD, 0xEA, 0x9F, + 0xD3, 0x30, 0xBB, 0x8B, 0x53, 0x63, 0x78, 0xCE, 0x47, 0x26, 0xAA, 0x35, 0x10, 0xB6, 0x5F, 0xC9, + 0xC1, 0x91, 0x51, 0xC6, 0x38, 0x4D, 0x89, 0xFC, 0x30, 0x73, 0x12, 0x34, 0xA6, 0xD0, 0x21, 0xAC, + 0x20, 0xA4, 0x62, 0x80, 0x9C, 0x17, 0xD8, 0x76, 0x9D, 0x62, 0xEA, 0xDC, 0xC7, 0x24, 0xBE, 0x4D, + 0x90, 0xC2, 0xBE, 0x89, 0xBE, 0x78, 0x16, 0x8E, 0x62, 0xFA, 0xA4, 0x91, 0x60, 0x60, 0x07, 0x4E, + 0xF7, 0xCD, 0x9B, 0x37, 0x6F, 0xD0, 0xB4, 0x3E, 0x05, 0x0F, 0x71, 0x44, 0x27, 0xFA, 0xD7, 0x04, + 0xB1, 0xC5, 0xA5, 0x7F, 0x6A, 0x0A, 0x75, 0x77, 0xF5, 0x84, 0x39, 0x9F, 0x33, 0x74, 0x8F, 0x52, + 0xEA, 0x3C, 0x64, 0xE1, 0x6C, 0xC6, 0x76, 0x29, 0x22, 0xC6, 0x70, 0xF2, 0xF1, 0x58, 0x52, 0x9B, + 0x38, 0xE1, 0x1D, 0x5B, 0x6A, 0x62, 0x14, 0x7A, 0xF4, 0x6A, 0x54, 0x38, 0x63, 0x6A, 0xA3, 0x1E, + 0x80, 0x1A, 0xD0, 0xC3, 0x24, 0xA6, 0xA8, 0x4B, 0x66, 0xE1, 0x88, 0xB3, 0x18, 0x03, 0x2F, 0x47, + 0x74, 0x8F, 0xB2, 0x71, 0x82, 0x1F, 0x06, 0xCE, 0x24, 0x8E, 0x22, 0x94, 0x8A, 0xD2, 0x0C, 0x91, + 0xF8, 0xEF, 0x36, 0x66, 0x1C, 0xE1, 0xA9, 0x02, 0xDD, 0xBD, 0x8F, 0xD1, 0x83, 0x9C, 0xBA, 0x97, + 0x2F, 0x9C, 0xCB, 0xB3, 0xA3, 0xB3, 0x81, 0x73, 0x58, 0x7C, 0x2F, 0x70, 0xB8, 0xC3, 0xD4, 0x99, + 0x22, 0x42, 0x50, 0xE4, 0xCC, 0x67, 0x0E, 0xC1, 0x53, 0xF4, 0xC0, 0x54, 0x24, 0x85, 0xDB, 0x6D, + 0x38, 0xFA, 0x7A, 0x97, 0xE1, 0x79, 0x1A, 0x0D, 0x9C, 0xFF, 0xDA, 0xEB, 0x49, 0xF2, 0x8C, 0x70, + 0xC2, 0x96, 0xEA, 0x7F, 0xFD, 0xF0, 0xE1, 0x83, 0x28, 0x88, 0x62, 0x32, 0x4B, 0xC2, 0x27, 0x73, + 0xCD, 0x35, 0x4D, 0x53, 0xE3, 0x68, 0x35, 0xCD, 0xFB, 0xAD, 0xA3, 0xF2, 0xC3, 0x11, 0x13, 0x05, + 0x72, 0x70, 0xBA, 0xE3, 0xDB, 0x04, 0x8F, 0xBE, 0x5A, 0xD8, 0x99, 0x35, 0x61, 0x7B, 0x7A, 0x41, + 0x8C, 0xB3, 0xD4, 0x39, 0xBB, 0x70, 0xFE, 0x2C, 0x54, 0x86, 0x98, 0x29, 0xA8, 0x7F, 0x9B, 0xC7, + 0x19, 0x57, 0x0D, 0x8A, 0xD5, 0xA4, 0x58, 0x15, 0x33, 0xF5, 0x21, 0xCC, 0x8C, 0x05, 0x35, 0x9E, + 0xB3, 0x6D, 0x01, 0xCF, 0xC2, 0xBF, 0xCD, 0x2D, 0x54, 0xEA, 0x2A, 0xD2, 0x68, 0x5A, 0xA9, 0x49, + 0xEC, 0x3E, 0x0D, 0x24, 0xC0, 0x61, 0x49, 0xDE, 0x45, 0x42, 0x4A, 0xB6, 0x13, 0x2D, 0x2B, 0x71, + 0xA7, 0xE0, 0xEC, 0x5E, 0x9D, 0xA7, 0x6F, 0x31, 0xA5, 0x78, 0xCA, 0x7F, 0xD6, 0x08, 0x21, 0xD7, + 0x5D, 0x55, 0x46, 0x15, 0xA2, 0xB5, 0xA9, 0x85, 0x90, 0x36, 0x2B, 0x84, 0x9B, 0x15, 0x25, 0x1B, + 0x44, 0x9C, 0x24, 0x5D, 0x43, 0xAE, 0xF0, 0xB5, 0x1D, 0x27, 0x7C, 0xDD, 0x2A, 0x26, 0xD7, 0xCD, + 0xBA, 0x4C, 0x29, 0xEF, 0x4E, 0x51, 0x48, 0xE6, 0x19, 0xEA, 0xA2, 0x04, 0x31, 0xB5, 0xBA, 0x3A, + 0xF1, 0x71, 0xCA, 0x64, 0x73, 0x57, 0xCE, 0x7F, 0x13, 0xCC, 0x75, 0x05, 0xB3, 0x45, 0x68, 0x70, + 0xF0, 0x4A, 0x3E, 0xA4, 0x38, 0x9B, 0x86, 0x89, 0xB9, 0x6D, 0xA0, 0x34, 0xBC, 0x4D, 0x50, 0x77, + 0x8A, 0xE7, 0x04, 0x75, 0xB9, 0x80, 0x20, 0x05, 0xAF, 0xFD, 0x36, 0x41, 0xA9, 0xC3, 0x3F, 0x39, + 0xF2, 0x13, 0x53, 0x88, 0x45, 0x93, 0xC8, 0xF1, 0xD0, 0x9D, 0xEF, 0xD0, 0xE9, 0xFC, 0x11, 0x40, + 0x87, 0xC9, 0x96, 0x4C, 0x6B, 0xC2, 0x4C, 0x1D, 0x8D, 0xC2, 0x2C, 0x72, 0x66, 0x38, 0x4E, 0x29, + 0xCA, 0x94, 0x44, 0x94, 0xFC, 0x56, 0xE3, 0x9D, 0x02, 0x1D, 0x49, 0x38, 0x5E, 0xA1, 0x2B, 0x5B, + 0xC3, 0xCA, 0x34, 0x94, 0xBF, 0x56, 0xF6, 0x5F, 0x59, 0x6A, 0xC2, 0x1C, 0xE1, 0x64, 0x3E, 0x4D, + 0xE5, 0xC6, 0xE9, 0x9B, 0x3B, 0xE3, 0x4B, 0x76, 0xA4, 0x63, 0x1F, 0x1D, 0xF1, 0x91, 0x49, 0x94, + 0x29, 0x3B, 0x3B, 0x57, 0x10, 0x1D, 0x65, 0x98, 0x90, 0x49, 0x18, 0x67, 0x16, 0xA6, 0x08, 0x47, + 0x23, 0x44, 0xD4, 0x8C, 0x55, 0x51, 0x65, 0xA2, 0x29, 0xBC, 0x43, 0xDF, 0xC2, 0x7D, 0x95, 0x05, + 0x51, 0x16, 0x31, 0x65, 0x41, 0x46, 0xB3, 0x30, 0x25, 0xB3, 0x30, 0x43, 0x29, 0x2D, 0x21, 0x98, + 0xC4, 0xF7, 0xA8, 0x9B, 0xA1, 0x3B, 0x36, 0xAC, 0x75, 0x30, 0xE0, 0x7C, 0x33, 0x7B, 0x2C, 0x6D, + 0x30, 0x7D, 0xF5, 0x5B, 0xB1, 0x90, 0x2E, 0xA8, 0x8B, 0xF7, 0x82, 0xF3, 0xA3, 0x58, 0xE9, 0x45, + 0xC5, 0xB6, 0xE6, 0x9B, 0xDB, 0x75, 0x77, 0x9E, 0x46, 0x28, 0xE3, 0xBC, 0xD9, 0x77, 0x16, 0x7C, + 0xAF, 0xE9, 0x46, 0x68, 0x84, 0xB3, 0x50, 0xA0, 0xA7, 0x3F, 0x0F, 0x9D, 0xBC, 0xDE, 0x64, 0xCB, + 0xD6, 0x24, 0xC2, 0x73, 0xB6, 0xCD, 0xB6, 0xB7, 0xDC, 0xB6, 0xB5, 0x7C, 0x08, 0xEF, 0x9F, 0x56, + 0xB4, 0xDB, 0xB1, 0xF7, 0x48, 0xD9, 0x89, 0xB9, 0xBD, 0xE5, 0xAE, 0xB5, 0x65, 0xC8, 0x8F, 0x92, + 0xA5, 0x96, 0xAA, 0x29, 0x3B, 0xD7, 0x7E, 0x45, 0x74, 0x92, 0xE1, 0xF9, 0xDD, 0x44, 0x52, 0xB1, + 0x06, 0x80, 0x83, 0x96, 0x75, 0x4C, 0xB2, 0x4A, 0xA1, 0xA7, 0xA6, 0x41, 0xB7, 0xE8, 0x8E, 0x70, + 0x4A, 0xC3, 0x38, 0x45, 0x59, 0xFD, 0x9B, 0xB3, 0xF8, 0xE1, 0xBF, 0x68, 0xD6, 0xDA, 0x1B, 0xFE, + 0xF0, 0x5F, 0x6C, 0x5C, 0x62, 0xCC, 0x6D, 0x01, 0x94, 0xB1, 0x00, 0xDB, 0xA1, 0xBA, 0xD9, 0x3C, + 0xD1, 0x2B, 0x51, 0x83, 0x7A, 0xB5, 0xBE, 0xDC, 0x2A, 0x6F, 0x10, 0x72, 0x0D, 0x4B, 0x71, 0x54, + 0x53, 0x15, 0x4C, 0x0C, 0x28, 0x9E, 0x55, 0xBB, 0xDD, 0x6A, 0x56, 0xBF, 0xF3, 0x1F, 0x7E, 0xA8, + 0xDA, 0x88, 0x50, 0x1A, 0xA9, 0xD5, 0xFE, 0xF6, 0xA5, 0xB0, 0x24, 0x09, 0x43, 0x92, 0xB4, 0x2D, + 0xF1, 0x83, 0x4F, 0xD5, 0xB8, 0xF4, 0x57, 0xC3, 0xB6, 0xB4, 0x31, 0x9E, 0xA7, 0x5C, 0x72, 0x78, + 0x08, 0x52, 0xB0, 0x88, 0xC7, 0x9E, 0x8B, 0xB9, 0x59, 0xC0, 0x0D, 0x02, 0xFA, 0x34, 0x43, 0x78, + 0xEC, 0xA0, 0x47, 0xB6, 0x85, 0x93, 0x4E, 0xA7, 0xF6, 0x65, 0x8A, 0xA3, 0x79, 0x82, 0x80, 0xF8, + 0xC7, 0x97, 0xF5, 0x02, 0xEA, 0x81, 0x21, 0x4A, 0x08, 0x72, 0x18, 0x30, 0x05, 0xBE, 0x68, 0x14, + 0xA1, 0x71, 0x9C, 0xA2, 0x4E, 0x47, 0xFC, 0xEB, 0x87, 0xD3, 0x08, 0x88, 0x3F, 0xBD, 0xAB, 0x6B, + 0x48, 0x45, 0xD3, 0xC5, 0x7D, 0x98, 0x39, 0x31, 0x87, 0x34, 0xC6, 0x99, 0xC7, 0x7E, 0x71, 0x7D, + 0x3B, 0x06, 0x8D, 0xE8, 0xED, 0xCB, 0x7F, 0x07, 0x08, 0x5C, 0x91, 0xEB, 0x20, 0xBE, 0x22, 0xD7, + 0x79, 0xEE, 0xB1, 0x53, 0x16, 0xF4, 0xF4, 0x18, 0xC1, 0x22, 0x43, 0x74, 0x9E, 0xA5, 0x9E, 0x07, + 0x82, 0x77, 0x0B, 0x97, 0xED, 0x0C, 0xC2, 0xCA, 0xE3, 0x0E, 0x59, 0x1F, 0x28, 0x58, 0xEC, 0xEC, + 0xEE, 0xBD, 0x1A, 0x30, 0x5A, 0xC0, 0x98, 0x55, 0x39, 0xE3, 0x9D, 0xF9, 0x02, 0xC1, 0xCF, 0x19, + 0x9E, 0xA1, 0x8C, 0x3E, 0x79, 0x14, 0xBA, 0x37, 0x37, 0x88, 0x7C, 0xE4, 0xE3, 0x76, 0xE1, 0xE2, + 0x3E, 0x4C, 0xE6, 0x68, 0xB0, 0xD1, 0xCB, 0x01, 0xA4, 0xFE, 0x81, 0x29, 0x51, 0x3F, 0x86, 0x69, + 0x78, 0x87, 0xB2, 0xE0, 0x1E, 0xC7, 0x91, 0xD3, 0x1B, 0x8E, 0x30, 0x53, 0x4F, 0x49, 0x10, 0x7B, + 0x6F, 0x7A, 0x3B, 0x5B, 0x00, 0x66, 0x41, 0xEC, 0xED, 0xF5, 0xFB, 0x3B, 0x00, 0xA6, 0xAC, 0xEC, + 0xCD, 0xD6, 0x0E, 0x80, 0x38, 0x88, 0xBD, 0xED, 0xBD, 0xDD, 0x3D, 0x00, 0xC3, 0x20, 0xF6, 0x5E, + 0xEF, 0xEC, 0x00, 0x38, 0x09, 0x62, 0x6F, 0x77, 0xF7, 0xCD, 0x1E, 0x80, 0x23, 0x56, 0x6D, 0x6F, + 0xBB, 0x0F, 0x86, 0xA3, 0x24, 0x24, 0xC4, 0x49, 0xE4, 0xA1, 0x91, 0x38, 0xA1, 0x7F, 0x14, 0x93, + 0x19, 0x26, 0x6C, 0x73, 0x5B, 0xF0, 0x7E, 0xB2, 0xF9, 0x88, 0xE2, 0x4C, 0xCC, 0x2B, 0x99, 0xCF, + 0x50, 0xE6, 0x01, 0xC8, 0xD4, 0x2E, 0xFF, 0x46, 0x1D, 0x43, 0x03, 0x24, 0x0B, 0x32, 0x76, 0xEE, + 0xCC, 0x2E, 0xD8, 0x72, 0x18, 0xA1, 0x80, 0xCA, 0x52, 0x26, 0x80, 0xCF, 0xB9, 0xFC, 0x3D, 0x8D, + 0x53, 0x74, 0x88, 0xE7, 0x29, 0x0D, 0x7A, 0xF2, 0x1B, 0x53, 0x0E, 0xC8, 0x25, 0x3E, 0xC4, 0x29, + 0x99, 0x4F, 0x51, 0xC0, 0xA6, 0xCE, 0x2C, 0x3F, 0x48, 0x53, 0x3C, 0x4F, 0x47, 0x28, 0x70, 0x5D, + 0xF9, 0xA1, 0xB4, 0xD1, 0x5C, 0x66, 0x08, 0x9D, 0x63, 0x4C, 0x03, 0x65, 0xAE, 0xF3, 0x47, 0x19, + 0x0A, 0x29, 0x3A, 0x16, 0x5A, 0x86, 0xE7, 0x46, 0xF1, 0xBD, 0x0B, 0xDA, 0x5A, 0xFA, 0x7C, 0xFC, + 0xA7, 0x31, 0xA1, 0x7E, 0x18, 0x45, 0x9E, 0x6B, 0xD9, 0xCD, 0x56, 0x00, 0xA0, 0xE1, 0xED, 0x09, + 0x5B, 0x72, 0x7A, 0x48, 0x19, 0x7E, 0x38, 0x54, 0x62, 0x66, 0x2D, 0xC4, 0xCC, 0x06, 0x3E, 0x41, + 0xF4, 0x80, 0x4A, 0x9B, 0x9E, 0xE7, 0x66, 0x98, 0x31, 0x86, 0x9B, 0xC4, 0x84, 0xDA, 0xAB, 0xAF, + 0x46, 0xBF, 0x4B, 0x33, 0x84, 0xCC, 0xC6, 0x12, 0x07, 0x12, 0x5C, 0x5D, 0xF3, 0x55, 0x91, 0x20, + 0xEA, 0xA0, 0xA0, 0x37, 0x44, 0x6F, 0xCB, 0xB3, 0xEA, 0x67, 0xF8, 0x81, 0x0C, 0xD1, 0xE6, 0x26, + 0xA8, 0x35, 0xBD, 0x42, 0xD7, 0x81, 0x9C, 0x27, 0x3E, 0xAC, 0x83, 0x2A, 0x65, 0x3E, 0xE1, 0x08, + 0x79, 0x56, 0x84, 0x99, 0x02, 0x9E, 0x46, 0x87, 0x93, 0x38, 0x89, 0x3C, 0x1B, 0x5C, 0x30, 0x8C, + 0xC7, 0xF2, 0x03, 0xC5, 0xB3, 0xF7, 0x4C, 0x1D, 0x0F, 0xB3, 0xA7, 0x0F, 0x4C, 0x5D, 0x61, 0xC3, + 0x44, 0x8C, 0xA8, 0x28, 0x78, 0x27, 0x6A, 0x4C, 0xC2, 0x34, 0x4A, 0x50, 0xA9, 0x92, 0x87, 0x60, + 0x4F, 0x75, 0x2C, 0x14, 0x87, 0x6F, 0x82, 0xD1, 0xB7, 0x10, 0xEC, 0xAA, 0x77, 0xCD, 0xA8, 0x7C, + 0xCC, 0xE4, 0xB1, 0x82, 0xE3, 0xB9, 0x5C, 0x93, 0x52, 0xDC, 0xD9, 0x84, 0xB2, 0x0D, 0x5A, 0xAD, + 0xC4, 0x4F, 0x50, 0x7A, 0x47, 0x27, 0xDD, 0xFE, 0xCA, 0x6E, 0x5A, 0x06, 0xA6, 0x7B, 0x42, 0xE3, + 0x0C, 0x91, 0xC9, 0x39, 0x7E, 0x20, 0x47, 0xF1, 0x14, 0xA5, 0x24, 0xC6, 0x29, 0xF1, 0xDA, 0x59, + 0xD9, 0x3A, 0x37, 0x7A, 0xEA, 0x40, 0x69, 0x91, 0x73, 0xC0, 0xE8, 0x96, 0xAF, 0xCE, 0x2C, 0x48, + 0xD1, 0x83, 0x93, 0xFA, 0x97, 0xF1, 0x14, 0xBD, 0x0F, 0x09, 0x8A, 0xF4, 0x07, 0xAF, 0xDA, 0xC4, + 0xBF, 0x8D, 0x53, 0x01, 0x1C, 0x58, 0x30, 0xD5, 0xF8, 0x15, 0x22, 0x63, 0xAD, 0x15, 0x54, 0x54, + 0xAF, 0x2E, 0x08, 0x43, 0xF9, 0xB3, 0xD5, 0x2E, 0xAF, 0xB6, 0x30, 0x8B, 0xC3, 0x2E, 0xFB, 0xEA, + 0x42, 0x37, 0x24, 0x04, 0x65, 0x6C, 0xBF, 0x5C, 0xB1, 0xFC, 0xEB, 0x34, 0x2B, 0xC0, 0x03, 0xB8, + 0x51, 0x59, 0x52, 0xF2, 0xF8, 0x03, 0x98, 0xCE, 0xF2, 0xE0, 0x30, 0xAA, 0x1D, 0x67, 0x19, 0xCE, + 0x3C, 0xF7, 0x30, 0x4C, 0x53, 0x4C, 0xE5, 0xA1, 0xC2, 0x29, 0x75, 0xE5, 0xDC, 0xA2, 0x31, 0xCE, + 0x90, 0xA3, 0xAE, 0xDD, 0x7C, 0x3C, 0x43, 0xA9, 0x0B, 0x86, 0x76, 0xD0, 0x7E, 0x9C, 0x32, 0xC4, + 0x0F, 0xA2, 0xBF, 0x86, 0x23, 0x94, 0x52, 0x4D, 0xAE, 0x70, 0x4C, 0x51, 0x76, 0x8B, 0xEE, 0xE2, + 0xB4, 0x55, 0x92, 0xCA, 0xC1, 0x32, 0x8A, 0x11, 0x6A, 0x99, 0x3F, 0x3D, 0xB3, 0xF6, 0x8A, 0x1A, + 0x1B, 0x9C, 0x9E, 0x73, 0x0B, 0x87, 0xE7, 0x55, 0x16, 0x9A, 0x2C, 0x46, 0x5C, 0xBA, 0x00, 0x00, + 0xD6, 0x80, 0xC3, 0xFA, 0x36, 0xE0, 0x98, 0xFC, 0x82, 0x7C, 0xAE, 0x81, 0x40, 0xE4, 0xA3, 0x34, + 0x5A, 0x07, 0xDA, 0x05, 0x3F, 0xBC, 0x7A, 0x7C, 0xE3, 0xB6, 0xB0, 0xDF, 0x1A, 0x10, 0x0E, 0xFA, + 0xFD, 0xA7, 0xC3, 0x49, 0x98, 0xD5, 0x46, 0xC6, 0x0B, 0xD1, 0x3A, 0x20, 0xD8, 0x36, 0xF8, 0x01, + 0xA1, 0xC8, 0x44, 0xC3, 0x80, 0xE1, 0xFE, 0x25, 0x75, 0xD7, 0xC5, 0xE4, 0x32, 0xBC, 0xAD, 0x21, + 0xC2, 0xCA, 0xD6, 0xC2, 0xE3, 0x17, 0xF4, 0x54, 0x6B, 0xCC, 0xCA, 0x90, 0xFF, 0x15, 0x3D, 0xAD, + 0x03, 0xE0, 0x7D, 0x32, 0xCF, 0xCC, 0x41, 0x8C, 0x12, 0x14, 0x66, 0xA7, 0x9A, 0xFF, 0x9B, 0xE9, + 0x59, 0x52, 0x14, 0x7C, 0x9C, 0x16, 0x22, 0xEA, 0x70, 0x12, 0xA6, 0x77, 0xA8, 0x61, 0x82, 0x4C, + 0x49, 0xA6, 0x41, 0xDF, 0x08, 0x6D, 0xFF, 0x68, 0x96, 0x7D, 0xC4, 0x69, 0x4C, 0xB1, 0x90, 0x46, + 0x13, 0xFF, 0xA2, 0x52, 0xEC, 0x3D, 0xC4, 0x69, 0x84, 0x1F, 0xEC, 0x08, 0x55, 0x61, 0x34, 0xC1, + 0x66, 0x12, 0x43, 0x0B, 0xE5, 0x75, 0x90, 0xAC, 0xF4, 0xE6, 0xF5, 0x20, 0x66, 0x92, 0xA9, 0x50, + 0xB2, 0x8E, 0xF0, 0x54, 0xCB, 0x6E, 0x89, 0x22, 0x74, 0x85, 0x79, 0xD0, 0x85, 0xCF, 0x20, 0x83, + 0xD9, 0x45, 0xE8, 0x53, 0x5C, 0xF4, 0x00, 0x04, 0xA2, 0x0B, 0xAF, 0x07, 0x47, 0x7E, 0x86, 0xA6, + 0xF8, 0x5E, 0x49, 0xD1, 0x0F, 0x19, 0x9E, 0x7E, 0xE6, 0x27, 0x66, 0xE0, 0xAD, 0x16, 0x0A, 0x96, + 0xBD, 0x2A, 0xE8, 0xE5, 0x00, 0x80, 0xBC, 0x61, 0x13, 0xA5, 0x40, 0x68, 0x90, 0x4E, 0x1C, 0x20, + 0x9F, 0x86, 0xD9, 0x1D, 0xA2, 0x90, 0x04, 0x96, 0x7D, 0x35, 0x08, 0x02, 0xBA, 0xDF, 0x1F, 0x34, + 0xEE, 0x88, 0x5B, 0xD7, 0x4C, 0x2B, 0x88, 0xFD, 0xBB, 0xBA, 0xB8, 0x66, 0x07, 0x9C, 0x94, 0x20, + 0xEA, 0x82, 0x20, 0x08, 0x3C, 0x01, 0xC9, 0xED, 0xBB, 0x83, 0x2F, 0x3F, 0x2E, 0x2A, 0xEC, 0x7A, + 0x3B, 0x1F, 0x8F, 0x51, 0xE6, 0xB3, 0x33, 0xA3, 0x02, 0x9C, 0x7F, 0x01, 0x40, 0x68, 0xF2, 0x0C, + 0x3E, 0xF2, 0xF9, 0x19, 0x09, 0x45, 0x97, 0x1C, 0xD5, 0x8D, 0x20, 0x20, 0xEA, 0x2B, 0xD3, 0x91, + 0x32, 0xC8, 0x6B, 0x89, 0x2E, 0xBC, 0x2C, 0x88, 0x61, 0x5A, 0x1F, 0x8B, 0x3F, 0xC3, 0x33, 0xBB, + 0xE2, 0x23, 0x08, 0x2F, 0x36, 0x8A, 0x14, 0x80, 0x81, 0x97, 0x59, 0x5A, 0x93, 0x49, 0x3C, 0xA6, + 0x1E, 0x57, 0xE3, 0x57, 0xC1, 0xC8, 0x00, 0x80, 0xAA, 0xE4, 0xDB, 0x54, 0x92, 0x74, 0x8D, 0xD6, + 0xAD, 0x9A, 0x06, 0x27, 0x85, 0x9A, 0x63, 0xB4, 0x8E, 0x46, 0x38, 0xAC, 0x0F, 0x79, 0x9E, 0x8A, + 0x41, 0x23, 0x2B, 0xD5, 0xD6, 0xD8, 0xCD, 0x10, 0xC8, 0xF9, 0x59, 0xEF, 0xFB, 0xD0, 0x98, 0xCD, + 0xC9, 0xA4, 0x01, 0x07, 0x73, 0x8B, 0x47, 0x20, 0xFF, 0xFF, 0xB6, 0x5E, 0xA8, 0x97, 0x83, 0x30, + 0xE3, 0xB2, 0xAD, 0x88, 0x48, 0x9E, 0xEE, 0xF6, 0x07, 0x76, 0xB5, 0x77, 0xF5, 0xF2, 0x14, 0xF6, + 0x44, 0x0F, 0x40, 0xE4, 0xCF, 0xC4, 0x05, 0x8B, 0xBC, 0x37, 0xE4, 0x45, 0x84, 0xE2, 0xD9, 0xC9, + 0x74, 0x8A, 0xA2, 0x38, 0xA4, 0xFC, 0xF4, 0x1B, 0xDE, 0x85, 0xE2, 0x1C, 0x9D, 0x57, 0xB4, 0x02, + 0xB0, 0x78, 0x1E, 0x3D, 0xBE, 0x8F, 0x81, 0x8D, 0xE3, 0x8F, 0xED, 0x68, 0xC5, 0x26, 0x3C, 0x43, + 0xA9, 0xEC, 0xEE, 0x3F, 0xCD, 0xF9, 0x88, 0x21, 0x6D, 0x61, 0x60, 0x81, 0xE5, 0x3B, 0x34, 0x04, + 0x2B, 0x04, 0x47, 0x83, 0xCC, 0xB2, 0x2C, 0x8A, 0x7F, 0xCE, 0x11, 0x25, 0x6F, 0x27, 0x9A, 0x5E, + 0xE7, 0xAD, 0x07, 0x83, 0xA1, 0x10, 0xDC, 0x0E, 0x6A, 0x3E, 0x50, 0xC7, 0x14, 0x4D, 0x5D, 0xC6, + 0x9E, 0xFA, 0x04, 0xDF, 0xED, 0xD7, 0x30, 0x33, 0x10, 0x43, 0x00, 0xA2, 0xBC, 0xA4, 0x62, 0x2D, + 0x14, 0xFF, 0xD0, 0xA0, 0x37, 0xA4, 0x6F, 0xD1, 0x90, 0x6A, 0x66, 0x30, 0xD5, 0x39, 0xC7, 0xD5, + 0x7C, 0x2E, 0x75, 0xC4, 0x45, 0xA3, 0x61, 0xE4, 0xED, 0x56, 0xBF, 0xD3, 0xF1, 0x6C, 0xB6, 0x11, + 0x35, 0xC1, 0xBD, 0x7D, 0xEB, 0x57, 0xB9, 0x73, 0x6C, 0x04, 0x01, 0xAA, 0x02, 0x50, 0x46, 0x94, + 0xCD, 0x00, 0x81, 0x41, 0xD3, 0x17, 0xC8, 0xB4, 0xCE, 0xC0, 0x6C, 0x6D, 0xC1, 0x6E, 0x73, 0x13, + 0x6E, 0xF5, 0x99, 0x34, 0x68, 0xAA, 0x60, 0x69, 0xEC, 0x53, 0xF4, 0x48, 0x19, 0x27, 0xA2, 0x94, + 0x6E, 0x06, 0xC4, 0xA7, 0x18, 0x7F, 0x9C, 0x8F, 0x26, 0x67, 0x73, 0x3A, 0x9B, 0x53, 0xBE, 0x87, + 0xC5, 0xE4, 0x63, 0x38, 0xEA, 0x74, 0xDA, 0x1A, 0xB6, 0x7F, 0xD5, 0xA4, 0xE9, 0x74, 0x36, 0x6A, + 0xF5, 0xC4, 0x8D, 0x00, 0xE3, 0x9D, 0x4E, 0x87, 0x20, 0xCA, 0xCE, 0xA8, 0x78, 0x4E, 0xA5, 0x4A, + 0xF4, 0xCD, 0x27, 0xBB, 0x1C, 0xC0, 0x1E, 0x53, 0x7C, 0x6A, 0x1A, 0x6F, 0x6D, 0x6A, 0x4D, 0x44, + 0x0B, 0x33, 0x96, 0xDD, 0x26, 0xA6, 0x69, 0xB1, 0x8E, 0xAA, 0x66, 0x62, 0x63, 0x2A, 0xEF, 0x0A, + 0x85, 0x1A, 0x6A, 0xF0, 0xE5, 0x5F, 0x66, 0x0B, 0x86, 0x49, 0x86, 0x93, 0xFC, 0xE5, 0xDC, 0xA7, + 0x88, 0xB0, 0x6D, 0x77, 0xB9, 0xB4, 0x32, 0x94, 0xDC, 0x10, 0xF3, 0xF2, 0x79, 0x8B, 0xE9, 0x74, + 0x8D, 0x67, 0x42, 0x5F, 0x56, 0xE5, 0x76, 0x4F, 0x8B, 0xB0, 0xE4, 0xC0, 0x54, 0xAB, 0xB2, 0x7E, + 0x68, 0xD5, 0xD5, 0x20, 0x09, 0xE2, 0x92, 0xBE, 0xE6, 0x53, 0x7C, 0x41, 0xB3, 0x38, 0xBD, 0xF3, + 0x0A, 0xD9, 0x9D, 0x05, 0x68, 0x98, 0xBD, 0x0D, 0xE8, 0x30, 0xDB, 0xDC, 0x2C, 0x84, 0x43, 0xEC, + 0xF3, 0xEB, 0x20, 0xA6, 0xCE, 0xBD, 0xE7, 0xB0, 0x18, 0x99, 0x2F, 0x55, 0xEB, 0xD8, 0x7F, 0x8A, + 0x62, 0x32, 0xDB, 0xCC, 0xE0, 0x46, 0x0F, 0x40, 0x1A, 0x14, 0x05, 0x9B, 0x7D, 0x60, 0x74, 0x62, + 0xD3, 0xF0, 0xAE, 0xB2, 0xEB, 0x61, 0xCA, 0x66, 0x88, 0x2D, 0x16, 0x89, 0xD7, 0x7E, 0xEA, 0xC7, + 0x69, 0x8A, 0xB2, 0x4B, 0xF4, 0x48, 0x03, 0xF7, 0xFF, 0xFC, 0x6F, 0x77, 0x50, 0x9E, 0x76, 0x04, + 0xAD, 0xA6, 0x06, 0xAD, 0xBB, 0x42, 0x0A, 0xEC, 0x35, 0x08, 0xA2, 0xE2, 0x20, 0x40, 0x80, 0x52, + 0x3C, 0x42, 0xB9, 0x66, 0x99, 0x28, 0x09, 0x47, 0x14, 0x65, 0x5C, 0x64, 0x36, 0xC8, 0xD2, 0x85, + 0x36, 0xA6, 0x95, 0x4F, 0x5C, 0x91, 0xAE, 0xE3, 0x8F, 0x08, 0xF1, 0x47, 0x28, 0x49, 0x7C, 0x71, + 0xB5, 0x05, 0x5A, 0xD7, 0x04, 0xBF, 0x1A, 0xF0, 0xF9, 0xA5, 0x58, 0xA0, 0x35, 0xEC, 0x76, 0xD0, + 0xFC, 0xE2, 0x59, 0x34, 0xC9, 0x67, 0x8F, 0x5F, 0x1A, 0x8F, 0x12, 0x1B, 0x41, 0x95, 0x09, 0x18, + 0xCB, 0xA8, 0x85, 0x5F, 0x52, 0x13, 0x6C, 0xAC, 0xF5, 0x3C, 0x53, 0xA6, 0x4D, 0xBE, 0x5B, 0x77, + 0xDB, 0x3C, 0x6F, 0xDA, 0x0C, 0x16, 0x48, 0x52, 0x43, 0xD0, 0x6D, 0x5D, 0x72, 0x14, 0x94, 0x66, + 0xD4, 0xC8, 0xAD, 0xD3, 0xB9, 0xE8, 0x69, 0x62, 0x54, 0x04, 0xB5, 0xA4, 0xD5, 0x4A, 0x31, 0x6B, + 0x6D, 0xDC, 0x68, 0x5A, 0x07, 0x79, 0xDE, 0x70, 0xDF, 0x90, 0xE4, 0x70, 0x7B, 0xAF, 0xBF, 0xC3, + 0x6F, 0x32, 0x98, 0xBC, 0x54, 0x37, 0x20, 0x4E, 0xCC, 0x28, 0xA0, 0xF7, 0xD8, 0x0C, 0xCD, 0x92, + 0x70, 0x84, 0xBC, 0x97, 0x7F, 0xC9, 0xF6, 0xFF, 0x92, 0xBE, 0xBC, 0x83, 0xEE, 0x5F, 0x32, 0x17, + 0xE4, 0xBA, 0xB6, 0x5C, 0xEC, 0xB2, 0x3E, 0xDD, 0x77, 0xFF, 0x9F, 0xAB, 0xAD, 0x5E, 0xEF, 0x7F, + 0xB9, 0x9B, 0x68, 0x93, 0xFF, 0xD9, 0xFF, 0x5F, 0xEE, 0x00, 0x15, 0xD5, 0xF9, 0x65, 0x03, 0xCC, + 0xC0, 0x02, 0x05, 0xC4, 0x43, 0x01, 0xEB, 0x0B, 0x66, 0x7E, 0x84, 0x46, 0x9F, 0xB3, 0xF8, 0x3E, + 0xA4, 0xE8, 0x23, 0x8E, 0x10, 0xF1, 0x6F, 0xB3, 0x70, 0xF4, 0x15, 0x51, 0x14, 0x7D, 0x0E, 0x89, + 0x28, 0x63, 0xB5, 0x68, 0x16, 0xDF, 0xDD, 0xA1, 0xEC, 0x28, 0xA4, 0x21, 0x57, 0x4F, 0x3C, 0x24, + 0xD6, 0xB8, 0xCF, 0x2F, 0x57, 0x02, 0xD7, 0x2D, 0xBA, 0x49, 0xE5, 0xFD, 0xCC, 0x42, 0x5F, 0xA7, + 0xB0, 0x03, 0x26, 0x57, 0x59, 0xE2, 0xF4, 0xEE, 0x30, 0x89, 0x51, 0x4A, 0xCF, 0xD1, 0x88, 0xE9, + 0xB0, 0x59, 0x80, 0xFC, 0x11, 0x2F, 0xF8, 0x73, 0x97, 0x31, 0xEC, 0x98, 0x76, 0xFB, 0x3D, 0x98, + 0xEA, 0xD2, 0xDF, 0xBB, 0x6C, 0x63, 0x9B, 0x75, 0xFB, 0xBD, 0x61, 0x79, 0x91, 0xB8, 0x5B, 0xBD, + 0xD9, 0xA3, 0x0B, 0x69, 0x99, 0x57, 0x2A, 0xA5, 0x0C, 0x1E, 0xE3, 0x9F, 0x4C, 0x2C, 0x10, 0x59, + 0x4A, 0xF1, 0x8C, 0x15, 0xA6, 0xA5, 0xC2, 0xBF, 0x0B, 0x4D, 0xC5, 0xED, 0xF7, 0x7A, 0x3D, 0x06, + 0x40, 0xEA, 0xDD, 0xF9, 0x37, 0x5C, 0x30, 0xF1, 0xDB, 0xC6, 0xC3, 0x24, 0x1E, 0x7D, 0xFD, 0x99, + 0x2F, 0xAE, 0x2C, 0xA0, 0x3E, 0xDB, 0x70, 0x98, 0x10, 0x3B, 0xC8, 0x50, 0xF8, 0x2B, 0x63, 0xE3, + 0x8F, 0x78, 0x4E, 0xD0, 0x21, 0x77, 0x00, 0x08, 0xA8, 0x3F, 0x63, 0x94, 0x0E, 0xA8, 0x2F, 0x56, + 0x23, 0xA7, 0x3B, 0x27, 0x72, 0x40, 0xFD, 0x11, 0x9E, 0x3D, 0x15, 0x70, 0xE4, 0xDC, 0x30, 0x50, + 0x1F, 0x70, 0xF6, 0x59, 0x36, 0x9B, 0x65, 0x88, 0xED, 0xC6, 0xB2, 0x54, 0xD9, 0x33, 0xE5, 0xA5, + 0x16, 0x6C, 0xFC, 0x1E, 0x43, 0x3B, 0x40, 0x02, 0xCB, 0xDD, 0x96, 0xAF, 0x20, 0xF9, 0xD4, 0xCC, + 0x6E, 0x71, 0x98, 0x45, 0x8C, 0x19, 0x3A, 0x9D, 0x4A, 0x01, 0x13, 0xB7, 0xEC, 0x5F, 0xCF, 0x65, + 0x2B, 0xE7, 0xE5, 0x2C, 0x09, 0xB9, 0x69, 0xD4, 0xD7, 0x3E, 0x10, 0xAC, 0x2F, 0xDB, 0x81, 0x26, + 0x87, 0x16, 0x02, 0x98, 0x7D, 0x33, 0x96, 0x12, 0x87, 0x9E, 0xD2, 0x59, 0x07, 0xD6, 0x30, 0xCA, + 0xBC, 0x2A, 0x4E, 0x77, 0x16, 0x9C, 0x00, 0x87, 0xC8, 0x7A, 0x15, 0xE4, 0xCF, 0xE0, 0x8A, 0x79, + 0x4A, 0xAD, 0x93, 0x5B, 0xC6, 0x10, 0x12, 0xB6, 0xBE, 0x14, 0xBA, 0x30, 0xEB, 0x74, 0x88, 0xD1, + 0xE6, 0x82, 0xD3, 0x80, 0x1F, 0x87, 0xE5, 0xBA, 0x21, 0x65, 0xBA, 0x68, 0x3A, 0x79, 0x20, 0xCF, + 0xE1, 0xAB, 0xAD, 0xED, 0x37, 0xDF, 0x77, 0xD9, 0x79, 0x88, 0x13, 0x9C, 0x71, 0xD5, 0x24, 0x24, + 0xF4, 0x30, 0x1C, 0x4D, 0x50, 0xFD, 0xAA, 0xB3, 0xBF, 0xDB, 0xDB, 0x05, 0x43, 0x6B, 0x5D, 0x6E, + 0xF4, 0x2F, 0xDD, 0x56, 0x6A, 0x25, 0x88, 0x55, 0xE6, 0x06, 0x41, 0xE2, 0x5F, 0x3E, 0xE0, 0x5F, + 0xD0, 0xD3, 0xC7, 0x70, 0xA6, 0x04, 0x21, 0x21, 0xD5, 0x2F, 0x39, 0x41, 0xF4, 0x90, 0x10, 0x35, + 0x8B, 0xBA, 0x1E, 0x63, 0x16, 0x59, 0x98, 0xDF, 0xE9, 0x2A, 0x85, 0x44, 0xD3, 0xF5, 0xEE, 0x44, + 0x3D, 0xC0, 0x01, 0xB1, 0xBE, 0x2B, 0xA0, 0x58, 0x51, 0x15, 0x98, 0xAA, 0x56, 0x05, 0xC7, 0xEB, + 0x6A, 0x80, 0x5C, 0x9D, 0x2B, 0x8F, 0xCB, 0x97, 0x65, 0xC5, 0x78, 0x54, 0x49, 0x9E, 0xE7, 0xF0, + 0xCD, 0xDE, 0x76, 0x5F, 0x0B, 0xEE, 0x6F, 0x91, 0x0F, 0x76, 0xF5, 0xB3, 0x58, 0xAE, 0x4D, 0x15, + 0x34, 0xA7, 0xF9, 0xBE, 0x8F, 0x00, 0xBF, 0x83, 0xA7, 0x7C, 0x7B, 0x96, 0xCA, 0x9E, 0x83, 0xC7, + 0x0E, 0x02, 0xE9, 0x3C, 0x49, 0x82, 0x20, 0xF0, 0x68, 0x20, 0xFE, 0x8A, 0xF7, 0x05, 0xE0, 0x41, + 0x2C, 0x55, 0x76, 0x09, 0x18, 0x2C, 0x97, 0xE2, 0x03, 0x3B, 0x77, 0x2C, 0x97, 0xB4, 0x74, 0x96, + 0x8D, 0x19, 0xFB, 0x6D, 0xEF, 0xED, 0xEE, 0x7D, 0xCF, 0x40, 0x9B, 0xCC, 0xB1, 0xC5, 0x48, 0x1B, + 0x6B, 0x54, 0x17, 0x15, 0x5B, 0xF8, 0xB5, 0x83, 0xB1, 0xF8, 0x22, 0x6C, 0x88, 0xC1, 0x46, 0x5F, + 0x1E, 0x4D, 0x17, 0x11, 0x87, 0x88, 0x06, 0xFC, 0x20, 0x92, 0x2D, 0x97, 0x5E, 0x16, 0x6C, 0xF4, + 0x20, 0xB2, 0xDA, 0x34, 0x04, 0x08, 0x36, 0xAD, 0x39, 0xDC, 0xDB, 0xD9, 0xDB, 0x1D, 0x54, 0xE5, + 0x0D, 0x77, 0x6D, 0xE0, 0xDB, 0xBE, 0xD2, 0x98, 0x6E, 0xA4, 0x7F, 0x08, 0x5A, 0x2E, 0xEB, 0x58, + 0xB2, 0xEA, 0x19, 0x4C, 0x83, 0x30, 0xBB, 0x9B, 0x9B, 0x4A, 0x18, 0xC4, 0x41, 0xFA, 0x76, 0x7B, + 0x9F, 0x0E, 0xE4, 0xEC, 0x90, 0x7D, 0x12, 0x48, 0x8A, 0xDE, 0x21, 0x7A, 0xF6, 0x90, 0x2A, 0x8A, + 0x1E, 0x21, 0xE1, 0x13, 0x82, 0x39, 0x6E, 0x60, 0x40, 0x86, 0x36, 0x97, 0x8F, 0x73, 0x34, 0x66, + 0x42, 0xA2, 0xD3, 0xB1, 0xF8, 0x6F, 0xC8, 0x6F, 0xBE, 0x42, 0x13, 0xE0, 0xA0, 0x5A, 0xA4, 0xF1, + 0x15, 0x7E, 0x20, 0xCA, 0x85, 0x23, 0xD4, 0x7A, 0x77, 0xB7, 0x3F, 0x0C, 0xDF, 0x05, 0xBD, 0x61, + 0xD8, 0xED, 0x02, 0x2F, 0x0B, 0xD0, 0x55, 0x78, 0x0D, 0x3A, 0x1D, 0x0F, 0x07, 0x1E, 0x1B, 0x45, + 0xE6, 0x61, 0x30, 0x48, 0xDF, 0xB1, 0x3F, 0x18, 0x18, 0x0C, 0x06, 0x02, 0x59, 0xB0, 0x5C, 0x62, + 0x6D, 0x20, 0x48, 0xDF, 0x6D, 0x77, 0x3A, 0xB8, 0xD3, 0x69, 0xE2, 0x1B, 0xD6, 0x0E, 0xE2, 0x1C, + 0x66, 0x65, 0xE2, 0xCE, 0xC2, 0x2C, 0x9C, 0x96, 0x29, 0xAB, 0x97, 0xAF, 0x2E, 0xE4, 0xA4, 0xA6, + 0xEC, 0x1F, 0x88, 0x40, 0x9E, 0x0F, 0xBF, 0x81, 0x37, 0x4F, 0xE3, 0xF4, 0x6B, 0x3C, 0x8E, 0x51, + 0xB6, 0x55, 0x16, 0x88, 0x69, 0x10, 0x7B, 0x5B, 0xBB, 0xAF, 0x77, 0x85, 0x9F, 0xC7, 0xEB, 0x9D, + 0xBD, 0x5E, 0xC5, 0xCF, 0x83, 0xBB, 0x7E, 0x70, 0x9E, 0x1B, 0x09, 0xF1, 0xB8, 0x86, 0x87, 0x47, + 0xD5, 0xBF, 0x43, 0x9C, 0xC2, 0x94, 0x3B, 0x07, 0xD2, 0x47, 0xD7, 0xF4, 0xEB, 0xE7, 0x0C, 0xDF, + 0xC7, 0x11, 0xCA, 0x48, 0xE1, 0xB1, 0xC1, 0x8A, 0xB9, 0x34, 0x2E, 0xA0, 0x1B, 0x5F, 0x63, 0xC2, + 0x77, 0xA8, 0xB3, 0x39, 0x65, 0x4C, 0xAE, 0x8E, 0x18, 0x34, 0xBE, 0x47, 0xEC, 0x60, 0x56, 0x58, + 0x5E, 0x70, 0x7A, 0x31, 0xC1, 0x0F, 0x6C, 0xD4, 0xBF, 0x2A, 0xAF, 0xB0, 0xA0, 0x7C, 0xBD, 0xC1, + 0x24, 0x36, 0xF6, 0xF9, 0xF2, 0x38, 0x9E, 0xC6, 0x94, 0x6A, 0x7B, 0x52, 0x63, 0x53, 0x1B, 0x50, + 0x9F, 0xEF, 0xE9, 0xBA, 0xD3, 0x9F, 0xE3, 0x08, 0x7D, 0x63, 0xA7, 0x0D, 0x4D, 0x6D, 0x40, 0xCD, + 0x4E, 0xCB, 0xD7, 0x35, 0x6C, 0xDF, 0x17, 0xE2, 0xE0, 0x20, 0xCB, 0xC2, 0x27, 0xF3, 0xEE, 0xA6, + 0x99, 0xBA, 0xEB, 0xDF, 0xFC, 0x48, 0x18, 0x21, 0xA1, 0x7C, 0x16, 0x84, 0xCA, 0x22, 0xF8, 0x89, + 0xDF, 0xDF, 0xDC, 0x31, 0x36, 0x99, 0x67, 0x19, 0x17, 0x39, 0xE9, 0x57, 0xAF, 0xBA, 0x13, 0x15, + 0x9F, 0x72, 0xD5, 0xD9, 0xA9, 0xC1, 0x05, 0xC6, 0x59, 0xC0, 0xC2, 0x22, 0xDA, 0xB4, 0x5E, 0x96, + 0x78, 0x82, 0x8F, 0x69, 0x60, 0x6B, 0xC1, 0x7D, 0xD8, 0xCE, 0xC6, 0x1E, 0x02, 0xC3, 0x6E, 0x9F, + 0x9D, 0x85, 0x0A, 0xFB, 0x8F, 0x59, 0x8D, 0xCC, 0x92, 0x78, 0x84, 0x3C, 0x0A, 0xFB, 0x4C, 0x32, + 0x86, 0x94, 0x86, 0xA3, 0xC9, 0x25, 0x3E, 0xC2, 0xD3, 0xF2, 0xA6, 0x2B, 0x6F, 0xC6, 0x35, 0x03, + 0x73, 0x57, 0xDE, 0xAA, 0x93, 0x52, 0xD9, 0x75, 0x29, 0xAE, 0x53, 0x76, 0xD2, 0x72, 0x6D, 0x57, + 0xEA, 0x07, 0xBA, 0xBC, 0x83, 0x04, 0x85, 0xF7, 0xEA, 0x06, 0x6F, 0xD1, 0xBC, 0x08, 0xF8, 0x86, + 0x7D, 0x68, 0xD2, 0x3E, 0xB7, 0x5E, 0xE9, 0x3D, 0xB7, 0x7B, 0xB6, 0x87, 0x28, 0x63, 0x93, 0xD0, + 0x56, 0x79, 0xDF, 0x1F, 0xF1, 0x3D, 0x32, 0x7D, 0x30, 0xFE, 0x80, 0x9E, 0x22, 0xFC, 0x90, 0x5A, + 0x7A, 0x3A, 0xC2, 0x0F, 0xE9, 0x1F, 0xDC, 0xD3, 0x7C, 0x66, 0xE9, 0xE7, 0xD7, 0x59, 0xA9, 0x97, + 0xBC, 0x3A, 0x5A, 0xC6, 0x9C, 0xDA, 0x0A, 0x52, 0x59, 0x02, 0x48, 0x39, 0x68, 0xC8, 0x7E, 0x96, + 0xCB, 0x8D, 0x3A, 0x8B, 0xA8, 0x3B, 0xC0, 0x32, 0xC3, 0x2A, 0xC7, 0x4A, 0xA6, 0xF7, 0x14, 0x10, + 0x3D, 0xC5, 0x63, 0x0A, 0x71, 0x0B, 0x38, 0xB6, 0x53, 0x6E, 0x50, 0x05, 0xB5, 0xCE, 0x19, 0xFD, + 0x61, 0x71, 0x69, 0x2A, 0xDE, 0x4D, 0xB0, 0x23, 0x2E, 0x9D, 0x78, 0x55, 0x1B, 0x47, 0xAC, 0x6F, + 0x26, 0x0A, 0xCB, 0x17, 0x0D, 0xE2, 0x2B, 0xC4, 0x6F, 0x4B, 0x4D, 0xD7, 0x36, 0xE9, 0xF6, 0x4A, + 0xA4, 0x83, 0x98, 0x0B, 0xC0, 0x6D, 0x86, 0xC2, 0xAF, 0x2B, 0xAA, 0x75, 0x27, 0xF8, 0x1E, 0x65, + 0xAE, 0xBA, 0x22, 0xCD, 0x0B, 0x12, 0x0A, 0x93, 0xDA, 0x21, 0x4A, 0x92, 0x4E, 0x87, 0xFA, 0x8F, + 0x85, 0x45, 0xB8, 0xF4, 0xCD, 0x7F, 0x64, 0x5F, 0x9F, 0x9A, 0xBE, 0x3E, 0x2D, 0x97, 0x9E, 0x39, + 0x9B, 0x3F, 0xB3, 0xDE, 0x3C, 0x7D, 0xD9, 0x5C, 0xAE, 0x1D, 0x50, 0x3D, 0xB3, 0xA2, 0x9E, 0x39, + 0xAB, 0xC5, 0x46, 0xB2, 0x11, 0x04, 0xC8, 0x7F, 0x02, 0x65, 0xE9, 0x55, 0x5B, 0x61, 0x90, 0x8B, + 0x3E, 0xD9, 0x96, 0x7C, 0xFD, 0x80, 0xB9, 0x34, 0xF3, 0x10, 0xDC, 0xE8, 0xAB, 0x5B, 0x10, 0x43, + 0xE4, 0x99, 0xB2, 0xE7, 0x80, 0x7E, 0x96, 0xF3, 0xEE, 0xD5, 0xEA, 0xF9, 0xAC, 0x02, 0x44, 0x40, + 0x0F, 0xCB, 0xD2, 0xB1, 0xAD, 0x4F, 0x6E, 0x47, 0x2E, 0x15, 0x51, 0xA1, 0xA0, 0xC5, 0x90, 0x0C, + 0xCD, 0x01, 0x2A, 0xC1, 0x77, 0x8E, 0x66, 0x49, 0x8C, 0x98, 0x2E, 0xB2, 0x5C, 0x7A, 0x4A, 0x8D, + 0x56, 0x26, 0x54, 0x6B, 0x55, 0x53, 0x87, 0x8E, 0x97, 0xCB, 0xD8, 0x1F, 0xE3, 0xEC, 0x38, 0x1C, + 0x4D, 0xB8, 0xF7, 0xC7, 0x42, 0x80, 0x40, 0xCB, 0x25, 0x2A, 0x97, 0x23, 0x3E, 0x22, 0x5F, 0x4A, + 0x6D, 0x76, 0x80, 0x36, 0x7F, 0x73, 0x41, 0x95, 0x03, 0x00, 0x5B, 0xFA, 0xE5, 0xC7, 0xAB, 0xE2, + 0xC0, 0x65, 0x6C, 0xF8, 0x6C, 0x96, 0x0A, 0x8D, 0x58, 0x1F, 0x0E, 0xAE, 0x62, 0x98, 0x5E, 0xCB, + 0xB7, 0xD9, 0x55, 0x69, 0x8F, 0x52, 0x9A, 0xC5, 0x88, 0x78, 0x00, 0xD0, 0x7D, 0x3D, 0x6C, 0xB2, + 0xEE, 0xB0, 0x89, 0x3A, 0x5E, 0x88, 0x33, 0x5A, 0x0C, 0x98, 0xA2, 0x98, 0x69, 0x43, 0x19, 0x1A, + 0x7D, 0x35, 0x77, 0xB4, 0x73, 0x44, 0xD8, 0x59, 0x3F, 0x86, 0x08, 0x66, 0x00, 0x0C, 0x52, 0x7F, + 0x26, 0x3E, 0xB0, 0x3A, 0xC4, 0x43, 0xFE, 0x13, 0xF4, 0x68, 0xF0, 0x4E, 0x68, 0xDD, 0xC2, 0x2D, + 0xA0, 0xBA, 0x8E, 0xCB, 0x52, 0x03, 0xCB, 0x43, 0x0E, 0x55, 0x58, 0x50, 0x7F, 0x1A, 0xCE, 0x38, + 0x99, 0xBD, 0x05, 0x1B, 0xE6, 0x00, 0x31, 0xB1, 0x3F, 0x7C, 0xFE, 0xB0, 0x96, 0x4B, 0x71, 0x38, + 0xE5, 0x7A, 0xEA, 0x7A, 0xE3, 0x81, 0x9A, 0x7A, 0xE9, 0xBA, 0xDD, 0xA4, 0x0A, 0xEF, 0xD4, 0x27, + 0xF1, 0xDF, 0x11, 0x30, 0xEE, 0x80, 0xCC, 0x29, 0x52, 0xD6, 0x49, 0xB5, 0xA5, 0xB2, 0x4D, 0xE8, + 0x24, 0xA5, 0x28, 0xE3, 0xC1, 0x13, 0xD2, 0xBB, 0x82, 0x7C, 0x6D, 0xFD, 0x32, 0xBE, 0x6A, 0x6E, + 0x6C, 0xDE, 0x1A, 0x30, 0xF6, 0xBA, 0x40, 0x54, 0xCB, 0x45, 0x12, 0xF4, 0x86, 0xE4, 0x2D, 0xE5, + 0x38, 0x0E, 0x49, 0x21, 0x15, 0xB3, 0x80, 0x9F, 0x5F, 0x3C, 0xC2, 0x85, 0x6F, 0x06, 0xCA, 0xF7, + 0x76, 0x99, 0x92, 0xA3, 0xB4, 0x68, 0x41, 0x82, 0xEC, 0x8A, 0x5E, 0xC3, 0x34, 0x20, 0x82, 0xE9, + 0xB3, 0x30, 0xBD, 0x93, 0xCE, 0x66, 0xFE, 0xD3, 0x5B, 0xB4, 0xCF, 0xF8, 0xA8, 0xF6, 0xE1, 0x11, + 0xE2, 0x72, 0x7D, 0x94, 0x46, 0xFE, 0xD3, 0x3B, 0xB4, 0x6F, 0x51, 0xA7, 0xFD, 0x11, 0x4E, 0xC8, + 0xA0, 0x56, 0xFB, 0xD1, 0x90, 0xF1, 0xE9, 0x10, 0xBD, 0x0D, 0xB0, 0x90, 0xEE, 0xDC, 0xFD, 0x65, + 0x12, 0x12, 0x0F, 0x01, 0xB0, 0xC8, 0xB4, 0xE6, 0xD3, 0xED, 0xC2, 0x3E, 0x18, 0x72, 0x61, 0x9E, + 0xC7, 0xDC, 0xE3, 0x11, 0xF1, 0x43, 0x62, 0x23, 0x07, 0x98, 0xC7, 0x45, 0xB1, 0x11, 0xB5, 0x4C, + 0x84, 0x14, 0xA3, 0xF1, 0x50, 0x53, 0xB1, 0xB9, 0xB2, 0x30, 0x54, 0x88, 0x35, 0x9D, 0xAA, 0x35, + 0x6D, 0xBF, 0x1B, 0xB5, 0xB7, 0x67, 0x83, 0xA3, 0x40, 0xDF, 0xE0, 0x35, 0x77, 0x42, 0x99, 0x84, + 0x4D, 0x83, 0x8D, 0x9E, 0xD8, 0x49, 0xD3, 0x4E, 0x27, 0x2B, 0xEE, 0x7D, 0x32, 0x7F, 0xCC, 0x94, + 0x81, 0xC2, 0xAB, 0xAD, 0x22, 0xB5, 0x85, 0x0C, 0x83, 0x94, 0x2D, 0x36, 0xD4, 0xE9, 0x78, 0x71, + 0xA1, 0x89, 0x89, 0xDD, 0xE5, 0x13, 0x7A, 0x10, 0x52, 0x18, 0x80, 0xBC, 0xB2, 0xC1, 0x54, 0x91, + 0x61, 0x5C, 0xB6, 0x62, 0x21, 0x6C, 0xC4, 0xC0, 0x76, 0x2F, 0xD1, 0x0C, 0xCF, 0xDC, 0xCB, 0xB3, + 0x60, 0x2D, 0x71, 0x20, 0x29, 0xDF, 0x20, 0xEC, 0xD6, 0x27, 0x07, 0x5F, 0x19, 0x8B, 0x46, 0x82, + 0x64, 0x8A, 0xCF, 0x72, 0xC5, 0x16, 0x79, 0x55, 0xDD, 0xD3, 0xD6, 0xA9, 0xA9, 0x2A, 0x61, 0x2D, + 0x83, 0xFA, 0x21, 0xA2, 0xAC, 0xBF, 0xC9, 0xBD, 0x7C, 0x0D, 0x55, 0x4C, 0x17, 0x1A, 0xC0, 0xFE, + 0x70, 0xF5, 0x4C, 0x1F, 0x36, 0xCA, 0xA3, 0x08, 0xEA, 0xE3, 0x78, 0x9E, 0x66, 0xC0, 0x98, 0xDB, + 0xFE, 0x49, 0xBC, 0x86, 0x95, 0x06, 0x0F, 0x7B, 0x0D, 0x8A, 0x1E, 0xA9, 0xBA, 0x6E, 0x36, 0x55, + 0x0A, 0xE3, 0x42, 0x56, 0x8E, 0xC9, 0xD2, 0x89, 0xC6, 0xB3, 0xA4, 0xFD, 0x76, 0x3A, 0xDE, 0x06, + 0xA7, 0xA8, 0xBE, 0x00, 0xAE, 0x76, 0x5A, 0x12, 0x7A, 0xEF, 0x02, 0xD4, 0x88, 0xBF, 0x21, 0xED, + 0xDE, 0x06, 0x6C, 0x9C, 0xC6, 0xA9, 0xF5, 0x94, 0x9D, 0x83, 0x3C, 0x1B, 0xD9, 0xEB, 0x14, 0xB2, + 0x60, 0x09, 0xEA, 0x95, 0x95, 0x5D, 0x8E, 0x1F, 0x77, 0x23, 0xE3, 0xD8, 0xDC, 0x7E, 0x58, 0xCE, + 0x6B, 0x2B, 0xBC, 0x85, 0xEB, 0xCA, 0x48, 0x7C, 0xFF, 0xB9, 0xC0, 0x06, 0xF5, 0x39, 0xBC, 0xD8, + 0xB4, 0x6E, 0x0B, 0x5F, 0x0F, 0x83, 0x3E, 0x36, 0x2E, 0x22, 0x34, 0xA4, 0x28, 0x58, 0x14, 0x8F, + 0xC6, 0xC8, 0x60, 0xA1, 0x1F, 0xDE, 0x0D, 0xB4, 0xE4, 0x50, 0x3A, 0x5E, 0x51, 0x8D, 0xA9, 0x85, + 0xD5, 0x32, 0x5F, 0xB7, 0x84, 0xF2, 0x95, 0x9A, 0xB8, 0x7A, 0x78, 0x36, 0x9C, 0x52, 0xEB, 0x1C, + 0xC6, 0x84, 0x2B, 0xF7, 0x28, 0x1A, 0x6C, 0xF4, 0x72, 0xC3, 0xAE, 0x24, 0x8F, 0x06, 0x25, 0x72, + 0xA1, 0x36, 0x9E, 0xA9, 0x77, 0x15, 0x2C, 0x72, 0x68, 0xB3, 0xBF, 0x31, 0x8D, 0xB2, 0x5E, 0x1B, + 0x2E, 0xCA, 0xE3, 0x5A, 0xDC, 0x21, 0x2A, 0xCC, 0x16, 0xFC, 0x7D, 0x17, 0xA4, 0xDA, 0x7C, 0x58, + 0xB1, 0x62, 0x07, 0x1E, 0xAA, 0xCB, 0x09, 0x53, 0x34, 0x23, 0x25, 0x9A, 0x91, 0x98, 0x92, 0x92, + 0x79, 0xBB, 0xD0, 0x0E, 0x5B, 0x88, 0x44, 0x10, 0x1D, 0x20, 0x89, 0x09, 0x85, 0xF1, 0xD0, 0x2B, + 0x70, 0x68, 0xED, 0xD9, 0x80, 0x2E, 0x7A, 0xB6, 0x2D, 0x67, 0xFE, 0xA5, 0xB9, 0xF7, 0xB2, 0x7B, + 0xD1, 0xFA, 0xED, 0x9A, 0x59, 0xD2, 0xD7, 0x73, 0xDE, 0xE9, 0xD4, 0x0E, 0x33, 0xA8, 0x7E, 0x05, + 0xC0, 0x8F, 0x2F, 0xC5, 0x91, 0x95, 0xE2, 0xBB, 0xBB, 0x04, 0xA9, 0x03, 0x6B, 0xF9, 0x4D, 0xB4, + 0x0B, 0x11, 0x00, 0x20, 0xCF, 0x61, 0xC1, 0xE7, 0xFF, 0xD4, 0x79, 0xD4, 0x68, 0x88, 0x39, 0x54, + 0x07, 0x08, 0x7E, 0x17, 0x37, 0xAC, 0x8D, 0xBD, 0xA1, 0x5F, 0xE3, 0x9A, 0x44, 0xCD, 0xA2, 0x6E, + 0x5A, 0x57, 0x18, 0x1A, 0x80, 0x18, 0xFA, 0x41, 0x0D, 0xF9, 0x4C, 0x7D, 0xCB, 0xEC, 0xC8, 0x03, + 0x61, 0x8F, 0x5B, 0x8B, 0x07, 0xE6, 0x85, 0x4D, 0x74, 0x9D, 0xF9, 0x17, 0x55, 0xC6, 0x71, 0x86, + 0xB4, 0xC9, 0x54, 0x6E, 0xDB, 0x5A, 0x4D, 0xC9, 0xF3, 0x1C, 0xD8, 0x2C, 0x76, 0xA6, 0x9C, 0xAC, + 0x8A, 0x7E, 0x61, 0x80, 0xB4, 0x34, 0xD2, 0xAF, 0x4B, 0x50, 0xF4, 0x27, 0x19, 0x61, 0x42, 0x3D, + 0x3F, 0x40, 0x86, 0x85, 0x52, 0xC8, 0x33, 0xBE, 0x0D, 0xEE, 0xCB, 0xF9, 0xCE, 0xE8, 0x66, 0x7F, + 0xD3, 0xA6, 0xD5, 0x4B, 0x27, 0x73, 0xEE, 0x4D, 0x04, 0x2D, 0x53, 0xB9, 0x6F, 0x93, 0x57, 0x52, + 0x6C, 0x16, 0xC7, 0xC8, 0xDA, 0x36, 0x2F, 0x5F, 0xB8, 0xAC, 0xD1, 0x29, 0x80, 0xB1, 0xA2, 0x85, + 0x5A, 0x3D, 0x15, 0xCF, 0xE8, 0x86, 0x1D, 0x2A, 0x5E, 0x63, 0x3B, 0xD2, 0x64, 0xAE, 0x5A, 0x4D, + 0x72, 0x76, 0x7A, 0x05, 0xB9, 0x21, 0xAC, 0x4B, 0x07, 0x8D, 0xDA, 0x71, 0x7D, 0x5D, 0xBE, 0x6C, + 0xE1, 0x33, 0xCD, 0x37, 0x86, 0x2D, 0x75, 0x3D, 0x66, 0x6C, 0x61, 0x34, 0x2A, 0x9C, 0x45, 0x9E, + 0x2B, 0xDE, 0x84, 0x73, 0x81, 0xE5, 0x25, 0x66, 0x45, 0x20, 0x01, 0x00, 0xA9, 0xCF, 0xAD, 0x6A, + 0x9D, 0x8E, 0xFC, 0x83, 0xD1, 0x5D, 0x69, 0x77, 0x36, 0xCE, 0x2F, 0x3F, 0xA2, 0xE0, 0x8A, 0x96, + 0x7E, 0x43, 0xD1, 0xC2, 0x7A, 0x59, 0xC9, 0xFF, 0xB8, 0x74, 0x0B, 0x21, 0xA7, 0x5B, 0x9D, 0x59, + 0xBB, 0x7D, 0xA8, 0xFE, 0x7E, 0xEA, 0x12, 0xFE, 0x8B, 0x1F, 0x44, 0xE5, 0xBF, 0xA2, 0x4C, 0x4C, + 0x0B, 0x18, 0x7A, 0x54, 0x32, 0xB0, 0xE5, 0x4A, 0x65, 0xA0, 0xBE, 0xD4, 0xEE, 0x3D, 0x80, 0xCF, + 0x46, 0xE6, 0x65, 0x92, 0x41, 0x84, 0x46, 0xF8, 0x7F, 0x93, 0x41, 0xFA, 0x7F, 0x24, 0x83, 0xF4, + 0xBF, 0x9B, 0x41, 0x84, 0x6D, 0xA3, 0x8D, 0x47, 0xF8, 0xE5, 0x01, 0xE3, 0x11, 0xFE, 0x87, 0xC9, + 0x23, 0x55, 0x45, 0xD0, 0xC2, 0x1F, 0x6A, 0x36, 0x5F, 0x34, 0x99, 0x1D, 0x36, 0x51, 0xC5, 0x6C, + 0x41, 0x74, 0x53, 0x3E, 0xE5, 0xAB, 0x1B, 0x0A, 0x0E, 0xC9, 0x82, 0xD6, 0x5E, 0xA8, 0xFF, 0xA8, + 0xB6, 0xD7, 0xF8, 0x6D, 0x90, 0x75, 0x3A, 0xD9, 0xDB, 0x80, 0xE4, 0x2D, 0x47, 0xB3, 0x9A, 0x2F, + 0xD6, 0x21, 0xC6, 0x59, 0x44, 0x0C, 0x77, 0xD2, 0x7A, 0x2F, 0xD6, 0x0F, 0xC2, 0x23, 0x30, 0x1E, + 0x7B, 0xCA, 0x86, 0xB1, 0x78, 0x1C, 0x90, 0xAB, 0xDE, 0x35, 0x7C, 0x1A, 0x90, 0xAB, 0xFE, 0xF5, + 0x4A, 0x21, 0x9A, 0xE7, 0xCD, 0x0B, 0xC7, 0x70, 0x9F, 0x51, 0xB0, 0xFB, 0x03, 0x04, 0x9F, 0xFA, + 0x03, 0x0A, 0x1F, 0xB7, 0x06, 0x31, 0x7C, 0xDA, 0x1A, 0x10, 0xC8, 0xAD, 0x3B, 0x8D, 0x38, 0x8F, + 0xEF, 0x06, 0x59, 0x9E, 0xE7, 0xC3, 0x51, 0x40, 0xBC, 0xAB, 0xCC, 0xEB, 0xC1, 0xD4, 0x3F, 0x79, + 0x6F, 0x56, 0x03, 0xD7, 0x70, 0x54, 0xB9, 0xFE, 0x1D, 0xE5, 0xF0, 0x4D, 0x6F, 0x67, 0xEB, 0x7B, + 0x1C, 0x1D, 0x4A, 0xAE, 0xD7, 0xDC, 0x1F, 0x0B, 0x4F, 0x67, 0xF4, 0x34, 0xBC, 0x45, 0x25, 0x27, + 0xAC, 0xA2, 0xD0, 0xBD, 0xD4, 0x81, 0xE6, 0xD2, 0xD9, 0x9C, 0xBA, 0x35, 0x18, 0xEE, 0x25, 0xC6, + 0xCE, 0x74, 0x3E, 0x9A, 0x38, 0x98, 0x17, 0x88, 0xC8, 0x9B, 0xD2, 0xDD, 0xD0, 0x49, 0xC3, 0xFB, + 0xF8, 0x2E, 0xA4, 0x88, 0x95, 0xB2, 0x29, 0x71, 0xA6, 0x61, 0x3A, 0xE7, 0x01, 0xF9, 0x58, 0x01, + 0x0A, 0x23, 0x37, 0x87, 0xDB, 0xAF, 0xB6, 0x7B, 0xFF, 0xF6, 0x66, 0xF8, 0x17, 0xF1, 0x66, 0x38, + 0x23, 0x23, 0xD3, 0x26, 0x59, 0x77, 0x69, 0xD8, 0xED, 0xF7, 0x85, 0x47, 0x03, 0xF7, 0x6D, 0xE0, + 0xC6, 0xC4, 0xD0, 0xE2, 0xDD, 0x55, 0xBA, 0xDE, 0xB5, 0x7B, 0x29, 0xE0, 0x19, 0x17, 0xC3, 0xD5, + 0x6B, 0x5E, 0x2C, 0x30, 0xD0, 0xF7, 0xBC, 0x79, 0xD9, 0xB0, 0xAF, 0xAF, 0x5E, 0xB4, 0xDF, 0x59, + 0x8B, 0xA8, 0x10, 0x9E, 0xE9, 0xDC, 0xFA, 0xD6, 0xED, 0x0B, 0x63, 0xA4, 0xB6, 0x99, 0x8A, 0x1B, + 0x26, 0x4F, 0xED, 0x9B, 0xCA, 0xA0, 0x77, 0x75, 0x0D, 0x71, 0x60, 0x43, 0xD0, 0xCF, 0xC2, 0x87, + 0x33, 0x51, 0xC2, 0x75, 0x5D, 0xE9, 0xB5, 0x07, 0x43, 0xF9, 0xB4, 0xFE, 0x10, 0x25, 0xC9, 0x51, + 0x48, 0x43, 0x38, 0x0A, 0x78, 0x97, 0x97, 0x59, 0x3C, 0x9D, 0xA2, 0xE8, 0x94, 0x33, 0x8E, 0x27, + 0x28, 0x95, 0x04, 0xDD, 0x3E, 0x8C, 0xD8, 0xFF, 0x6E, 0xEA, 0x06, 0xD8, 0x11, 0x37, 0xC0, 0xC6, + 0x63, 0x8F, 0x5F, 0xA8, 0x47, 0xCB, 0x25, 0xB7, 0xB8, 0x4A, 0x87, 0x61, 0x8F, 0x02, 0x6E, 0x0C, + 0x21, 0x7E, 0x82, 0xC3, 0x88, 0xF5, 0xE5, 0x51, 0x18, 0x02, 0x18, 0xB2, 0x3A, 0xC7, 0x32, 0x9C, + 0xE4, 0x01, 0xA5, 0x19, 0xF1, 0x40, 0xA7, 0x13, 0xFA, 0x2A, 0xC2, 0xA4, 0x3F, 0xCF, 0x92, 0x93, + 0x88, 0x37, 0xED, 0xF6, 0x83, 0x20, 0x88, 0xC0, 0x22, 0x0A, 0x28, 0x4C, 0x82, 0x6A, 0x15, 0x46, + 0x00, 0x1A, 0xA7, 0x73, 0x94, 0xDF, 0xD4, 0xBE, 0x6D, 0x04, 0x41, 0xC2, 0x5F, 0xF0, 0x09, 0xCC, + 0x3A, 0x1D, 0xEF, 0x46, 0x19, 0x77, 0x6F, 0x96, 0x4B, 0x55, 0x48, 0x83, 0x20, 0x18, 0x75, 0xFB, + 0xC5, 0x06, 0x51, 0x3D, 0x2F, 0x95, 0x67, 0x96, 0xD1, 0x88, 0xFD, 0xE4, 0xDE, 0x94, 0x09, 0x68, + 0x38, 0x41, 0xCD, 0xB3, 0x58, 0xEC, 0x12, 0x7A, 0x0B, 0x5D, 0xF0, 0x2D, 0x71, 0xB0, 0x78, 0x1C, + 0x44, 0x9B, 0x7D, 0xF8, 0x34, 0x40, 0x39, 0x44, 0x69, 0xC4, 0x7E, 0xD3, 0x4D, 0x86, 0x0E, 0xDD, + 0xE0, 0x68, 0xEC, 0xF7, 0x06, 0x7D, 0xC0, 0x3F, 0xE7, 0x85, 0xC5, 0x9B, 0x31, 0x80, 0x54, 0x64, + 0xB0, 0xEA, 0x03, 0xFB, 0x61, 0x92, 0xE0, 0x87, 0x4F, 0x38, 0xFD, 0x99, 0xD2, 0xD9, 0xE7, 0x0C, + 0x53, 0xCC, 0x76, 0x00, 0x00, 0x68, 0xF6, 0xA4, 0xF5, 0x72, 0x36, 0xC5, 0xBF, 0x9E, 0x9F, 0x7A, + 0x04, 0x0C, 0xAF, 0x5C, 0x1E, 0x45, 0xD4, 0x85, 0xAE, 0x88, 0x93, 0xEC, 0x5E, 0xFB, 0x32, 0x84, + 0x27, 0xF1, 0x10, 0x93, 0xCD, 0xBC, 0xBD, 0xB6, 0x80, 0xE7, 0xA3, 0x90, 0x8E, 0x26, 0x1E, 0x02, + 0x0B, 0xF6, 0x33, 0x4F, 0x97, 0xCB, 0x4C, 0x9C, 0x76, 0x16, 0x4C, 0x5D, 0x18, 0x10, 0xC8, 0xB7, + 0xEB, 0x41, 0x0C, 0x95, 0x85, 0x51, 0x6D, 0x1F, 0x78, 0x1F, 0x97, 0xAC, 0x8E, 0x4C, 0xEA, 0x4D, + 0xBC, 0x1E, 0xA4, 0x00, 0x72, 0xB5, 0x54, 0x6F, 0x33, 0x42, 0x3F, 0xAB, 0x9C, 0x92, 0x15, 0xF5, + 0x8D, 0x61, 0xF2, 0x56, 0x0D, 0xAA, 0xDA, 0x28, 0x4C, 0x12, 0x0F, 0x43, 0xE9, 0xF2, 0x08, 0xB9, + 0x4E, 0xF3, 0xEC, 0x0E, 0x78, 0xAB, 0xB5, 0x3A, 0xC8, 0x41, 0xCE, 0x16, 0xC0, 0x9A, 0xDC, 0xBB, + 0xEF, 0xD9, 0x59, 0x16, 0x0C, 0x3C, 0xBE, 0x96, 0xD8, 0xAA, 0x02, 0x79, 0x4E, 0x99, 0xFA, 0x9A, + 0x0F, 0xB5, 0xF3, 0xF8, 0x44, 0x07, 0x3A, 0x1A, 0xE1, 0x74, 0x1C, 0x67, 0x53, 0xEF, 0xCB, 0x11, + 0x76, 0x9E, 0xF0, 0xDC, 0x79, 0x08, 0x53, 0xBE, 0x0F, 0x9A, 0xBB, 0xDF, 0x8F, 0x0B, 0x9A, 0xEF, + 0xFF, 0x25, 0xFD, 0x4B, 0xFA, 0xDB, 0xC1, 0xF9, 0xA7, 0x93, 0x4F, 0x3F, 0x0D, 0x9C, 0xCB, 0x49, + 0x4C, 0x1C, 0xB6, 0xD2, 0x9D, 0x11, 0x9E, 0x27, 0x91, 0x33, 0xC3, 0x6C, 0x21, 0xC6, 0x7C, 0x77, + 0xBC, 0x45, 0x4E, 0xC4, 0xE6, 0x2D, 0xC3, 0x73, 0xF2, 0x05, 0x14, 0xE7, 0x37, 0xF1, 0x3A, 0x9C, + 0xC7, 0x7F, 0xF0, 0xF8, 0xFA, 0x40, 0x60, 0xC1, 0xF8, 0x08, 0xF1, 0x22, 0x24, 0x8E, 0xFF, 0x05, + 0x4B, 0xE4, 0xC8, 0x4F, 0xF0, 0x88, 0xAB, 0xA3, 0xFE, 0x24, 0x43, 0xE3, 0x80, 0xF2, 0x65, 0xE6, + 0x30, 0x70, 0x38, 0x41, 0xFE, 0x43, 0x98, 0xA5, 0x9E, 0x7B, 0x36, 0x43, 0x3C, 0x36, 0x36, 0xC7, + 0x85, 0x07, 0xE0, 0x43, 0x91, 0x13, 0x12, 0x47, 0x80, 0x94, 0xD8, 0xA5, 0x98, 0xC7, 0x30, 0xE5, + 0xE7, 0x52, 0x14, 0xB9, 0x20, 0xCF, 0x43, 0xA5, 0xBA, 0xE0, 0xAA, 0xEA, 0x02, 0x33, 0xAF, 0xCF, + 0x4A, 0xCF, 0x4A, 0x02, 0x8E, 0x15, 0x6F, 0xF1, 0xE2, 0xD2, 0x3A, 0x05, 0xD7, 0x4C, 0xCE, 0xD4, + 0x77, 0x86, 0x30, 0x87, 0x7B, 0xFD, 0x37, 0xDB, 0xDF, 0xA3, 0xED, 0x88, 0xA3, 0x7D, 0x11, 0xA3, + 0x44, 0x6B, 0x38, 0xD5, 0x0F, 0xD6, 0xFD, 0x45, 0xED, 0x2E, 0xC2, 0x17, 0xF5, 0x37, 0x4E, 0xF9, + 0x4A, 0x9C, 0xA3, 0xC3, 0x30, 0x49, 0x6E, 0xC3, 0xD1, 0x57, 0xC3, 0x87, 0x88, 0xBF, 0x14, 0x51, + 0xE5, 0x24, 0xB8, 0xBA, 0xCE, 0xF5, 0x6D, 0xB9, 0x7A, 0x57, 0x93, 0xC6, 0xD3, 0x50, 0xA8, 0xBF, + 0xE1, 0xB4, 0xB0, 0xA5, 0x99, 0xDD, 0xF8, 0xA3, 0x30, 0x1D, 0xA1, 0xE4, 0xA0, 0x54, 0xD3, 0xB3, + 0x35, 0xD7, 0x97, 0xEF, 0xA5, 0x52, 0x39, 0x52, 0x90, 0x87, 0x51, 0x74, 0x5E, 0x46, 0xA9, 0xE6, + 0xA9, 0x55, 0x45, 0xB9, 0xF2, 0x0E, 0xBA, 0x0C, 0x58, 0x7B, 0x36, 0x54, 0xFA, 0xB3, 0x0C, 0x21, + 0x43, 0x7F, 0x9B, 0x23, 0x42, 0x2B, 0x63, 0x30, 0xC2, 0x19, 0xF0, 0xF7, 0x52, 0x12, 0x3B, 0x33, + 0x98, 0x43, 0x19, 0x74, 0x6E, 0xBE, 0x28, 0x8B, 0x8D, 0xD7, 0xC1, 0xE2, 0xC5, 0x5C, 0x0C, 0xD5, + 0x60, 0x37, 0x82, 0x00, 0xED, 0xA3, 0x41, 0x0F, 0xD2, 0xA2, 0x80, 0xEE, 0xD3, 0x41, 0xB9, 0x41, + 0xF1, 0xC0, 0x13, 0x3F, 0x5C, 0x30, 0x41, 0x6F, 0x54, 0x2E, 0x95, 0xEF, 0x7F, 0x0C, 0xE9, 0xC4, + 0x9F, 0xC6, 0xA9, 0x57, 0x2E, 0x87, 0x08, 0x0C, 0x90, 0xF1, 0x84, 0x29, 0x8D, 0x2C, 0x10, 0x8E, + 0xD3, 0x48, 0xB6, 0x0F, 0x1F, 0x3D, 0xB3, 0x14, 0x52, 0x30, 0xA0, 0xFF, 0xF7, 0x29, 0x9B, 0x57, + 0x8A, 0x0C, 0xC7, 0x19, 0x1B, 0xDF, 0xC0, 0xC2, 0x8E, 0x59, 0x1A, 0xBB, 0x69, 0xE0, 0x34, 0x06, + 0x65, 0x2B, 0xE6, 0xC4, 0x2E, 0xAB, 0x42, 0xE2, 0xD3, 0x3C, 0xAD, 0x30, 0x24, 0xF1, 0x94, 0x72, + 0x84, 0x82, 0x3A, 0xCD, 0x04, 0xCD, 0xF9, 0x13, 0xBD, 0xFA, 0x84, 0x70, 0x82, 0x56, 0xA6, 0xD7, + 0x78, 0xC4, 0x6C, 0xCE, 0xAF, 0x6D, 0xC6, 0xAC, 0x4B, 0x99, 0xAF, 0x7C, 0xD8, 0x82, 0x6C, 0x6E, + 0x2F, 0x5E, 0x14, 0xEE, 0xED, 0xC8, 0xD1, 0xFE, 0x2B, 0xD5, 0xC5, 0x05, 0x90, 0xD7, 0xD3, 0x18, + 0x5A, 0x64, 0x45, 0x9E, 0xC3, 0xDD, 0xDD, 0x37, 0x7B, 0xDF, 0xF7, 0x94, 0xA2, 0x1A, 0xF6, 0xA4, + 0xFE, 0x90, 0xE2, 0xF5, 0xCE, 0x8E, 0x8A, 0xFB, 0x96, 0x69, 0xAF, 0x60, 0xB2, 0xB6, 0x57, 0xB0, + 0x55, 0x22, 0x4A, 0x5B, 0xC8, 0x11, 0x62, 0x42, 0xFD, 0x73, 0xFC, 0x88, 0x92, 0x73, 0xC6, 0x58, + 0x36, 0x06, 0x8E, 0x2A, 0x75, 0xEA, 0x7E, 0x81, 0xA4, 0xD9, 0x89, 0x55, 0x3E, 0x6A, 0x95, 0x6E, + 0xF1, 0xDC, 0x57, 0x32, 0x37, 0x43, 0xB2, 0x18, 0x6F, 0xAB, 0x45, 0x89, 0x3C, 0xE3, 0x54, 0xDA, + 0xC1, 0x72, 0xA5, 0xE2, 0xD4, 0x30, 0xE7, 0xAE, 0xAD, 0xB2, 0xD4, 0xF4, 0x9D, 0xD5, 0xE0, 0xBC, + 0x72, 0x81, 0x4D, 0x7E, 0xDB, 0x47, 0xD8, 0x44, 0x23, 0x85, 0xCC, 0x7C, 0x16, 0x85, 0x14, 0x1D, + 0xCD, 0x32, 0x0F, 0x80, 0xBC, 0x5E, 0x96, 0x9B, 0x3F, 0xC4, 0xF5, 0xC5, 0xD0, 0x82, 0xB4, 0x71, + 0x1D, 0xA0, 0xA3, 0x1A, 0x20, 0x1E, 0x70, 0x32, 0xC6, 0xE9, 0x47, 0x14, 0xC5, 0xE1, 0x47, 0xA6, + 0x1F, 0xB0, 0xEA, 0xA5, 0xEB, 0x8C, 0xE5, 0x52, 0xBD, 0x3C, 0x38, 0x2D, 0x8F, 0xAC, 0x04, 0x1D, + 0xFC, 0x51, 0xD3, 0xDD, 0x88, 0x94, 0x0D, 0xC4, 0x94, 0x7D, 0xE4, 0xD5, 0xBC, 0x2F, 0x32, 0xB4, + 0x67, 0x98, 0x46, 0x8E, 0x57, 0xC0, 0x18, 0x38, 0x3F, 0x5A, 0xF6, 0xEB, 0x5A, 0xDF, 0x79, 0x34, + 0x9B, 0x3D, 0x82, 0x2F, 0x60, 0x05, 0x0E, 0x7E, 0x18, 0x45, 0xAD, 0x54, 0x90, 0xAF, 0x71, 0x0A, + 0x7E, 0x5A, 0xB4, 0x03, 0x2C, 0x6E, 0x27, 0x4A, 0x4C, 0x59, 0x9B, 0xB9, 0x15, 0x68, 0xAD, 0x3F, + 0x3F, 0x8D, 0xD4, 0x2D, 0xC9, 0xBE, 0xA4, 0xFA, 0xD0, 0xC5, 0xB2, 0x06, 0x94, 0x2E, 0x91, 0x5B, + 0x24, 0x4B, 0x96, 0xC3, 0xED, 0xAD, 0xED, 0xEF, 0x94, 0x57, 0x95, 0x67, 0x80, 0x86, 0x9C, 0xDA, + 0x7A, 0xB3, 0xDB, 0x13, 0xB1, 0x2D, 0xFB, 0x7B, 0xAF, 0x7B, 0x22, 0xB6, 0xE5, 0xF6, 0x5E, 0x7F, + 0x47, 0x5B, 0x08, 0x76, 0xC4, 0x9B, 0x87, 0xDD, 0x9D, 0xED, 0x5D, 0xF1, 0xE8, 0xE1, 0xCD, 0x76, + 0x7F, 0x4B, 0x04, 0xB7, 0x14, 0xD1, 0x30, 0x13, 0x1D, 0x03, 0x33, 0xD2, 0xB1, 0x32, 0x6F, 0x82, + 0xD8, 0xDB, 0xD9, 0xDD, 0x7B, 0x05, 0xE0, 0x9C, 0x41, 0xDE, 0x7A, 0xB3, 0x07, 0xE0, 0x38, 0x88, + 0xBD, 0x57, 0xDB, 0x6F, 0xDE, 0x00, 0x78, 0xAF, 0x5F, 0x53, 0xDC, 0xF1, 0xBF, 0xB6, 0x5F, 0x01, + 0x38, 0x63, 0x50, 0xB6, 0xB6, 0x7B, 0x00, 0x5E, 0xB0, 0xB6, 0xAF, 0xB6, 0x76, 0x01, 0x9C, 0xB2, + 0xBF, 0xB6, 0x5E, 0x03, 0x78, 0xC8, 0xAA, 0xBD, 0xD9, 0xDE, 0x01, 0xF0, 0x96, 0x75, 0xBB, 0xB3, + 0xB7, 0x0B, 0xE0, 0x93, 0xB0, 0x64, 0xEC, 0x00, 0xF8, 0xC0, 0xBF, 0xEE, 0xBD, 0x01, 0xF0, 0x98, + 0xFD, 0xD5, 0xDB, 0xDD, 0x05, 0xF0, 0x94, 0x37, 0x65, 0x65, 0x5F, 0x59, 0xBD, 0x37, 0x3B, 0x7D, + 0x00, 0xCF, 0x59, 0x17, 0xFD, 0xDE, 0x2B, 0x00, 0x8F, 0x58, 0xD9, 0xAB, 0x9D, 0x1D, 0x00, 0x0F, + 0x38, 0xCA, 0xAF, 0x76, 0x00, 0x7C, 0xD4, 0x8F, 0x3D, 0xDE, 0xB3, 0x7A, 0xAF, 0x18, 0x2A, 0x97, + 0xEA, 0xB1, 0xC7, 0x47, 0xD6, 0xED, 0xAB, 0xED, 0x3E, 0x80, 0x67, 0x81, 0x3B, 0x4F, 0x05, 0xE9, + 0x23, 0x77, 0x43, 0x59, 0xA6, 0xC4, 0xA1, 0x61, 0x5F, 0x9E, 0x1D, 0x54, 0xD0, 0x0C, 0x6E, 0x12, + 0x93, 0x9B, 0xC0, 0x89, 0xDE, 0x04, 0x1E, 0xFC, 0x43, 0x9C, 0x21, 0x35, 0x23, 0xE5, 0x6D, 0x20, + 0x58, 0xE4, 0x6A, 0x27, 0x50, 0xEA, 0xE1, 0x6D, 0x86, 0x1F, 0x08, 0x53, 0xA0, 0x25, 0xE7, 0x7C, + 0x45, 0x4F, 0x47, 0xF8, 0x21, 0x15, 0xB6, 0x0B, 0xC3, 0xEC, 0x2E, 0xCB, 0x2F, 0x10, 0x4A, 0x4B, + 0x85, 0x9F, 0x33, 0x44, 0x48, 0xAD, 0xF6, 0x3C, 0x9D, 0x65, 0x78, 0xC4, 0xA3, 0xD9, 0x1F, 0xA1, + 0x30, 0xFA, 0x05, 0x3D, 0x15, 0xDF, 0x70, 0x2A, 0xEC, 0xE9, 0x1F, 0xF1, 0xBD, 0xED, 0x89, 0xC6, + 0xBD, 0xFD, 0x89, 0x46, 0xB5, 0x4D, 0x09, 0x4C, 0xE5, 0x25, 0x08, 0xEB, 0x6E, 0x6D, 0xC0, 0xBA, + 0xB2, 0x68, 0x58, 0x01, 0x25, 0xCE, 0x19, 0xEB, 0x43, 0x33, 0xEB, 0xEB, 0xE6, 0x15, 0x98, 0x17, + 0xEA, 0x15, 0xA6, 0xB8, 0xA8, 0x5C, 0x1F, 0xB8, 0xB5, 0x61, 0x1D, 0x60, 0xA5, 0xBB, 0xCB, 0x98, + 0xF2, 0xA0, 0x25, 0xCF, 0xEA, 0xAA, 0xD6, 0xA8, 0x0C, 0xA8, 0xD2, 0xC5, 0x7B, 0xEE, 0xDD, 0xBD, + 0x2E, 0xEC, 0xA2, 0xB6, 0x6C, 0x5A, 0x81, 0xC6, 0x03, 0xCD, 0xAC, 0x0B, 0xEE, 0x46, 0x44, 0xB0, + 0x7B, 0x46, 0x75, 0x15, 0xFC, 0x4F, 0x7E, 0x78, 0x66, 0xCB, 0xCB, 0xF0, 0xF6, 0xF9, 0x0D, 0x7F, + 0x8B, 0x93, 0x84, 0x9D, 0xD1, 0xD7, 0x6E, 0x42, 0x10, 0x9D, 0xEB, 0x18, 0x64, 0x49, 0x71, 0x81, + 0x50, 0x6E, 0xAF, 0xCE, 0x0A, 0x32, 0x67, 0x12, 0xE3, 0x00, 0x7D, 0x45, 0xC1, 0xAF, 0x3E, 0x4E, + 0xF8, 0xA7, 0x11, 0xF2, 0x6E, 0x8D, 0x5B, 0x08, 0x50, 0x03, 0xEB, 0x5B, 0x1F, 0x04, 0xAD, 0x0F, + 0xFD, 0x7D, 0xF5, 0xE8, 0xAF, 0x4F, 0x82, 0xC5, 0x65, 0x9A, 0x36, 0xE2, 0xAE, 0x0D, 0xF5, 0xC0, + 0x3F, 0xAA, 0xB6, 0x56, 0x60, 0xAD, 0xCD, 0x09, 0xA2, 0xF2, 0x4F, 0xEF, 0xD1, 0x3F, 0xA9, 0xB5, + 0x6D, 0xC2, 0xC8, 0x1E, 0x4B, 0x90, 0xDF, 0x95, 0x48, 0x03, 0x2E, 0x5F, 0xD6, 0xFC, 0xC0, 0xC6, + 0x98, 0xD5, 0x3C, 0xA6, 0x49, 0xF6, 0xE5, 0x37, 0xA3, 0x8D, 0x71, 0x12, 0xED, 0xA0, 0xCE, 0x8D, + 0x88, 0x2C, 0x9E, 0xB4, 0x90, 0xC8, 0xD6, 0xFA, 0xB4, 0xFC, 0x4C, 0x90, 0x17, 0x28, 0x8D, 0x44, + 0xD8, 0xBE, 0x52, 0xC8, 0xC1, 0x19, 0xCE, 0xA8, 0x28, 0x7E, 0x36, 0x8A, 0x04, 0x51, 0x03, 0x56, + 0xC6, 0x7F, 0x3F, 0x13, 0x88, 0xD0, 0xE2, 0x88, 0x34, 0x24, 0x9D, 0x73, 0x6C, 0x4A, 0x81, 0x40, + 0x59, 0x41, 0xB9, 0x52, 0x4B, 0xE0, 0xCB, 0x4A, 0x1F, 0xE2, 0xD9, 0x75, 0x2D, 0x88, 0x27, 0x2B, + 0x95, 0x17, 0x7D, 0xF6, 0xD8, 0x8A, 0xF7, 0xFE, 0x18, 0x67, 0x0F, 0x61, 0x26, 0x1E, 0xF9, 0x82, + 0x06, 0xE0, 0x7A, 0x7B, 0xB1, 0x6C, 0x5C, 0xDF, 0x0C, 0xD5, 0x10, 0xA2, 0x36, 0x09, 0xFD, 0xCD, + 0x70, 0x95, 0x54, 0x6B, 0x12, 0x73, 0xDF, 0x05, 0xF8, 0x32, 0xBC, 0x6D, 0x10, 0x82, 0x0D, 0xF3, + 0x54, 0xBE, 0x6B, 0xB1, 0x04, 0x92, 0xE5, 0xC1, 0xFF, 0x74, 0x1C, 0x59, 0x7E, 0xA1, 0xDA, 0x18, + 0x4E, 0xD6, 0xEB, 0xC1, 0x4B, 0xEB, 0x69, 0x52, 0xF9, 0x7F, 0xA9, 0xF3, 0x0C, 0xA1, 0x78, 0xFA, + 0x0B, 0x7A, 0xE2, 0xA3, 0x51, 0x21, 0x13, 0xA4, 0x5A, 0xDC, 0xE8, 0x1B, 0x66, 0x71, 0x4F, 0x33, + 0xDC, 0xC2, 0x8A, 0xC0, 0x53, 0xAD, 0x4F, 0xD8, 0x4B, 0x90, 0xF4, 0x6B, 0x4C, 0xB9, 0x93, 0x55, + 0x5F, 0x62, 0xCA, 0x62, 0xB1, 0xE9, 0xC9, 0x8A, 0x3C, 0x08, 0x6B, 0xAD, 0x1E, 0x2B, 0x2D, 0x55, + 0xD3, 0x71, 0x6B, 0x6B, 0x55, 0x2B, 0xB3, 0x5D, 0x6B, 0x75, 0x19, 0xDE, 0xDA, 0x1B, 0x15, 0x53, + 0x59, 0x6A, 0xA3, 0x76, 0xAC, 0x7A, 0x23, 0xF5, 0x45, 0x56, 0xB7, 0xAD, 0xB9, 0xC2, 0x38, 0x45, + 0x27, 0x68, 0xAA, 0x5D, 0x8F, 0x0A, 0xFB, 0x0A, 0x15, 0xE1, 0x03, 0x16, 0xDC, 0xA7, 0x1E, 0xC6, + 0x81, 0xEB, 0x0E, 0xC9, 0x43, 0x4C, 0x47, 0x13, 0x8F, 0x8A, 0x77, 0xA3, 0x60, 0x31, 0x0A, 0x09, + 0x72, 0xB6, 0x76, 0xF7, 0x06, 0x28, 0x70, 0xC7, 0x38, 0x43, 0x22, 0xAB, 0x8F, 0xCB, 0x2A, 0xF7, + 0x7B, 0xAE, 0x70, 0x63, 0x1F, 0xCA, 0x4A, 0xAF, 0x58, 0xA5, 0x22, 0xF5, 0x8F, 0xA8, 0xD4, 0xAF, + 0x54, 0x7A, 0xCD, 0x2A, 0x09, 0x3F, 0x0D, 0x51, 0x61, 0x4B, 0x55, 0x90, 0xC9, 0x5B, 0xD8, 0xF7, + 0x30, 0x25, 0x31, 0xFF, 0xBA, 0x33, 0x74, 0x37, 0x25, 0x2E, 0xB9, 0x46, 0x8D, 0x69, 0xE3, 0x12, + 0xB3, 0xDE, 0x40, 0x9D, 0x71, 0x8E, 0x7D, 0x11, 0xC7, 0x81, 0x62, 0x4E, 0x83, 0xF3, 0x9F, 0xDE, + 0x7B, 0x02, 0x0C, 0xE7, 0xA4, 0x3A, 0x19, 0x44, 0x75, 0xE2, 0xB3, 0x3A, 0x57, 0xB2, 0x8B, 0xEB, + 0x41, 0x63, 0x3D, 0x1E, 0x2E, 0x50, 0x98, 0x3F, 0x70, 0xA6, 0xBF, 0xD5, 0x22, 0xE4, 0x7C, 0xF9, + 0x71, 0x81, 0xFD, 0xC3, 0x9E, 0x7F, 0x7C, 0x71, 0x98, 0x5F, 0xFF, 0xB8, 0x88, 0xF3, 0xE1, 0x8F, + 0x0B, 0xAF, 0x07, 0xBF, 0xFA, 0x14, 0x9F, 0xDF, 0xDD, 0x8A, 0x58, 0x58, 0xC0, 0x23, 0x20, 0xE7, + 0xF5, 0xFA, 0x37, 0xC7, 0x17, 0x87, 0x07, 0x9F, 0x8F, 0x8F, 0xFC, 0x8B, 0xCB, 0xFC, 0x0B, 0x30, + 0x09, 0xD5, 0x1F, 0xC4, 0x63, 0x63, 0x00, 0xC0, 0x82, 0x98, 0x48, 0x64, 0xC9, 0x47, 0x4B, 0xF8, + 0x92, 0x46, 0xE5, 0xC1, 0x04, 0xC7, 0x7E, 0x76, 0x77, 0x1B, 0x2A, 0x8A, 0x78, 0xBE, 0xEF, 0x53, + 0x31, 0x1A, 0xFE, 0x62, 0xA3, 0x88, 0xF3, 0x19, 0x07, 0xCA, 0xFC, 0xB1, 0x02, 0xFE, 0x55, 0xDC, + 0x0E, 0x34, 0x37, 0x67, 0xDA, 0x46, 0xCB, 0x0C, 0x11, 0x8A, 0x33, 0xC1, 0xA5, 0x9A, 0xC7, 0xF2, + 0x3C, 0x57, 0x8A, 0x96, 0x38, 0x14, 0x55, 0xF4, 0xAE, 0x56, 0x89, 0xC2, 0xD7, 0x89, 0x10, 0x73, + 0x95, 0x35, 0x22, 0x0A, 0x89, 0x4C, 0x8F, 0x95, 0xCB, 0xE8, 0x3E, 0xC2, 0xBA, 0xA0, 0x32, 0x91, + 0x49, 0xE3, 0x81, 0xFA, 0x29, 0x43, 0x00, 0x2D, 0x64, 0x98, 0x1A, 0x11, 0xE0, 0x9A, 0x1F, 0xAE, + 0xD5, 0xFA, 0x12, 0xE7, 0xF6, 0x73, 0x14, 0xF2, 0x38, 0x31, 0x11, 0x12, 0x5B, 0xA5, 0xF4, 0x74, + 0xD4, 0x01, 0x3A, 0xD0, 0xBE, 0x7E, 0x79, 0x53, 0x0F, 0x04, 0x55, 0x3C, 0xE9, 0x2A, 0xF9, 0x5C, + 0xDA, 0x82, 0x06, 0xAB, 0xD0, 0x51, 0x4C, 0x41, 0xBD, 0xB1, 0x46, 0x95, 0xE2, 0xAD, 0x6C, 0x4E, + 0x9C, 0x00, 0x0C, 0x6A, 0xCE, 0xCC, 0x36, 0xD8, 0x35, 0x79, 0xAA, 0x2F, 0x59, 0x60, 0x0B, 0x42, + 0xCA, 0x92, 0xA1, 0x42, 0x38, 0xCA, 0xF0, 0x39, 0x32, 0x58, 0xB1, 0x24, 0xB2, 0xB9, 0x50, 0xAA, + 0x01, 0xA7, 0x88, 0xD2, 0x91, 0x94, 0x4D, 0xB1, 0x6D, 0x51, 0xA9, 0x15, 0xB5, 0xE9, 0x5E, 0x9D, + 0xA8, 0x10, 0xF2, 0xC2, 0x80, 0x27, 0x14, 0x81, 0x0B, 0xFA, 0x94, 0x20, 0x7D, 0x92, 0x56, 0xC1, + 0xDB, 0x2B, 0x4E, 0x84, 0x22, 0xA2, 0xA6, 0x56, 0xEC, 0x27, 0xF8, 0x41, 0x34, 0xF6, 0x40, 0xF9, + 0xC0, 0x23, 0xB5, 0xC8, 0xFC, 0x56, 0x6C, 0x05, 0xC2, 0x38, 0x58, 0xB9, 0x52, 0x95, 0x7B, 0x96, + 0x62, 0x9B, 0x86, 0x4D, 0x4B, 0x40, 0xA8, 0xD2, 0x48, 0x6E, 0x31, 0x65, 0xBE, 0x53, 0x01, 0xB5, + 0x60, 0x49, 0xF5, 0x34, 0xD8, 0x58, 0x3D, 0xF3, 0x53, 0xBF, 0x24, 0xD2, 0xFF, 0x08, 0x12, 0x9F, + 0xB9, 0x8D, 0x84, 0x54, 0xCE, 0x76, 0x65, 0x5A, 0xCA, 0x0D, 0x52, 0xD2, 0xED, 0x86, 0x3C, 0xA5, + 0x23, 0x35, 0x58, 0xCF, 0x78, 0x17, 0xA2, 0x06, 0xAB, 0x1E, 0x80, 0xC8, 0xA1, 0xC4, 0x44, 0xCC, + 0xC3, 0x49, 0xAA, 0xFC, 0x86, 0xF5, 0x1B, 0x9A, 0x22, 0xD1, 0xDD, 0xCF, 0x3C, 0x07, 0x23, 0xAB, + 0x2B, 0xCA, 0xD2, 0x3B, 0xFD, 0x8C, 0xA4, 0xCC, 0xF5, 0xA5, 0x77, 0x24, 0x72, 0x9A, 0x14, 0xCD, + 0x6E, 0x43, 0x82, 0x36, 0x2B, 0x34, 0x2D, 0xD5, 0x30, 0x9C, 0x50, 0x2A, 0x2F, 0xCB, 0x95, 0x9C, + 0x2C, 0xDF, 0x9C, 0xC8, 0x66, 0x8F, 0x6A, 0x2E, 0x12, 0xD2, 0xED, 0x83, 0x22, 0x2A, 0xF7, 0x9A, + 0xB1, 0xEB, 0xA0, 0x7C, 0x51, 0xF9, 0x5B, 0x1C, 0xD1, 0x89, 0x17, 0x1B, 0x81, 0x12, 0x57, 0x02, + 0xE0, 0x71, 0xD1, 0x5E, 0x64, 0xCA, 0x0F, 0x46, 0x0D, 0xEB, 0xC5, 0x33, 0x11, 0x08, 0x83, 0x78, + 0xED, 0x26, 0xBC, 0xCB, 0x61, 0x99, 0x7B, 0x8D, 0xC8, 0x6B, 0xE1, 0xA6, 0xCB, 0xA3, 0xB1, 0x59, + 0xBE, 0x53, 0x3C, 0x0B, 0x70, 0xF3, 0x67, 0x11, 0xE3, 0x2D, 0x6D, 0xAE, 0x20, 0xE3, 0xBD, 0x91, + 0xE6, 0x1A, 0x6C, 0xFE, 0x7E, 0x5E, 0x59, 0x4B, 0x85, 0x7D, 0xEB, 0xEE, 0xBA, 0xF9, 0x4D, 0x9C, + 0xC6, 0xF4, 0xA7, 0x04, 0xDF, 0x86, 0x89, 0x36, 0x3C, 0xDF, 0xC6, 0x69, 0xF4, 0x0B, 0x7A, 0xD2, + 0x09, 0x34, 0x4C, 0xFD, 0x37, 0x59, 0x15, 0x65, 0x41, 0x07, 0x59, 0x18, 0xE1, 0xD9, 0x93, 0x0B, + 0xB9, 0xEF, 0x3B, 0xFF, 0x30, 0x09, 0x89, 0x36, 0x0F, 0x79, 0x80, 0x47, 0x25, 0x4D, 0xCD, 0x88, + 0x6B, 0x40, 0xBF, 0x57, 0xD3, 0xC1, 0xC1, 0x14, 0x4F, 0xF3, 0xD7, 0xCC, 0x8A, 0xA3, 0x51, 0xF0, + 0x8E, 0x37, 0xAD, 0x46, 0x4D, 0xD3, 0xED, 0xD5, 0x68, 0x6B, 0x02, 0x42, 0xAA, 0x2F, 0xCF, 0x1A, + 0x8E, 0x06, 0xE6, 0xF2, 0x78, 0x69, 0xFC, 0x15, 0xC8, 0xF7, 0x50, 0xC5, 0x80, 0x32, 0xF2, 0x63, + 0xF2, 0x21, 0xCE, 0xD0, 0x18, 0x3F, 0xEE, 0x7F, 0x07, 0x44, 0x23, 0x6C, 0x06, 0x27, 0xF6, 0x16, + 0x7F, 0x60, 0x70, 0x3B, 0xA7, 0x14, 0xA7, 0x92, 0xCA, 0xB5, 0xF8, 0x6D, 0x0D, 0xB4, 0x12, 0xD7, + 0x21, 0xC7, 0x25, 0x9F, 0xFD, 0xEA, 0x64, 0x48, 0xDB, 0x99, 0xF4, 0x2E, 0xAB, 0x46, 0x79, 0x23, + 0xBF, 0xE1, 0x2C, 0xE2, 0xF3, 0x35, 0xF8, 0x2E, 0xD6, 0x49, 0x19, 0x62, 0x53, 0x94, 0xCE, 0xE5, + 0xA0, 0xFE, 0x69, 0xC3, 0xE0, 0xB3, 0x74, 0x1A, 0xA7, 0xF3, 0x47, 0xB9, 0x89, 0x7C, 0xDB, 0x88, + 0xC2, 0xF9, 0xE3, 0x88, 0x81, 0x97, 0xC3, 0xE9, 0xD7, 0xE7, 0xA8, 0x2D, 0x08, 0xDF, 0x3A, 0xE3, + 0x14, 0xA7, 0x3D, 0x63, 0xED, 0x2E, 0xBE, 0x87, 0xD9, 0xBF, 0xA2, 0xA7, 0xF9, 0x4C, 0x20, 0x2B, + 0xE8, 0xF7, 0x15, 0x3D, 0xF1, 0xB7, 0xB5, 0x80, 0x87, 0x98, 0xF8, 0x86, 0x15, 0x50, 0x82, 0x5D, + 0xB0, 0xAB, 0x86, 0xCE, 0x9F, 0xFC, 0xFE, 0x51, 0xF0, 0x67, 0x19, 0x22, 0xA4, 0xD2, 0x01, 0xBF, + 0x1F, 0xF8, 0x63, 0x7A, 0x30, 0xF6, 0x65, 0xEE, 0xE1, 0x57, 0x4A, 0xAD, 0x51, 0xDF, 0xB4, 0xAB, + 0xD5, 0x1B, 0xF2, 0x6C, 0x7C, 0x1B, 0x02, 0x42, 0x0D, 0x34, 0xC7, 0xDA, 0x8A, 0x80, 0xA8, 0xDE, + 0x64, 0x8E, 0xFA, 0x36, 0x14, 0x10, 0x3B, 0xE9, 0xAE, 0x4B, 0x01, 0x94, 0x46, 0xDF, 0x3F, 0x7E, + 0xE9, 0x40, 0x5E, 0x8C, 0x99, 0x17, 0x68, 0x4B, 0x9B, 0x6D, 0x86, 0xC5, 0x7A, 0xD7, 0x09, 0x80, + 0xDA, 0xB0, 0x95, 0x9A, 0x75, 0x51, 0xAE, 0x62, 0xF8, 0x0A, 0x07, 0x18, 0xEE, 0x31, 0xA7, 0x4F, + 0x3A, 0x4C, 0x4B, 0x42, 0xF5, 0x14, 0x4C, 0xDA, 0xD7, 0x5D, 0xE6, 0x12, 0x26, 0x4E, 0xE8, 0x08, + 0x1B, 0x8E, 0xA3, 0xB4, 0x4A, 0x17, 0x0C, 0x11, 0x57, 0xE8, 0xD2, 0x14, 0x8D, 0x28, 0x8A, 0x94, + 0xD6, 0x97, 0xE0, 0xBB, 0x42, 0xA3, 0xBD, 0x9D, 0xDF, 0x15, 0xC0, 0xB8, 0x67, 0x9E, 0xF3, 0x10, + 0x12, 0x67, 0x14, 0x26, 0x09, 0x8A, 0x1C, 0x9C, 0x3A, 0x61, 0xAA, 0x00, 0x8A, 0x64, 0xD9, 0xEC, + 0x6B, 0x8A, 0xA9, 0x23, 0x02, 0x58, 0x89, 0xBC, 0xED, 0x74, 0x82, 0x9C, 0xA3, 0xB3, 0x8F, 0x5A, + 0x5F, 0x55, 0xF7, 0x76, 0x01, 0xF2, 0xF1, 0x43, 0x8A, 0xB2, 0x23, 0xF9, 0xBB, 0xA4, 0xF5, 0x06, + 0xE5, 0xBA, 0x2D, 0x19, 0xB3, 0xD4, 0x80, 0xA2, 0x38, 0x0B, 0xDC, 0x84, 0x66, 0x6E, 0xEB, 0x31, + 0x44, 0x85, 0x51, 0x6E, 0x56, 0xB2, 0x8B, 0x27, 0x4F, 0xD5, 0x3A, 0xE5, 0xA0, 0xD6, 0x34, 0xBC, + 0xE5, 0xE7, 0x67, 0x17, 0xBA, 0x3D, 0x1E, 0x7B, 0xBF, 0x16, 0x64, 0x5D, 0x59, 0xC2, 0xB4, 0xFA, + 0x7A, 0x26, 0x87, 0xA1, 0x46, 0xFC, 0x21, 0x0B, 0xEF, 0xF8, 0x78, 0x94, 0x27, 0x8D, 0x4A, 0x0E, + 0x2D, 0xC7, 0xA9, 0x1B, 0x58, 0x33, 0x85, 0x55, 0x2A, 0xDB, 0x5F, 0x6D, 0xA9, 0x4A, 0x2E, 0x80, + 0xB1, 0x25, 0x0C, 0x7C, 0x05, 0x46, 0x15, 0xB4, 0x38, 0x81, 0xB3, 0x4D, 0x61, 0x3D, 0x54, 0x8A, + 0xFA, 0x76, 0x6C, 0x8C, 0x7C, 0xCB, 0x8D, 0xC3, 0x68, 0x46, 0xB2, 0x80, 0x0E, 0x2C, 0x5B, 0x50, + 0x2B, 0x86, 0xA5, 0x9A, 0x8D, 0xB8, 0x21, 0x54, 0x64, 0x56, 0x13, 0x69, 0xE7, 0x8B, 0xEC, 0x87, + 0xAD, 0xE3, 0xAF, 0x54, 0xB6, 0x77, 0x20, 0xB3, 0xE8, 0xDB, 0x51, 0xAA, 0x8F, 0xBA, 0x02, 0xD3, + 0x3A, 0x7F, 0xE5, 0x3D, 0xB8, 0xBC, 0x4B, 0xD7, 0x31, 0x56, 0x5F, 0xDC, 0x4A, 0xCD, 0x36, 0x74, + 0xBB, 0x8D, 0x8D, 0x6C, 0xF9, 0xE6, 0xC2, 0x5B, 0x94, 0xB8, 0x30, 0x32, 0x1F, 0xDE, 0x08, 0x1D, + 0xE6, 0x70, 0x92, 0xE1, 0x29, 0x3A, 0xBB, 0x90, 0x52, 0xA6, 0x0D, 0xC8, 0x74, 0x9E, 0xD0, 0x98, + 0x1D, 0x25, 0x5C, 0xE8, 0x8E, 0xC3, 0x84, 0xA0, 0x55, 0x3D, 0xCF, 0x29, 0x96, 0x99, 0xEC, 0x5D, + 0xE8, 0xE2, 0xF1, 0x78, 0x9D, 0xFA, 0xE1, 0x2C, 0xA6, 0x61, 0xC2, 0xC3, 0xD1, 0xAF, 0xD1, 0x84, + 0xCC, 0x50, 0x92, 0xF0, 0x30, 0x34, 0x8D, 0x38, 0xD5, 0x52, 0x67, 0x32, 0xCD, 0xFF, 0xBD, 0x70, + 0x2A, 0x78, 0xFE, 0x9D, 0xDF, 0x13, 0x77, 0x5E, 0x28, 0x37, 0xAF, 0xE8, 0x60, 0xE9, 0x3C, 0x49, + 0x36, 0x0C, 0xE3, 0x92, 0x96, 0x94, 0xD2, 0x8C, 0xCB, 0x4E, 0xF3, 0xA0, 0xD3, 0x29, 0x79, 0x90, + 0x96, 0xB2, 0x86, 0xAD, 0xBC, 0x3D, 0xBC, 0xF0, 0x4F, 0x9A, 0xB0, 0xB0, 0x8C, 0xEE, 0xFB, 0xB6, + 0x54, 0x99, 0x6F, 0xA5, 0x96, 0xFE, 0xAD, 0x62, 0xD8, 0xFA, 0xDE, 0x9D, 0xFB, 0x36, 0x99, 0x67, + 0x25, 0x65, 0xC1, 0x66, 0x1B, 0x2A, 0x1C, 0x78, 0xAB, 0xCB, 0xBA, 0xB6, 0xFE, 0xB4, 0x05, 0x4A, + 0x91, 0x65, 0x12, 0x66, 0x17, 0xF1, 0xDF, 0xD1, 0xF3, 0x67, 0x7C, 0xEA, 0x1F, 0x96, 0xDB, 0x56, + 0x36, 0x4B, 0x3B, 0x46, 0xCF, 0x99, 0x4A, 0x2B, 0xF8, 0x0A, 0xC2, 0x3A, 0xB3, 0x92, 0x61, 0x34, + 0x7E, 0xC6, 0x20, 0x3E, 0xFA, 0x97, 0xE6, 0x45, 0xC7, 0xFA, 0xC8, 0x99, 0xCD, 0x2C, 0x28, 0x98, + 0xE4, 0xE5, 0x89, 0x05, 0xFE, 0x07, 0x66, 0xA3, 0x7F, 0x3E, 0x82, 0xA7, 0xFE, 0xA1, 0x15, 0xC4, + 0x33, 0xE9, 0x58, 0x07, 0xD0, 0x8A, 0xA0, 0xF5, 0x95, 0xFF, 0x37, 0xFB, 0x30, 0xCC, 0xA4, 0xD3, + 0x7F, 0xA9, 0x67, 0xB6, 0x14, 0x6D, 0xC7, 0xB2, 0x67, 0x0C, 0xCC, 0x02, 0xB5, 0x62, 0xDC, 0xB3, + 0x5E, 0x71, 0x3E, 0x23, 0x0A, 0x81, 0x68, 0xA0, 0xBD, 0x81, 0xB8, 0xC1, 0xD2, 0x58, 0xD3, 0x96, + 0xEB, 0xD1, 0x32, 0xF0, 0xCC, 0x7E, 0x4F, 0x0A, 0x6B, 0x9A, 0x34, 0xEB, 0xBB, 0x7D, 0xC3, 0xAE, + 0x54, 0xAE, 0xEE, 0x80, 0xC6, 0x67, 0xAE, 0x41, 0xD9, 0xDA, 0x09, 0x75, 0xFD, 0x19, 0xCC, 0x47, + 0xFC, 0xC3, 0x6A, 0x6B, 0xDB, 0xB9, 0xBA, 0x8A, 0xDB, 0xDA, 0xC2, 0xA8, 0xA1, 0x21, 0xB2, 0x68, + 0x18, 0x31, 0x18, 0xD2, 0xEC, 0x69, 0xA1, 0x26, 0x44, 0xDF, 0x65, 0xF2, 0x29, 0x29, 0xE9, 0xAE, + 0xC6, 0x13, 0x1C, 0xDB, 0x94, 0x4C, 0x42, 0x22, 0x27, 0x3C, 0xF3, 0x74, 0xF6, 0x9D, 0x72, 0x15, + 0x82, 0xA8, 0xAE, 0x22, 0xF1, 0xE4, 0x74, 0x29, 0xDA, 0xA9, 0x11, 0x96, 0x83, 0xD9, 0xAE, 0x4D, + 0xD7, 0x43, 0xFF, 0xA3, 0x19, 0xD9, 0x61, 0x7D, 0x8E, 0x37, 0x9B, 0x59, 0x50, 0x90, 0x90, 0x94, + 0xF6, 0xF9, 0x0C, 0x8C, 0x32, 0x5F, 0x71, 0x7F, 0xB1, 0xA3, 0x99, 0x39, 0xEA, 0x10, 0xDC, 0xE8, + 0xC1, 0x3E, 0x68, 0xD0, 0x80, 0x1B, 0x75, 0xEA, 0x67, 0x39, 0xC1, 0x3C, 0xA5, 0x23, 0xD1, 0xF2, + 0x7D, 0x68, 0x1E, 0x38, 0x15, 0x54, 0x9F, 0xE8, 0x0A, 0xE2, 0xA2, 0xA0, 0xC1, 0xD5, 0x44, 0xD5, + 0x6F, 0x38, 0xD0, 0x16, 0x9E, 0x20, 0xA5, 0xF0, 0xCC, 0x55, 0x26, 0xE1, 0x57, 0xE3, 0x45, 0x55, + 0x7D, 0x0B, 0x54, 0xBA, 0xAA, 0xB0, 0x04, 0x0B, 0xAE, 0xC8, 0x05, 0xD3, 0x9D, 0xA7, 0xDE, 0x81, + 0x99, 0x51, 0xA7, 0x78, 0x4E, 0xDF, 0x96, 0x9B, 0xB7, 0x9E, 0xF5, 0xD5, 0x06, 0xB7, 0xA2, 0x15, + 0x54, 0x41, 0x58, 0x5C, 0x8D, 0xEA, 0x30, 0x56, 0x38, 0x1E, 0x3D, 0x23, 0x87, 0xEC, 0xEA, 0x09, + 0xAC, 0x59, 0x1B, 0xBF, 0x79, 0xAB, 0x99, 0xF8, 0x17, 0x56, 0xC3, 0x65, 0x29, 0xAE, 0x8A, 0xC5, + 0xDE, 0x99, 0xD4, 0x9C, 0xEC, 0xD6, 0x59, 0x8E, 0xF6, 0xBE, 0xEA, 0xF6, 0x78, 0x2B, 0x05, 0xAB, + 0xB5, 0x8C, 0x95, 0x60, 0x2C, 0x3C, 0xFB, 0x6A, 0xF4, 0xC3, 0x29, 0x9E, 0xF3, 0x30, 0x5C, 0x64, + 0x3E, 0xE3, 0xC6, 0x3B, 0xD1, 0x46, 0x18, 0xF6, 0x9B, 0xE6, 0xCC, 0xD2, 0x63, 0xC5, 0x01, 0xB5, + 0xEC, 0x22, 0x57, 0xF5, 0x4E, 0x6D, 0xF7, 0x96, 0x6B, 0x1E, 0xCF, 0x39, 0x8A, 0xB2, 0xF0, 0xA1, + 0x71, 0x93, 0x94, 0xF7, 0xE4, 0xE5, 0xCE, 0xA2, 0x72, 0x76, 0x69, 0xC8, 0xB7, 0xD0, 0xF9, 0x54, + 0xE2, 0xC4, 0xF3, 0x0D, 0x3D, 0x03, 0x11, 0x6E, 0x90, 0x96, 0xC2, 0x53, 0x5D, 0xA9, 0x14, 0x37, + 0x2D, 0x95, 0x4B, 0xD5, 0xCA, 0xB9, 0x45, 0x67, 0xD7, 0xAC, 0x9E, 0xB7, 0x64, 0x06, 0x96, 0x26, + 0x34, 0x54, 0xBA, 0x6B, 0xE1, 0x6E, 0x63, 0x74, 0xD7, 0xB8, 0x1E, 0x1A, 0xD8, 0x47, 0xDF, 0xEE, + 0x36, 0x04, 0x27, 0x5F, 0x79, 0x9A, 0xA8, 0x89, 0x6B, 0x57, 0x30, 0x53, 0xE9, 0x5C, 0xD1, 0xDC, + 0x2B, 0xB0, 0xF8, 0x9D, 0x9A, 0xE1, 0xDE, 0x9B, 0xD6, 0x54, 0x69, 0x6B, 0x5A, 0x5F, 0x3D, 0x5B, + 0x67, 0x99, 0x9F, 0xFB, 0xE2, 0xD5, 0x6B, 0xE1, 0x2B, 0xAA, 0xF6, 0xE6, 0x16, 0x95, 0xF2, 0x0F, + 0xB9, 0x2E, 0x6A, 0x20, 0x56, 0x35, 0x16, 0xA7, 0xC1, 0x9D, 0xEC, 0xE0, 0x69, 0xEE, 0xDB, 0x7E, + 0x28, 0x7F, 0xF3, 0xC5, 0x4A, 0x0E, 0xB8, 0xB3, 0xC9, 0x7E, 0x13, 0xEF, 0x46, 0x31, 0x47, 0xD0, + 0x6B, 0x37, 0xFE, 0x89, 0xCC, 0xF5, 0x5D, 0x8E, 0x6B, 0x97, 0xF3, 0x1B, 0x71, 0xD5, 0x95, 0x52, + 0x1D, 0xA6, 0xA8, 0xAD, 0x40, 0xAA, 0x3B, 0x1D, 0x52, 0x71, 0x54, 0xF9, 0x07, 0x38, 0x98, 0x58, + 0xB7, 0xA3, 0x72, 0x24, 0x06, 0x9C, 0x5E, 0xCC, 0xD0, 0x28, 0x1E, 0xC7, 0xA3, 0x92, 0xA3, 0x8C, + 0x5B, 0xC5, 0xAE, 0x7E, 0xF2, 0x5E, 0xE1, 0x68, 0x53, 0x28, 0xED, 0x72, 0xBC, 0xF8, 0x9E, 0x75, + 0x89, 0x1E, 0xCE, 0xE7, 0x09, 0xCA, 0xF8, 0x55, 0xBA, 0x1E, 0x71, 0xE9, 0x93, 0xE2, 0xAC, 0x6F, + 0xDE, 0x93, 0x8E, 0xFC, 0x33, 0x1B, 0xBC, 0x36, 0x55, 0xAA, 0xC2, 0xBF, 0x65, 0xCC, 0x57, 0x91, + 0xAA, 0x3E, 0x30, 0x79, 0x8B, 0xB6, 0xD1, 0x32, 0xBA, 0x4E, 0x47, 0x07, 0x5E, 0xAA, 0x60, 0x24, + 0x8B, 0x4B, 0x28, 0xFD, 0xE7, 0xA5, 0x54, 0x11, 0x13, 0xBD, 0x62, 0x28, 0xF0, 0xA7, 0x28, 0x24, + 0xF3, 0x0C, 0x15, 0x97, 0xF4, 0x42, 0xBC, 0xF5, 0x0A, 0xA5, 0xAB, 0xDB, 0x2F, 0xF6, 0xFE, 0xE2, + 0x92, 0x5F, 0x14, 0xDD, 0xC6, 0x69, 0xC4, 0x57, 0x6D, 0x91, 0x22, 0xB7, 0x38, 0x0E, 0x94, 0x3D, + 0x2D, 0xD7, 0x19, 0xE9, 0xDC, 0x3F, 0xC2, 0xD3, 0xF2, 0xF8, 0x56, 0xA9, 0x28, 0xF6, 0xF1, 0x1B, + 0x8A, 0x4B, 0x6E, 0xE0, 0x58, 0x8A, 0x3A, 0xA7, 0x9C, 0x56, 0x64, 0x0F, 0x43, 0x23, 0x8F, 0x60, + 0x29, 0x7E, 0x55, 0x49, 0x60, 0xFB, 0x77, 0x48, 0x04, 0xC9, 0x13, 0x9E, 0xDF, 0x32, 0x18, 0x14, + 0x57, 0x39, 0x4A, 0x24, 0xE7, 0x17, 0x3A, 0xB1, 0x74, 0x7B, 0xD9, 0xE8, 0xF3, 0x80, 0x1C, 0x04, + 0x66, 0x85, 0x5B, 0x28, 0x63, 0x91, 0x2C, 0x8E, 0xD0, 0xE5, 0xD3, 0x0C, 0x2D, 0x97, 0xA6, 0x2F, + 0xA6, 0x91, 0x2B, 0x63, 0x90, 0x05, 0xDB, 0x5B, 0xC6, 0xDB, 0x67, 0x79, 0xD7, 0x4B, 0xF6, 0x3D, + 0x12, 0x6C, 0xC3, 0xC2, 0x24, 0x58, 0xDC, 0x01, 0x13, 0xFD, 0xE3, 0xED, 0xF6, 0xBE, 0xFA, 0x73, + 0xB0, 0x0D, 0xC0, 0x80, 0x04, 0xFD, 0x4E, 0x01, 0xA0, 0x37, 0xD8, 0x31, 0x7E, 0xF5, 0x07, 0x5B, + 0xC6, 0xAF, 0xAD, 0xC1, 0xB6, 0xE1, 0x41, 0xA9, 0xD3, 0x5C, 0x0C, 0xB2, 0xA0, 0x07, 0x1B, 0xE0, + 0xD7, 0xEA, 0xF3, 0xAD, 0x61, 0x90, 0x05, 0xFD, 0x75, 0x5A, 0x3C, 0x4C, 0x10, 0x4A, 0xDC, 0x81, + 0x4C, 0x64, 0x8F, 0x0A, 0x55, 0x40, 0x04, 0x4C, 0x41, 0x52, 0x8D, 0x43, 0x91, 0x47, 0x41, 0x41, + 0xD2, 0x2C, 0xA0, 0x7E, 0x84, 0x12, 0x1A, 0xFE, 0xFE, 0xB6, 0xB7, 0xDF, 0x1B, 0xB0, 0x9E, 0x76, + 0x2A, 0x1E, 0xB0, 0xAA, 0xAE, 0x0C, 0x0F, 0xBD, 0xE1, 0x15, 0x11, 0x25, 0x2B, 0xF1, 0xEA, 0xDF, + 0xED, 0x00, 0x1E, 0x0F, 0xAD, 0xBA, 0x2B, 0x49, 0x07, 0x2F, 0x23, 0x26, 0xD8, 0x62, 0x84, 0x93, + 0x41, 0xCC, 0xF4, 0x2E, 0x98, 0xE1, 0x87, 0x41, 0xCC, 0xD6, 0x08, 0x7C, 0x1C, 0xC4, 0xFE, 0x23, + 0x7C, 0x1A, 0xC4, 0xFE, 0x13, 0x94, 0x23, 0x24, 0x3C, 0xBE, 0x09, 0x4E, 0x07, 0x19, 0x1C, 0xD1, + 0x2C, 0x19, 0x50, 0x9F, 0xFD, 0xF3, 0x0B, 0x7A, 0x82, 0x61, 0x42, 0x07, 0xD4, 0x0F, 0x13, 0xCA, + 0x7E, 0xF0, 0x1C, 0xC9, 0x03, 0x2A, 0x72, 0x25, 0xFF, 0x82, 0x9E, 0x72, 0x90, 0x2B, 0x4F, 0xDC, + 0x85, 0xA4, 0x3C, 0x7F, 0x17, 0x07, 0x39, 0x91, 0xC4, 0x9F, 0x82, 0xC2, 0x59, 0x78, 0x67, 0xFC, + 0x64, 0xFC, 0xC2, 0x7F, 0xE6, 0x30, 0x2B, 0x5A, 0xA2, 0xE0, 0x9D, 0xC7, 0x53, 0x55, 0x2A, 0x37, + 0x01, 0xA2, 0x5F, 0xF5, 0x6B, 0x3B, 0xB3, 0x35, 0x5F, 0xB9, 0xCE, 0x6D, 0x42, 0x7C, 0xF9, 0x27, + 0x50, 0x7F, 0xB2, 0x8E, 0x95, 0x50, 0x5C, 0x03, 0x88, 0x48, 0xFA, 0x62, 0xB4, 0xD5, 0x1A, 0x00, + 0x8F, 0x28, 0xC1, 0x2F, 0x5A, 0xC5, 0xD8, 0x34, 0xB2, 0xA5, 0xCF, 0xE2, 0x16, 0xB6, 0x18, 0xB2, + 0xC8, 0x02, 0x21, 0x47, 0xD3, 0xE9, 0xB0, 0x06, 0xB9, 0x41, 0x82, 0xD2, 0xE7, 0xE5, 0x92, 0x7F, + 0xCE, 0x87, 0x16, 0xD1, 0x5B, 0x9B, 0x6A, 0x9C, 0xAA, 0x50, 0x38, 0x66, 0xC0, 0x4D, 0xB4, 0xEF, + 0xB9, 0xFC, 0xFE, 0xD4, 0x55, 0xC1, 0x04, 0x5A, 0x82, 0x24, 0xE1, 0xBB, 0x53, 0x74, 0x8F, 0x12, + 0xFD, 0xB4, 0xB6, 0x76, 0x05, 0xFB, 0x3E, 0xE6, 0x79, 0x3C, 0x1D, 0x8A, 0x1D, 0x8E, 0xB2, 0x23, + 0xB4, 0x92, 0x81, 0xDB, 0xA0, 0x14, 0xA1, 0x47, 0x9E, 0x6F, 0x51, 0xE8, 0x44, 0x9E, 0xD6, 0x15, + 0x9E, 0xA3, 0xEF, 0x34, 0xA9, 0xCF, 0x5A, 0x85, 0x02, 0x03, 0xAF, 0x09, 0xDD, 0x5F, 0xD3, 0x5B, + 0x89, 0xF0, 0x38, 0xC3, 0xD3, 0x12, 0xCA, 0xFE, 0x6A, 0xEF, 0xC6, 0x67, 0xA1, 0xA3, 0xB4, 0x2F, + 0x00, 0x5F, 0x77, 0xD0, 0xBE, 0x64, 0x17, 0x06, 0x87, 0x31, 0xAC, 0x25, 0xB1, 0xBB, 0xC1, 0x5B, + 0x59, 0x51, 0x59, 0x33, 0x29, 0xFB, 0x11, 0x98, 0x1F, 0x06, 0xDE, 0xDA, 0x4C, 0x5A, 0x07, 0xC4, + 0xD6, 0x15, 0x80, 0xFD, 0x3D, 0x8E, 0x19, 0x67, 0xD6, 0x06, 0xAC, 0x84, 0x24, 0x83, 0x99, 0xA8, + 0x04, 0x17, 0xB3, 0x90, 0x90, 0xF8, 0x1E, 0x0D, 0x36, 0xFA, 0x39, 0x83, 0xC8, 0x4B, 0x03, 0xF9, + 0xB5, 0x19, 0x25, 0x09, 0x45, 0xD6, 0x2F, 0x1A, 0x0A, 0x34, 0xB6, 0x0A, 0xFA, 0xCC, 0x67, 0xCB, + 0xA5, 0xA7, 0xFF, 0x56, 0xE3, 0x9D, 0xCF, 0xF4, 0x94, 0x7E, 0xF3, 0x22, 0x9F, 0xCF, 0x64, 0x6F, + 0x3B, 0x45, 0x6F, 0x6C, 0xF9, 0x15, 0xFD, 0xB1, 0x5F, 0xAA, 0x47, 0xBE, 0xAC, 0x9F, 0xD1, 0x67, + 0x5D, 0x26, 0x98, 0x3F, 0x44, 0xCF, 0x79, 0xCB, 0x51, 0x41, 0xA5, 0x1C, 0xE0, 0xAB, 0x35, 0x58, + 0xA7, 0xD2, 0x33, 0xCF, 0x3A, 0x75, 0x7F, 0xB8, 0x78, 0xEC, 0xD5, 0xD3, 0xAE, 0x0A, 0xA8, 0xA5, + 0x93, 0xF0, 0x5A, 0xE7, 0x1A, 0x9D, 0x51, 0xA2, 0xB6, 0x0C, 0xC8, 0x04, 0xCF, 0x93, 0xE8, 0x03, + 0xCE, 0x46, 0xC6, 0x99, 0x1C, 0x01, 0x9D, 0xF6, 0xC2, 0x43, 0xC6, 0x14, 0xD5, 0xA4, 0x70, 0xC3, + 0x32, 0x79, 0x86, 0x1C, 0x6F, 0x5D, 0x68, 0xA5, 0x09, 0x2B, 0xCB, 0xF0, 0x6F, 0x38, 0x83, 0x43, + 0xC5, 0xE7, 0x8A, 0xBE, 0x1B, 0x8A, 0xE1, 0x0B, 0x5F, 0x67, 0xE9, 0x89, 0x3B, 0x09, 0xA5, 0x0A, + 0x70, 0x1B, 0x8E, 0xBE, 0x82, 0x72, 0x9A, 0xB6, 0x66, 0x65, 0x41, 0x38, 0x1F, 0x73, 0xC5, 0xA9, + 0xEA, 0x7F, 0xAC, 0xDD, 0xB4, 0x8B, 0xBD, 0xA0, 0xC9, 0xFD, 0x3B, 0x9C, 0xCD, 0x92, 0x58, 0x44, + 0xAC, 0x12, 0x96, 0xCF, 0x5F, 0xD0, 0x13, 0xD9, 0x77, 0xCF, 0xDC, 0x81, 0x7B, 0xE5, 0x82, 0x4D, + 0x0F, 0x15, 0x4A, 0x88, 0x7B, 0xE0, 0x0E, 0xDC, 0xF7, 0xAE, 0x88, 0x7C, 0x47, 0x02, 0xD7, 0xAD, + 0x24, 0xC7, 0xE2, 0x5E, 0xCF, 0xE1, 0x2D, 0xF1, 0x28, 0xE0, 0x39, 0x35, 0xC8, 0x66, 0x10, 0x0F, + 0x4D, 0x25, 0xB9, 0xD5, 0xB5, 0x9C, 0x14, 0x71, 0x80, 0xCD, 0xBD, 0x31, 0x37, 0x01, 0x68, 0x62, + 0x88, 0xC3, 0xDF, 0x6F, 0x8C, 0x9C, 0x1E, 0x02, 0xFB, 0xE5, 0xC9, 0x92, 0xB1, 0x9D, 0xF3, 0x1C, + 0x94, 0x25, 0xD4, 0xF3, 0x67, 0x90, 0xE2, 0xF9, 0x68, 0xA2, 0x9C, 0xD7, 0xD4, 0x34, 0xAE, 0xBF, + 0x0E, 0x40, 0x0B, 0xEE, 0x97, 0x0C, 0x34, 0x0F, 0x98, 0x53, 0x53, 0x09, 0x40, 0x09, 0xF1, 0xDE, + 0x37, 0x23, 0x2E, 0xB8, 0xFA, 0x1F, 0x81, 0xB7, 0x4C, 0xF2, 0xA6, 0x63, 0xAE, 0x37, 0x63, 0xCF, + 0xC8, 0x6E, 0x46, 0x94, 0x52, 0xB1, 0x1E, 0xAB, 0xA1, 0x04, 0xCB, 0x36, 0x83, 0x6A, 0xF0, 0x79, + 0x23, 0xD5, 0xBE, 0xC8, 0xCC, 0x6B, 0x7B, 0xD6, 0x21, 0x5D, 0xCD, 0x6A, 0xCF, 0x59, 0x6A, 0x86, + 0xD9, 0x86, 0x00, 0xFD, 0x5C, 0x34, 0x1D, 0x1A, 0xF6, 0x46, 0x26, 0x98, 0xF6, 0xDB, 0x14, 0x12, + 0x61, 0x9C, 0xEC, 0x8A, 0x0E, 0x5C, 0x69, 0x79, 0x69, 0x56, 0x18, 0x2A, 0xD5, 0xF3, 0xD2, 0xEB, + 0x92, 0xFA, 0x5B, 0x98, 0xE2, 0xC5, 0x43, 0x4C, 0x63, 0xEE, 0x04, 0x12, 0x29, 0xED, 0x76, 0x45, + 0x35, 0x1D, 0x9E, 0x7B, 0x9D, 0x17, 0x22, 0x20, 0x2F, 0x5F, 0xF9, 0x50, 0x18, 0x07, 0x3D, 0xF5, + 0xC2, 0xAA, 0xF6, 0xA9, 0xF5, 0x1C, 0x9D, 0x73, 0xBF, 0x6D, 0x36, 0x15, 0xDC, 0x59, 0x97, 0xFF, + 0x5A, 0xC3, 0xE1, 0x5C, 0xA6, 0x91, 0x3C, 0xB4, 0x3D, 0xDF, 0x2A, 0xA2, 0x0B, 0xD9, 0x5F, 0x77, + 0xA1, 0xB5, 0xB2, 0x63, 0xAE, 0x7A, 0x3B, 0x8F, 0x80, 0x06, 0x53, 0xB9, 0x37, 0x2F, 0xA7, 0x2C, + 0x69, 0xB8, 0x37, 0x6F, 0xF6, 0x6B, 0x9C, 0xCE, 0x09, 0x8F, 0xE2, 0xC7, 0x23, 0xFB, 0x45, 0xCE, + 0x38, 0xCE, 0x08, 0x75, 0x41, 0x25, 0x7F, 0x89, 0x1D, 0x6A, 0xB1, 0xDC, 0x11, 0x28, 0x49, 0xD1, + 0x26, 0x1B, 0x46, 0x1E, 0xA1, 0xFF, 0xAB, 0x83, 0x68, 0x45, 0xBE, 0xC0, 0xC5, 0xD3, 0x59, 0x2F, + 0x1A, 0x98, 0xE6, 0x0E, 0x51, 0x67, 0x1A, 0x66, 0x5F, 0x51, 0x56, 0x7D, 0x7B, 0x2B, 0x79, 0x54, + 0x7E, 0xCC, 0xC3, 0x28, 0xFA, 0xC8, 0xFF, 0xAC, 0x4E, 0xAF, 0xAC, 0x57, 0x7C, 0x2F, 0x71, 0x78, + 0xFD, 0x3D, 0xCF, 0xA6, 0x31, 0xDF, 0x85, 0x31, 0xB9, 0x16, 0xA8, 0xAF, 0x16, 0x7B, 0xC0, 0xB7, + 0x36, 0xCA, 0xCB, 0x6F, 0x36, 0x24, 0x8C, 0x8D, 0x06, 0x15, 0x48, 0xA9, 0x24, 0x16, 0x63, 0x72, + 0x01, 0x25, 0x97, 0xF7, 0x0C, 0xA5, 0x10, 0x7C, 0x75, 0x65, 0x0A, 0x51, 0x43, 0x89, 0xD2, 0xC9, + 0xCD, 0xEB, 0xB8, 0x38, 0x76, 0x00, 0xFB, 0x8D, 0x70, 0x8D, 0xB4, 0xF3, 0x03, 0xD7, 0x2D, 0x01, + 0xD5, 0x61, 0xD0, 0x8D, 0x67, 0xC3, 0xDF, 0x34, 0x46, 0x15, 0x26, 0x5C, 0x47, 0x7F, 0x5D, 0x85, + 0x0D, 0xDF, 0x2C, 0x45, 0x44, 0xF1, 0xF5, 0xAA, 0xF6, 0xAF, 0x8B, 0x48, 0xB2, 0x2B, 0x1A, 0x1C, + 0xA7, 0xD1, 0x7A, 0x90, 0x59, 0xC5, 0xFE, 0x75, 0x9E, 0x8B, 0x68, 0x54, 0x26, 0xA9, 0xC5, 0x0B, + 0xC0, 0x6A, 0x20, 0xB0, 0xB6, 0xCD, 0x87, 0x07, 0x00, 0xAB, 0xC2, 0x91, 0x53, 0x7F, 0x90, 0x24, + 0xDF, 0x0E, 0xD3, 0x00, 0x21, 0xC1, 0x69, 0x09, 0xDE, 0xB4, 0xFF, 0xB6, 0xC1, 0xE4, 0x5B, 0x70, + 0x15, 0x4E, 0x6E, 0x3C, 0x47, 0x28, 0x38, 0x61, 0xAD, 0x70, 0x44, 0x45, 0xEE, 0x08, 0x8B, 0x44, + 0xEF, 0x74, 0x36, 0xFA, 0x46, 0xE2, 0x2F, 0xFB, 0x96, 0x50, 0x58, 0xC9, 0x4A, 0x92, 0x54, 0x06, + 0x47, 0xF2, 0x63, 0xF2, 0x31, 0x1C, 0x49, 0x26, 0x54, 0x86, 0xFF, 0x69, 0x28, 0x0D, 0xE6, 0x27, + 0xE4, 0x23, 0xA2, 0x61, 0xA7, 0x83, 0xA4, 0x89, 0x4A, 0xBC, 0xE0, 0xD3, 0x47, 0x96, 0xBA, 0xA3, + 0xBB, 0x7C, 0x89, 0x61, 0x1C, 0x53, 0xAA, 0x37, 0x28, 0x38, 0x49, 0xCE, 0xD2, 0x5F, 0x09, 0xCA, + 0x4E, 0xD2, 0xD9, 0x5C, 0x99, 0xCE, 0x4D, 0xF1, 0xA3, 0x42, 0x55, 0x9A, 0x01, 0xEF, 0xD5, 0x22, + 0x29, 0xC7, 0x5E, 0x10, 0xD0, 0x2E, 0xF1, 0x7B, 0x4C, 0x29, 0x9E, 0x7A, 0x00, 0x6E, 0xF4, 0x87, + 0x74, 0xB9, 0x74, 0x8F, 0x50, 0x18, 0xB9, 0x3C, 0xD5, 0xEA, 0x57, 0xF4, 0xD4, 0xE9, 0xB8, 0x07, + 0x09, 0xFD, 0x29, 0x0B, 0x67, 0x13, 0x5D, 0xA6, 0x0D, 0x5F, 0xB6, 0x58, 0x4E, 0xBD, 0xC2, 0xB7, + 0xDB, 0xEB, 0xC1, 0xB1, 0x8F, 0xEE, 0xC3, 0x64, 0x1E, 0x52, 0xF4, 0x0B, 0x7A, 0xBA, 0xC5, 0x45, + 0x40, 0x09, 0x54, 0xDB, 0x9B, 0xD7, 0x3B, 0x2E, 0xC0, 0x3A, 0xF5, 0x61, 0x1B, 0xF1, 0x81, 0x4E, + 0xBB, 0x62, 0x7D, 0x9E, 0xBB, 0xCD, 0x78, 0x8E, 0x5B, 0x8C, 0x97, 0xCB, 0x2D, 0xFD, 0x77, 0xE5, + 0x5C, 0x24, 0x76, 0x8F, 0xD2, 0xC6, 0x68, 0x2A, 0x2B, 0x45, 0xBB, 0xFD, 0x2E, 0x1D, 0xD0, 0x96, + 0x83, 0x45, 0x5F, 0xD7, 0x54, 0x77, 0x1E, 0xC5, 0xEA, 0x81, 0x4A, 0x8A, 0xC7, 0xE4, 0x72, 0x12, + 0x67, 0x11, 0x37, 0x7F, 0x5D, 0x4C, 0xE2, 0xB1, 0xCC, 0x2E, 0x26, 0x87, 0x2C, 0x32, 0xD0, 0xC6, + 0x12, 0xBC, 0x7A, 0x47, 0x6B, 0xF4, 0x05, 0x37, 0x62, 0x31, 0x47, 0x1B, 0x1B, 0x9E, 0x9C, 0xC1, + 0x0D, 0xA4, 0x0C, 0xA6, 0xFC, 0x6F, 0xC1, 0x8B, 0xFC, 0xCF, 0x29, 0xA2, 0x21, 0xFF, 0x5B, 0xBC, + 0x7F, 0xFA, 0x8A, 0x9E, 0x74, 0x6E, 0x43, 0xF1, 0x8B, 0x6D, 0xB9, 0x87, 0x38, 0x42, 0x07, 0xD4, + 0xEB, 0x81, 0x77, 0xC1, 0xDE, 0xAE, 0xF5, 0xC3, 0xDB, 0xE0, 0x4D, 0x0F, 0xB4, 0x70, 0xC5, 0x7E, + 0x0B, 0xBF, 0xF4, 0x19, 0xD2, 0x03, 0x8F, 0x23, 0xBD, 0x11, 0xC8, 0xE3, 0xE4, 0xE5, 0x9F, 0x3B, + 0x9D, 0x52, 0xC9, 0xE1, 0xB9, 0x02, 0x5F, 0x7B, 0xA0, 0x5C, 0xBC, 0xF9, 0xFD, 0x05, 0x3D, 0x09, + 0x17, 0x82, 0xC5, 0x57, 0xF4, 0x34, 0xE0, 0xED, 0x61, 0x84, 0xA7, 0x22, 0x09, 0x0F, 0xCA, 0x9B, + 0x1F, 0x5A, 0xB7, 0x1E, 0x16, 0x05, 0x1C, 0x4E, 0xD9, 0x15, 0x46, 0xCB, 0xEA, 0x15, 0x22, 0x93, + 0x8F, 0x82, 0xD8, 0x5C, 0xFA, 0x8A, 0x29, 0xD8, 0xAF, 0xCD, 0x18, 0x3F, 0x43, 0x36, 0x08, 0xB5, + 0x9E, 0x8C, 0xF0, 0x5A, 0xE3, 0x89, 0x4A, 0x66, 0x10, 0x29, 0x86, 0x36, 0xDA, 0xE5, 0x10, 0x2D, + 0xE6, 0x9E, 0x1A, 0x2C, 0x41, 0x15, 0x1F, 0x30, 0x34, 0x63, 0x22, 0x43, 0xEE, 0x98, 0xD5, 0xD7, + 0xAB, 0xCD, 0x2F, 0x74, 0x22, 0xAE, 0xFC, 0x5E, 0xD0, 0x90, 0x22, 0xAF, 0x10, 0x1D, 0x4A, 0xAD, + 0x2C, 0xDE, 0x82, 0xF1, 0x4B, 0x18, 0xBE, 0x68, 0xE2, 0x41, 0xDC, 0xE9, 0x78, 0x1B, 0x94, 0xD1, + 0xF9, 0x90, 0x93, 0x4D, 0xFF, 0xF9, 0x6E, 0xE7, 0x95, 0x90, 0xFE, 0x22, 0x8D, 0xA4, 0x45, 0xC0, + 0xF7, 0xBF, 0x5B, 0xC0, 0x2F, 0x97, 0x5E, 0x91, 0x19, 0x41, 0xAB, 0x31, 0xFD, 0x3D, 0xB5, 0x22, + 0x04, 0x4A, 0xFD, 0x57, 0x95, 0xDF, 0xAF, 0xCD, 0xDF, 0x39, 0x87, 0x53, 0x37, 0x61, 0x35, 0x87, + 0x04, 0xB0, 0x04, 0xC8, 0x13, 0x23, 0x55, 0xAF, 0xE2, 0x78, 0x04, 0x14, 0x3A, 0x34, 0xB7, 0x3B, + 0x7B, 0x40, 0xBD, 0x32, 0xCB, 0x14, 0xDB, 0x55, 0x91, 0x6E, 0xEA, 0x0F, 0xD8, 0xFB, 0x14, 0x30, + 0x7D, 0xF2, 0x86, 0x48, 0x8B, 0x00, 0x40, 0x83, 0xE2, 0x87, 0xC8, 0x7E, 0x11, 0x8F, 0xD5, 0xD1, + 0x18, 0xF9, 0x0F, 0x93, 0x78, 0x34, 0x31, 0xD5, 0x06, 0x51, 0xC2, 0x5B, 0x49, 0xF2, 0x89, 0xC8, + 0x1F, 0xFA, 0xD2, 0x4A, 0xB6, 0x10, 0x3F, 0x74, 0x2F, 0x1A, 0x17, 0xAA, 0xAA, 0xE8, 0xBB, 0xA8, + 0x0D, 0xBA, 0x5C, 0x7A, 0x96, 0xB5, 0xC6, 0xFE, 0x94, 0xCC, 0x5A, 0xA4, 0x9E, 0x5D, 0x47, 0xBE, + 0xD2, 0x40, 0xC4, 0x45, 0xF1, 0xC7, 0x19, 0x9E, 0x1E, 0x4A, 0x0C, 0x8A, 0xE4, 0xE5, 0x55, 0x51, + 0x43, 0xFF, 0x00, 0x31, 0x63, 0xE6, 0xA6, 0xAA, 0xCD, 0xB5, 0x52, 0x63, 0xEC, 0x02, 0xB4, 0x27, + 0x82, 0x40, 0x1B, 0x0F, 0xEE, 0x84, 0x8D, 0x35, 0x0A, 0xD9, 0xA2, 0x77, 0xE3, 0x94, 0xA0, 0x8C, + 0x32, 0x05, 0x9B, 0xC7, 0x6D, 0xF1, 0x79, 0xCD, 0x4B, 0xBE, 0x09, 0x79, 0x1B, 0x45, 0x12, 0x7A, + 0x1D, 0xBE, 0xC0, 0x58, 0x5F, 0xA0, 0x22, 0x52, 0xD6, 0x10, 0x7A, 0x65, 0x0D, 0xCD, 0x1C, 0x86, + 0x31, 0x83, 0xCD, 0x83, 0xD1, 0x5A, 0x96, 0x40, 0x7F, 0x7D, 0x9B, 0x1E, 0xAD, 0xDB, 0xF4, 0x00, + 0xDC, 0xE8, 0xE5, 0xC6, 0xC5, 0xA5, 0x70, 0x95, 0x66, 0x82, 0x53, 0x6B, 0x49, 0x23, 0x9C, 0x10, + 0x91, 0xF6, 0x41, 0xEF, 0xF4, 0xFB, 0xC2, 0x1C, 0x61, 0x54, 0x1F, 0x14, 0xC7, 0x4F, 0xE3, 0xBE, + 0xBF, 0x50, 0xE3, 0x2A, 0x7E, 0x00, 0x93, 0x90, 0xFC, 0x29, 0x4C, 0xE2, 0x88, 0x95, 0xE9, 0x24, + 0x8C, 0x4D, 0xBE, 0x02, 0x79, 0x39, 0xDE, 0x95, 0x99, 0x1C, 0xBE, 0x96, 0x32, 0xB0, 0xF2, 0x30, + 0xA1, 0xAA, 0x36, 0x17, 0xFE, 0x07, 0x95, 0x74, 0x5B, 0xDA, 0x61, 0xB5, 0x96, 0x59, 0xBC, 0xEC, + 0x1F, 0xC6, 0x33, 0x4E, 0xB0, 0x33, 0x82, 0x38, 0x70, 0xF5, 0xAA, 0xAA, 0x24, 0x53, 0x2F, 0x97, + 0xCB, 0x5A, 0xB1, 0x94, 0xCB, 0xF2, 0x27, 0x07, 0x70, 0x90, 0x24, 0x1F, 0xD5, 0x31, 0xBB, 0x64, + 0x03, 0x12, 0xF1, 0x2C, 0x08, 0xA2, 0xEA, 0x64, 0x5E, 0x8B, 0x73, 0xB1, 0xE2, 0x3C, 0x0D, 0x6C, + 0xF0, 0x84, 0xCE, 0x12, 0xF4, 0x61, 0x4D, 0xF3, 0x0D, 0xCA, 0xDD, 0x70, 0x80, 0xD5, 0xB2, 0xA0, + 0x67, 0x18, 0x97, 0xFB, 0x2A, 0x8B, 0x33, 0x63, 0x05, 0x6E, 0x5A, 0xAE, 0x77, 0x57, 0x24, 0x1C, + 0x94, 0xC5, 0x77, 0x88, 0xBE, 0x4F, 0xC2, 0xF4, 0x2B, 0xD3, 0x07, 0xBD, 0x3B, 0xFF, 0xE8, 0xF8, + 0xC3, 0xC1, 0xAF, 0xA7, 0x97, 0x37, 0x07, 0x97, 0x97, 0xE7, 0x37, 0x47, 0x07, 0x97, 0x07, 0x40, + 0x07, 0x3A, 0x68, 0x71, 0x09, 0xD1, 0xEE, 0x7C, 0x42, 0xAE, 0xA8, 0x93, 0xC1, 0xA0, 0x36, 0x26, + 0x48, 0xF0, 0x3C, 0x1B, 0xA1, 0x41, 0x2F, 0x07, 0x79, 0x2E, 0x23, 0xEF, 0x95, 0x03, 0x9E, 0xE9, + 0x57, 0xF4, 0xF8, 0x81, 0x14, 0x8C, 0x5D, 0xD6, 0x93, 0x19, 0xE7, 0x17, 0x6B, 0x40, 0xEB, 0xEC, + 0x2D, 0x1B, 0xC2, 0x50, 0x1D, 0xDF, 0x44, 0x20, 0x24, 0xBD, 0x4C, 0x58, 0xFF, 0xF0, 0xD9, 0x07, + 0x47, 0xD5, 0xB0, 0xD9, 0xFE, 0x61, 0x7E, 0xB7, 0x5B, 0xE4, 0xE2, 0x56, 0x4F, 0x9B, 0x8A, 0x71, + 0xD6, 0xB6, 0x0A, 0x78, 0x78, 0xA1, 0xAA, 0x97, 0xA4, 0x58, 0x03, 0x4C, 0x5E, 0xCE, 0x33, 0x74, + 0x40, 0x93, 0x90, 0x34, 0x1E, 0x8F, 0x1B, 0x4D, 0xC9, 0xC5, 0x79, 0xBB, 0x0C, 0x27, 0x2F, 0x47, + 0x5D, 0x94, 0x60, 0xAB, 0x31, 0xBD, 0xDB, 0x23, 0xCF, 0x15, 0xD6, 0xDE, 0x91, 0x78, 0xF9, 0x40, + 0x74, 0xF8, 0x1B, 0x75, 0x3D, 0xB1, 0x7E, 0xE8, 0xA2, 0xC1, 0xB3, 0x1A, 0x9C, 0xB9, 0x7A, 0x04, + 0xB5, 0xC0, 0x8C, 0x85, 0xDC, 0x2F, 0x53, 0x45, 0xFA, 0xE9, 0xA8, 0xF0, 0x68, 0xA1, 0x6F, 0x8B, + 0xFB, 0xC8, 0xB6, 0x23, 0xFF, 0xA7, 0xE3, 0xCB, 0x9B, 0xDF, 0x4E, 0x3E, 0xDD, 0x5C, 0x9C, 0xFC, + 0xCF, 0xE3, 0x9B, 0xCF, 0x27, 0x7F, 0x3E, 0x3E, 0xBD, 0x18, 0x94, 0x93, 0x5B, 0xB6, 0x07, 0x83, + 0x09, 0xD3, 0xFB, 0x90, 0x88, 0xA8, 0x2D, 0x3E, 0xC5, 0x1F, 0xE2, 0x47, 0x14, 0x79, 0x3C, 0xBB, + 0xC0, 0xFA, 0x8D, 0x45, 0x44, 0x17, 0xA3, 0xF5, 0x33, 0x03, 0xAC, 0x5D, 0xED, 0x0C, 0x7F, 0x5C, + 0xD0, 0x7C, 0xF8, 0xE3, 0x02, 0xE5, 0xB4, 0x1C, 0x3E, 0x6D, 0xC5, 0xC0, 0x0F, 0x8F, 0x4F, 0x4F, + 0x2D, 0x23, 0xB7, 0x5E, 0x5A, 0x34, 0x87, 0xC1, 0x31, 0xC7, 0xFD, 0xDC, 0xA8, 0x3F, 0xDF, 0x31, + 0xEA, 0xBD, 0xE1, 0x8F, 0x0B, 0xC2, 0x46, 0x1D, 0xB3, 0x51, 0xE7, 0xB9, 0x3E, 0xDE, 0xD0, 0x82, + 0x2D, 0xB4, 0xE0, 0xE1, 0xDF, 0xC4, 0x1D, 0xD0, 0x72, 0xA9, 0xF3, 0x48, 0x58, 0xAE, 0x84, 0x91, + 0x4F, 0x28, 0x9E, 0x7D, 0xCE, 0xF0, 0x2C, 0xBC, 0x13, 0x16, 0x50, 0x00, 0x37, 0xFA, 0x79, 0x6E, + 0x44, 0x15, 0x3F, 0xC9, 0xE1, 0x9B, 0x37, 0x5B, 0x3B, 0xDF, 0x93, 0x48, 0xE6, 0x32, 0x9E, 0xA2, + 0xF7, 0x21, 0x57, 0x42, 0x6A, 0xB9, 0x64, 0x2C, 0xDF, 0xAC, 0xE9, 0x64, 0x82, 0x3E, 0xDA, 0x06, + 0xA5, 0x87, 0x1E, 0x3A, 0x7B, 0x4C, 0x11, 0x5D, 0x56, 0x40, 0xB8, 0x9C, 0x30, 0x59, 0x85, 0x93, + 0xE8, 0xE3, 0x85, 0xCE, 0x2C, 0x93, 0x84, 0x3A, 0xEA, 0xEB, 0x47, 0xA2, 0x9F, 0xCB, 0x86, 0x51, + 0xC4, 0x77, 0x80, 0x30, 0x51, 0x11, 0x61, 0x85, 0xB7, 0x3B, 0x57, 0xFE, 0x6B, 0x99, 0x67, 0xA4, + 0x10, 0x64, 0x18, 0xE3, 0x39, 0x3D, 0x39, 0xEA, 0x74, 0x84, 0xF8, 0x11, 0xBF, 0x3D, 0x7B, 0x25, + 0xF0, 0xFF, 0xC3, 0x0C, 0x2C, 0x3A, 0xC4, 0xFC, 0x51, 0x48, 0x91, 0x9F, 0xE2, 0x07, 0x91, 0x4C, + 0x89, 0x74, 0x2D, 0xB4, 0x7E, 0x17, 0x34, 0x4E, 0x0E, 0xB0, 0x4D, 0x0D, 0xD1, 0xEE, 0x9B, 0x66, + 0xC6, 0x15, 0x7D, 0xE6, 0xD9, 0x58, 0x35, 0x71, 0x85, 0xDB, 0xA4, 0x15, 0x1D, 0x2D, 0xAA, 0x2C, + 0xF8, 0x74, 0x55, 0x40, 0xC4, 0x36, 0xB6, 0x28, 0xD2, 0x9E, 0x94, 0xE7, 0x59, 0xE5, 0x96, 0x22, + 0x88, 0x2A, 0x86, 0x30, 0xDF, 0x26, 0x95, 0x07, 0x59, 0xD0, 0xCD, 0x3A, 0xDA, 0x75, 0xB8, 0xB3, + 0x09, 0x0D, 0x79, 0x5B, 0x0E, 0x20, 0x05, 0xB9, 0x2D, 0x6F, 0xCD, 0x1F, 0x9B, 0x9B, 0xE6, 0x3F, + 0x5D, 0xEA, 0x99, 0x3C, 0xCF, 0x61, 0x7F, 0xEF, 0xF5, 0xBF, 0x33, 0x62, 0xFE, 0xAB, 0x64, 0xC4, + 0x54, 0x6F, 0x1E, 0xEB, 0xA9, 0x30, 0x79, 0x72, 0x07, 0xAC, 0x13, 0x58, 0x84, 0x3A, 0xF5, 0xC4, + 0xA4, 0x94, 0x1E, 0x73, 0x24, 0xF6, 0x1B, 0x9D, 0xC2, 0x21, 0x6D, 0xCC, 0xE3, 0xA3, 0xF2, 0xD6, + 0xC2, 0x14, 0x86, 0x70, 0x02, 0x47, 0xD5, 0xBC, 0x3E, 0x86, 0xC5, 0x5A, 0xEF, 0x49, 0xD5, 0xD8, + 0x2A, 0xB4, 0x54, 0x97, 0xC7, 0x38, 0x51, 0x79, 0xC3, 0xCB, 0x69, 0x38, 0x95, 0x1C, 0xAC, 0xA4, + 0xE1, 0xCC, 0xEC, 0x9E, 0xF1, 0x41, 0x6A, 0x7B, 0xAD, 0x11, 0x14, 0x8F, 0x7B, 0x6B, 0x61, 0x21, + 0x26, 0xDA, 0x49, 0x5D, 0xBC, 0xD6, 0xE4, 0x8F, 0x0C, 0x82, 0x4A, 0x22, 0xF0, 0x73, 0xFC, 0x20, + 0x43, 0xEB, 0x55, 0x3E, 0x88, 0xBC, 0x35, 0x87, 0x28, 0x49, 0x2A, 0xDF, 0x85, 0x9C, 0x1B, 0xE1, + 0x2C, 0x42, 0x91, 0x78, 0xDF, 0x23, 0x32, 0x6C, 0x5A, 0x2B, 0xA8, 0xB9, 0x5B, 0x09, 0xC3, 0x52, + 0x81, 0x7B, 0xAE, 0xFC, 0x5E, 0x2A, 0xBA, 0x90, 0xB7, 0x2D, 0xFA, 0x48, 0x7A, 0xC3, 0x3D, 0xB4, + 0x3E, 0x87, 0x19, 0x8D, 0xC3, 0x44, 0x7C, 0x0D, 0x2A, 0xF2, 0xBB, 0x9C, 0x05, 0x8C, 0x3B, 0xF3, + 0x29, 0x91, 0x7C, 0x97, 0xE2, 0x0C, 0x7D, 0x42, 0x8F, 0xD4, 0x78, 0x97, 0x57, 0x08, 0x5E, 0x32, + 0xC5, 0x98, 0x4E, 0xC4, 0x27, 0x6E, 0x8A, 0x95, 0x99, 0x2F, 0x99, 0x24, 0x1E, 0xF4, 0x20, 0xCE, + 0xE2, 0xBB, 0x38, 0x1D, 0xB0, 0xDD, 0x3A, 0xCC, 0xEE, 0x10, 0x1D, 0x74, 0xFB, 0xB9, 0x95, 0xE2, + 0x56, 0x36, 0xF1, 0xF1, 0x78, 0x4C, 0x64, 0x70, 0xC8, 0x6E, 0x95, 0x61, 0xCC, 0x8F, 0xCB, 0x65, + 0x7F, 0xB7, 0xEE, 0x4E, 0x84, 0xBF, 0xFD, 0x35, 0x99, 0xF8, 0xAC, 0x5F, 0xE3, 0xB0, 0xC3, 0xF2, + 0x6D, 0x9C, 0x0A, 0xDB, 0xB9, 0x91, 0x63, 0x8E, 0x3B, 0x16, 0x89, 0xB9, 0x69, 0x49, 0xF0, 0x6A, + 0x7D, 0x1B, 0x66, 0xAB, 0xC8, 0x1F, 0xC5, 0xF2, 0xBF, 0x0E, 0x54, 0x4A, 0x4D, 0x23, 0x5A, 0xB9, + 0xD9, 0x99, 0x72, 0x95, 0x14, 0x3F, 0x0B, 0x8C, 0x04, 0xDF, 0x17, 0x2F, 0x58, 0x57, 0x28, 0xE6, + 0x56, 0xCC, 0x56, 0xBF, 0x87, 0xAD, 0xBC, 0x7E, 0x34, 0xBA, 0x43, 0x46, 0xFC, 0x0E, 0xE1, 0x59, + 0x35, 0x41, 0x53, 0x19, 0x56, 0xDE, 0x1B, 0xC9, 0x70, 0xD2, 0x55, 0xCF, 0xAF, 0x91, 0xAF, 0x5E, + 0xFC, 0x18, 0xF1, 0x96, 0x9B, 0x80, 0x34, 0x3F, 0x96, 0x5C, 0xFF, 0xF9, 0x95, 0x74, 0x4A, 0x34, + 0x1F, 0x0D, 0xDA, 0x1E, 0xF4, 0x56, 0x75, 0x18, 0x7B, 0x45, 0x68, 0x84, 0x02, 0x2E, 0xE1, 0xB9, + 0xB0, 0xF3, 0xB4, 0x08, 0xC4, 0x59, 0x44, 0x0A, 0xE7, 0x63, 0x0E, 0xCC, 0x12, 0x76, 0x5C, 0xCA, + 0x6F, 0xB4, 0xBE, 0x2C, 0x6C, 0xAC, 0xA0, 0xF2, 0x30, 0xA7, 0xA4, 0x28, 0xF1, 0x7B, 0x1D, 0x19, + 0x94, 0xA6, 0x65, 0x5D, 0x6B, 0x1B, 0x61, 0x4D, 0x0E, 0xFA, 0x0F, 0x2B, 0x33, 0x46, 0x5A, 0x21, + 0x02, 0xA0, 0x2C, 0x15, 0xAD, 0xDD, 0xB6, 0x81, 0x08, 0x56, 0xE1, 0xF4, 0x47, 0x26, 0x2A, 0xAC, + 0x59, 0x50, 0xB9, 0x44, 0x7D, 0xD7, 0x2B, 0xFC, 0xB1, 0x2A, 0x02, 0x7F, 0xC5, 0xC1, 0x56, 0x24, + 0x06, 0x33, 0xCF, 0xB6, 0x2F, 0x1B, 0x87, 0x13, 0xCD, 0xB2, 0x15, 0xBB, 0xC7, 0xB3, 0x3B, 0x5B, + 0xBD, 0x99, 0xB4, 0xC9, 0x55, 0x51, 0xA5, 0xAC, 0xBB, 0x72, 0x06, 0xF4, 0xEC, 0xC4, 0x78, 0xD1, + 0xBE, 0xB7, 0x81, 0x4D, 0x6F, 0x15, 0x3A, 0xDD, 0xE7, 0xDA, 0x47, 0x94, 0x32, 0xDC, 0xB4, 0x17, + 0xB2, 0xC3, 0x62, 0x91, 0x4A, 0xAF, 0x69, 0xC3, 0x44, 0x35, 0x6D, 0xA3, 0x1C, 0x56, 0xB7, 0xBD, + 0x39, 0x8F, 0xA6, 0xAB, 0x5E, 0xF8, 0xA0, 0xB6, 0x44, 0xDE, 0xDC, 0x68, 0xFA, 0xC2, 0x4E, 0x3C, + 0x7B, 0x90, 0x39, 0xED, 0x1A, 0x31, 0x2B, 0x8D, 0xA4, 0x61, 0xD3, 0xED, 0xD9, 0xB5, 0xA9, 0x02, + 0x48, 0x60, 0x84, 0xBB, 0x69, 0xDA, 0xD7, 0xF3, 0x8A, 0x04, 0x43, 0xC1, 0x46, 0xDF, 0x58, 0x21, + 0x4D, 0xB3, 0xAB, 0x25, 0x4B, 0x4B, 0x0A, 0x73, 0xA1, 0x6C, 0x97, 0x25, 0x55, 0xA3, 0x26, 0xB4, + 0x26, 0x34, 0x68, 0xA6, 0xFD, 0xD4, 0x22, 0xD1, 0xC2, 0x16, 0x15, 0xC6, 0x0F, 0x9E, 0x6D, 0x8B, + 0xD3, 0x2F, 0x80, 0x4A, 0x3A, 0x54, 0x10, 0xD4, 0xB7, 0xDF, 0xD6, 0x89, 0x2E, 0x87, 0xB8, 0x3F, + 0x6A, 0x5B, 0xBE, 0xC6, 0xB5, 0xA8, 0x55, 0x20, 0x14, 0x31, 0x5D, 0xD4, 0xB8, 0xF3, 0x92, 0x4E, + 0x52, 0xB2, 0x85, 0x96, 0xD1, 0x5E, 0xC1, 0x28, 0xD2, 0xC3, 0xA0, 0x41, 0x30, 0x7C, 0xE6, 0xD1, + 0x2A, 0xD5, 0xD9, 0x56, 0xF7, 0x60, 0xE5, 0xCA, 0xCA, 0xBE, 0xD4, 0xA4, 0x2D, 0x1A, 0xB3, 0x68, + 0x7A, 0xB4, 0xF4, 0x0A, 0xB7, 0xD1, 0x9A, 0xF8, 0x29, 0x0D, 0xE8, 0xA5, 0x9D, 0xD8, 0xA0, 0xBB, + 0x6A, 0x39, 0x0E, 0xEB, 0x9D, 0x52, 0x90, 0x97, 0xF4, 0x56, 0x73, 0x83, 0x88, 0x89, 0x50, 0x18, + 0x51, 0xB4, 0x5C, 0x76, 0x8B, 0x7B, 0xEB, 0x9A, 0x9A, 0xEB, 0x0B, 0xCD, 0x76, 0x45, 0x25, 0xA1, + 0xF4, 0x5A, 0x03, 0xB3, 0x97, 0x6A, 0x7F, 0x46, 0xD9, 0xA8, 0x25, 0x14, 0xA5, 0xB1, 0xC0, 0xDB, + 0xD1, 0xD9, 0x34, 0x88, 0x88, 0x5E, 0x78, 0xED, 0x68, 0x75, 0xDB, 0x61, 0x01, 0x00, 0xD1, 0xDB, + 0xFE, 0xFE, 0x77, 0xEF, 0xCE, 0x65, 0x4A, 0xEB, 0xA7, 0xFC, 0xC2, 0x45, 0xB0, 0xDA, 0xB7, 0x57, + 0x99, 0x1A, 0x4D, 0x98, 0x4A, 0x06, 0x98, 0xE6, 0x4B, 0x62, 0xA3, 0xF1, 0xD1, 0x5C, 0x5C, 0xF4, + 0x68, 0xCF, 0xCD, 0xDA, 0x48, 0xF5, 0x51, 0xA5, 0xB0, 0xF2, 0x69, 0x23, 0x8D, 0x57, 0x58, 0xA7, + 0x1A, 0x29, 0xA5, 0xDB, 0x83, 0x97, 0xDF, 0x82, 0x18, 0xEC, 0x33, 0xED, 0x71, 0xD0, 0xCF, 0x1B, + 0xA9, 0xB1, 0x58, 0xD9, 0xB3, 0x3E, 0xC9, 0x35, 0xCD, 0x63, 0xD0, 0x6D, 0x3C, 0xAB, 0x49, 0x46, + 0x08, 0xBA, 0xFD, 0xFC, 0xE6, 0x76, 0x7E, 0x7B, 0x5B, 0xC8, 0x15, 0xD3, 0xE7, 0x67, 0x05, 0x4B, + 0x6E, 0xAE, 0x12, 0xC5, 0x43, 0xE5, 0x3C, 0x41, 0xDF, 0xF6, 0x3A, 0x9D, 0xC2, 0xBE, 0xDA, 0x08, + 0x71, 0xB9, 0xA4, 0xEF, 0x7A, 0x9D, 0x4E, 0xFC, 0xB6, 0x7D, 0x5F, 0x06, 0xDC, 0x15, 0x43, 0x68, + 0xAC, 0xEC, 0x7C, 0xD7, 0xE9, 0x58, 0x2C, 0xFB, 0x1B, 0x7D, 0x90, 0x97, 0xDF, 0xD5, 0x94, 0x3D, + 0xEE, 0x6E, 0xEE, 0x10, 0xE5, 0x79, 0x5D, 0x4B, 0x4F, 0x90, 0x24, 0xB3, 0x71, 0x5C, 0x8B, 0x00, + 0x01, 0xCF, 0x9A, 0xDB, 0xFD, 0xC6, 0xD5, 0x57, 0x4C, 0x5D, 0xCD, 0xFE, 0x69, 0x65, 0xFD, 0xB7, + 0xFD, 0x66, 0x58, 0x72, 0x8A, 0x57, 0x49, 0xFB, 0x35, 0x84, 0xD4, 0xFE, 0x0A, 0x1E, 0x59, 0xC9, + 0x05, 0x83, 0x76, 0x00, 0x9B, 0x85, 0xCD, 0xA7, 0xA9, 0x8B, 0xFA, 0x1A, 0x6C, 0x6F, 0xD0, 0xAA, + 0x0D, 0x49, 0x1E, 0x81, 0x3D, 0x1B, 0x6D, 0xBD, 0x95, 0x62, 0x48, 0x7D, 0x6F, 0x1E, 0xB0, 0x1E, + 0x4F, 0x6D, 0xE5, 0x80, 0xDC, 0xCA, 0x55, 0x85, 0xDB, 0x91, 0x78, 0x7C, 0xC6, 0x9D, 0x9A, 0xE5, + 0x0B, 0x72, 0xB5, 0x8B, 0xF6, 0xB8, 0x2D, 0x4E, 0xE7, 0xAC, 0x99, 0xCD, 0x92, 0x27, 0x01, 0x41, + 0xB9, 0xBB, 0xE9, 0xA7, 0x6B, 0xB0, 0x60, 0x53, 0x59, 0xF4, 0x11, 0x47, 0x28, 0x08, 0x02, 0xCE, + 0xE7, 0x7C, 0xDF, 0xF5, 0x8F, 0xCE, 0x3E, 0xDE, 0x1C, 0x1D, 0x9F, 0x5E, 0x1E, 0xDC, 0x9C, 0x9E, + 0x7C, 0x3A, 0xDE, 0xA7, 0x2F, 0x02, 0xFB, 0x2E, 0x3A, 0x58, 0x03, 0xC2, 0xE7, 0x83, 0x9F, 0x8E, + 0xD9, 0x52, 0x68, 0x82, 0xF1, 0xC2, 0xB6, 0x11, 0xF3, 0xF8, 0x5F, 0x90, 0xE7, 0xF3, 0xAA, 0x3E, + 0xF3, 0xFB, 0x67, 0x52, 0x83, 0xDF, 0x7B, 0xEE, 0x7B, 0xF4, 0x65, 0xC3, 0x58, 0x36, 0x9B, 0x0D, + 0x67, 0x7C, 0xDA, 0x05, 0xA7, 0x8E, 0x13, 0x8C, 0x33, 0xAF, 0x78, 0x1F, 0xD8, 0xD0, 0x02, 0x80, + 0x17, 0x8D, 0xDF, 0xDE, 0xF5, 0xF6, 0xFB, 0x83, 0xC2, 0x31, 0xA3, 0x5E, 0xE1, 0x3F, 0x82, 0x3E, + 0xF8, 0x96, 0xD9, 0xB1, 0x4F, 0x83, 0x9D, 0x84, 0x75, 0x59, 0xDF, 0x2C, 0xE9, 0xC6, 0x5A, 0x27, + 0x53, 0xED, 0x95, 0xBB, 0x65, 0x98, 0x70, 0xA7, 0xAF, 0xB8, 0x70, 0xE6, 0x5C, 0x2E, 0xDD, 0x11, + 0xCD, 0x12, 0x5D, 0xAA, 0x5D, 0xE5, 0x5C, 0x3E, 0xCF, 0xBA, 0x5C, 0xCD, 0xFA, 0x3E, 0x7A, 0xB1, + 0x7E, 0xF7, 0x17, 0x4C, 0xAB, 0xA6, 0xF1, 0x7D, 0x4C, 0x9F, 0x56, 0xB6, 0x22, 0xD5, 0x16, 0x83, + 0xD5, 0x3D, 0xD5, 0xDA, 0xE4, 0x96, 0x17, 0x8E, 0xC6, 0xA5, 0x96, 0xB4, 0xC3, 0x22, 0x9F, 0x3F, + 0x52, 0x44, 0xE4, 0xAA, 0x77, 0xED, 0xCF, 0xC2, 0x3B, 0xF4, 0x7B, 0x5E, 0x7F, 0x61, 0x58, 0xD9, + 0x81, 0x8A, 0xE6, 0xDD, 0x7A, 0xF3, 0x61, 0xED, 0x30, 0xD5, 0xD8, 0x13, 0x2C, 0x6F, 0x57, 0xDF, + 0x26, 0xB9, 0xF2, 0xE1, 0x28, 0x20, 0xDE, 0x55, 0xE6, 0x6D, 0xC3, 0x89, 0x7F, 0xF2, 0xDE, 0x64, + 0x23, 0x00, 0x33, 0x6F, 0x87, 0x95, 0x9E, 0x95, 0xA8, 0xC6, 0x8A, 0x77, 0x61, 0x58, 0x0B, 0x72, + 0xCB, 0xCA, 0xF7, 0x58, 0xF9, 0x79, 0x39, 0x50, 0x56, 0xE6, 0xBD, 0xE2, 0xB5, 0x2D, 0x41, 0x8C, + 0x33, 0xEF, 0x35, 0xFB, 0x54, 0x8A, 0x63, 0x7B, 0x0D, 0x47, 0xA5, 0xFB, 0x8D, 0x51, 0x0E, 0xB7, + 0xFB, 0xBD, 0x57, 0xFF, 0xBE, 0xD8, 0xFA, 0x17, 0xB9, 0xD8, 0x6A, 0x8A, 0x8E, 0x56, 0xBF, 0xE8, + 0x12, 0xF7, 0x5B, 0x58, 0xDF, 0x6F, 0x85, 0xEA, 0xF2, 0xAB, 0xFD, 0xA2, 0x2B, 0x5C, 0x71, 0xD1, + 0x65, 0xB9, 0xDE, 0x32, 0xE2, 0xDE, 0x23, 0xEB, 0xAD, 0x15, 0x6D, 0x72, 0x36, 0xD3, 0xB7, 0x5C, + 0xE5, 0x0B, 0x2A, 0x52, 0xAB, 0xAF, 0xF2, 0x4E, 0xF0, 0xE8, 0x64, 0x1F, 0xC3, 0x99, 0xBA, 0x71, + 0x48, 0xA8, 0x20, 0xC8, 0x89, 0x7C, 0xD5, 0x5C, 0xDC, 0xC4, 0x44, 0x15, 0x33, 0xBD, 0x71, 0x3B, + 0x3E, 0xD2, 0x81, 0xF4, 0xD7, 0x48, 0xE9, 0x50, 0xD4, 0xB6, 0x87, 0xA6, 0x2F, 0x70, 0xEC, 0xEA, + 0x9A, 0xAE, 0x95, 0x38, 0xD6, 0x28, 0xB9, 0xE5, 0xE0, 0xD9, 0xDF, 0x18, 0xCF, 0xB8, 0x38, 0x5D, + 0x46, 0x58, 0x5A, 0x79, 0x0B, 0x0E, 0xF9, 0xEE, 0x50, 0x9F, 0x8B, 0x46, 0x82, 0x2A, 0xBD, 0xE0, + 0x6F, 0x73, 0x34, 0x47, 0xE7, 0xED, 0xB1, 0x0C, 0xD3, 0x96, 0xDB, 0x27, 0x71, 0x76, 0x86, 0xAE, + 0x70, 0xFD, 0x2D, 0x05, 0x2F, 0x2C, 0x83, 0x6E, 0x1A, 0xC8, 0xBA, 0xB7, 0x47, 0xC6, 0x70, 0xEA, + 0xAC, 0xD3, 0x0C, 0x2A, 0x68, 0x33, 0xF6, 0x11, 0xB6, 0xBF, 0x37, 0xC6, 0x8A, 0xAC, 0xFB, 0x57, + 0xE2, 0xD4, 0x5C, 0xBD, 0xA2, 0x32, 0x8A, 0xBC, 0x67, 0x8F, 0x79, 0x15, 0xE4, 0x29, 0xBE, 0x67, + 0x60, 0x8D, 0xCB, 0x29, 0x56, 0x52, 0x7A, 0xD5, 0x6A, 0x9D, 0xA8, 0xD0, 0x9A, 0xD7, 0xB7, 0xBA, + 0x16, 0xE4, 0x7B, 0xF7, 0xBA, 0x1B, 0xA9, 0x5A, 0xA9, 0xBE, 0x74, 0x68, 0x16, 0xC9, 0x98, 0xCA, + 0x43, 0x5A, 0x54, 0xDC, 0x47, 0x42, 0xFB, 0xFD, 0x48, 0x68, 0xBB, 0x18, 0x29, 0xF3, 0x6C, 0x18, + 0x45, 0x12, 0xAA, 0xF6, 0xF7, 0x28, 0xF1, 0xAC, 0x75, 0x39, 0x40, 0x2B, 0x78, 0xE5, 0x22, 0xC3, + 0xD0, 0xB5, 0xB7, 0x5B, 0x14, 0xD9, 0x72, 0x91, 0x83, 0xC7, 0x8D, 0x2F, 0x88, 0x8B, 0x12, 0x02, + 0x4A, 0xC6, 0x4F, 0x93, 0xF6, 0xC3, 0x66, 0x31, 0x95, 0xDB, 0xEA, 0x97, 0xBD, 0xCD, 0x2A, 0x6F, + 0x5A, 0x6A, 0x50, 0x0A, 0xAB, 0x2B, 0xAF, 0xFE, 0x67, 0xFD, 0xA2, 0x17, 0xE9, 0x20, 0x77, 0x4A, + 0xD8, 0xE9, 0xA0, 0x0A, 0x4A, 0xE9, 0x6D, 0x15, 0x8A, 0xC3, 0x78, 0x95, 0x18, 0xE4, 0xD9, 0x5D, + 0xCC, 0x3C, 0x7E, 0x5F, 0x7E, 0x5C, 0x18, 0x76, 0x38, 0x0F, 0x69, 0x87, 0xC4, 0x07, 0x79, 0x57, + 0x0D, 0x9E, 0x97, 0x71, 0x10, 0xE4, 0xB3, 0xC7, 0x2F, 0xBA, 0x0F, 0x69, 0x3A, 0x36, 0xC0, 0x4E, + 0xA4, 0xB1, 0xF8, 0x19, 0x70, 0x27, 0xC5, 0xCD, 0x86, 0x06, 0x4C, 0xF1, 0x8C, 0x41, 0x15, 0x0F, + 0xD3, 0xB9, 0x0D, 0xBE, 0xC5, 0xB8, 0xAA, 0x52, 0xCB, 0x0A, 0x23, 0xEB, 0xF7, 0x75, 0x6C, 0xA4, + 0x2E, 0xFC, 0xF2, 0xA3, 0x35, 0x88, 0x75, 0x33, 0x24, 0x46, 0x1A, 0xED, 0x87, 0x57, 0xA4, 0xE5, + 0x28, 0x88, 0xF3, 0x58, 0xCD, 0xC3, 0xD1, 0x53, 0x8A, 0x0F, 0xE9, 0x74, 0xC8, 0x3B, 0xDB, 0x08, + 0x47, 0x38, 0x21, 0x9D, 0x8E, 0xA7, 0xD0, 0x63, 0x03, 0x4C, 0xC2, 0xA7, 0xC0, 0x4D, 0x71, 0xAA, + 0x73, 0x8F, 0x58, 0x18, 0x0D, 0xC6, 0x00, 0xC6, 0x79, 0x95, 0x61, 0x17, 0xC5, 0x33, 0x93, 0x6F, + 0xA1, 0x2C, 0xB7, 0xBE, 0xBF, 0xED, 0x2D, 0x97, 0xF4, 0x5D, 0xF3, 0xD1, 0x0E, 0x29, 0x3F, 0xEE, + 0x4E, 0xC7, 0x43, 0x45, 0xC6, 0x24, 0x0B, 0xF6, 0xB0, 0xD8, 0x55, 0x55, 0xC6, 0x6D, 0x91, 0x09, + 0x40, 0x7B, 0x82, 0xCB, 0xE4, 0xC8, 0x4C, 0x53, 0x8A, 0x83, 0x46, 0x59, 0xA7, 0xF2, 0x84, 0x2E, + 0x97, 0xC5, 0xA3, 0x91, 0xCA, 0x22, 0x83, 0x1A, 0xA6, 0x56, 0x7A, 0x2C, 0x80, 0x08, 0x03, 0xA4, + 0x23, 0x70, 0x18, 0xF2, 0xB6, 0x1C, 0x31, 0x1F, 0x94, 0xB8, 0x94, 0x7E, 0x17, 0xBB, 0x29, 0x8A, + 0x34, 0x6C, 0x8B, 0xFB, 0x82, 0x52, 0x03, 0xF7, 0x36, 0xC1, 0xA3, 0xAF, 0x8D, 0x14, 0x8B, 0x41, + 0x9E, 0xDB, 0x98, 0x80, 0x4D, 0xB4, 0xA2, 0xA5, 0x7C, 0x96, 0x6E, 0xC9, 0xA6, 0x5A, 0xF0, 0x6A, + 0xDC, 0xC4, 0xAB, 0xF1, 0x7E, 0x3C, 0xE8, 0x0D, 0x5D, 0x9E, 0x9F, 0xD0, 0xE5, 0x2E, 0xFB, 0xBA, + 0x5E, 0x98, 0x8E, 0x26, 0x38, 0x5B, 0x2E, 0xDD, 0x04, 0x8D, 0xA9, 0x0B, 0xF6, 0xD5, 0x5C, 0x67, + 0x22, 0xFD, 0xE7, 0x3E, 0x79, 0x9E, 0x7C, 0xE1, 0xE4, 0x19, 0xB8, 0xEE, 0x80, 0x9A, 0xD9, 0x4C, + 0xBF, 0x19, 0x4C, 0x6E, 0xDB, 0x79, 0xA5, 0xC8, 0xAD, 0x86, 0xB1, 0x69, 0x64, 0xAD, 0x86, 0x54, + 0xF7, 0x6D, 0xFB, 0x6F, 0x84, 0x12, 0xC4, 0x03, 0xB5, 0x40, 0x54, 0x24, 0x72, 0x2E, 0x0E, 0xB4, + 0x7D, 0xEB, 0x81, 0x76, 0x8B, 0x95, 0x1E, 0x55, 0x77, 0x34, 0xF6, 0x65, 0x1B, 0xE2, 0xEA, 0xD9, + 0x55, 0x9E, 0x45, 0x1B, 0x8F, 0x24, 0xA3, 0x1C, 0xEE, 0xBE, 0x7E, 0xD5, 0xFF, 0x1E, 0x1F, 0x71, + 0xEE, 0x0D, 0xF2, 0x3F, 0x71, 0x8A, 0x2E, 0x28, 0xCE, 0x50, 0xE1, 0x1F, 0x5E, 0x29, 0xAF, 0xFB, + 0x86, 0xAB, 0xFD, 0xF2, 0xEF, 0x38, 0x45, 0x24, 0xB8, 0xBA, 0x86, 0xC5, 0xCF, 0xCF, 0x18, 0x27, + 0xF5, 0x92, 0x72, 0xC6, 0x24, 0x26, 0x94, 0x3E, 0x87, 0x51, 0x14, 0xA7, 0x77, 0xC1, 0x62, 0x3C, + 0x4F, 0x92, 0x41, 0x0F, 0x32, 0x36, 0x18, 0xF4, 0xE0, 0x08, 0xA5, 0x14, 0x65, 0x83, 0x1E, 0xE4, + 0xEC, 0x35, 0xE8, 0xE5, 0x3C, 0xB8, 0x09, 0xEF, 0xA7, 0x7A, 0x2F, 0xA3, 0x60, 0xAB, 0x77, 0x52, + 0x15, 0x43, 0x6E, 0xE5, 0xB3, 0x81, 0x90, 0xBE, 0x3B, 0x36, 0xCB, 0xF4, 0x13, 0xB1, 0x7A, 0x3D, + 0x8D, 0x77, 0x65, 0x34, 0x39, 0xD3, 0xB9, 0x4B, 0x7C, 0xC7, 0xDF, 0x27, 0x5A, 0x03, 0x25, 0x4B, + 0x33, 0x86, 0xA9, 0xE5, 0xD0, 0x42, 0xCB, 0xE1, 0xBD, 0x01, 0x26, 0x7D, 0x85, 0xD7, 0x12, 0x37, + 0x55, 0xB6, 0xC1, 0x11, 0xD5, 0x3A, 0x1D, 0xEA, 0xAB, 0x07, 0x55, 0xAB, 0x9B, 0xA8, 0x9A, 0xE6, + 0x35, 0x6E, 0x9C, 0xA2, 0x13, 0x46, 0x70, 0x82, 0x46, 0x94, 0xB0, 0x19, 0xE7, 0x91, 0x6A, 0x8D, + 0xBD, 0x03, 0xD4, 0x2E, 0x66, 0x59, 0xE9, 0x41, 0xF4, 0xD7, 0x90, 0xCD, 0xD4, 0x25, 0xB6, 0xB5, + 0x81, 0xEB, 0x22, 0xA2, 0x4C, 0xAF, 0xC6, 0x7D, 0x6D, 0x18, 0x45, 0xA7, 0x71, 0x8A, 0xEC, 0x80, + 0x41, 0xAE, 0xB1, 0x28, 0x4D, 0xC5, 0x5B, 0xEB, 0x8C, 0x03, 0x2B, 0xB7, 0x5C, 0x59, 0xDA, 0x5F, + 0x4B, 0xAA, 0xAF, 0x43, 0x73, 0xB8, 0x0E, 0x38, 0x3D, 0x29, 0x6B, 0x52, 0x62, 0x2D, 0xA0, 0xFC, + 0x2A, 0x47, 0x7A, 0x35, 0xC4, 0x29, 0x2A, 0xEF, 0xF1, 0x6B, 0x41, 0x40, 0x69, 0xD4, 0xD8, 0xDE, + 0x98, 0x03, 0xC1, 0xFB, 0xC5, 0x73, 0xC0, 0x56, 0xA8, 0x9B, 0x9B, 0xD7, 0x4A, 0xDB, 0x36, 0xDA, + 0x2D, 0x38, 0xAD, 0x06, 0x6B, 0x11, 0x54, 0x3F, 0x09, 0x5C, 0x97, 0x58, 0x15, 0x42, 0x0C, 0x2A, + 0xCC, 0x67, 0x0E, 0xB2, 0xFC, 0x2D, 0x07, 0x15, 0x32, 0x55, 0x07, 0x49, 0xAE, 0xEA, 0xAB, 0xBF, + 0xDB, 0xBF, 0xAE, 0x36, 0x93, 0x03, 0xCF, 0x73, 0xEE, 0xBE, 0xC0, 0xE5, 0x98, 0x61, 0xA0, 0x35, + 0x84, 0x1B, 0xCA, 0x6D, 0x4B, 0xCC, 0xB4, 0x5E, 0xD1, 0x77, 0x01, 0xAA, 0xCE, 0x6C, 0xA7, 0x43, + 0xDF, 0x06, 0xA8, 0x3C, 0x5B, 0xB9, 0x6D, 0xDD, 0x49, 0x6B, 0x64, 0x0B, 0xA8, 0x6E, 0x0D, 0xA7, + 0xAB, 0x78, 0xB9, 0x74, 0x99, 0xCC, 0x75, 0xAF, 0x6D, 0xFD, 0x6C, 0xB6, 0x35, 0xC8, 0x2B, 0xCB, + 0x53, 0x3C, 0x3A, 0xAE, 0x31, 0xA6, 0x16, 0xC4, 0xB5, 0x4F, 0x90, 0x02, 0x58, 0xE9, 0xB0, 0xB8, + 0x88, 0xAB, 0x7C, 0x90, 0x0F, 0x0B, 0x76, 0x5F, 0xED, 0xEC, 0xFC, 0xDB, 0xFE, 0xFA, 0x2F, 0x62, + 0x7F, 0xB5, 0x86, 0xB1, 0xAF, 0x1B, 0x5F, 0x99, 0xDE, 0xD3, 0xFC, 0xCC, 0x80, 0x9B, 0x61, 0x47, + 0xCA, 0x0C, 0x0B, 0x93, 0x95, 0x2A, 0x06, 0x8C, 0x56, 0x57, 0xB9, 0x59, 0x59, 0x85, 0xDB, 0x7B, + 0xE7, 0x15, 0x7B, 0xEF, 0x64, 0xF5, 0xC3, 0x06, 0x0C, 0x43, 0xC1, 0xA1, 0xA3, 0x61, 0xD9, 0xF6, + 0x5B, 0x7D, 0xC6, 0x80, 0xAC, 0x36, 0x61, 0x6A, 0xB5, 0x09, 0xD7, 0x0F, 0x41, 0x55, 0xEB, 0x6F, + 0xD9, 0x26, 0x9C, 0xD9, 0x5F, 0x3E, 0xE0, 0xDA, 0x5B, 0x86, 0xFA, 0x2B, 0x87, 0x92, 0xAA, 0x98, + 0xA2, 0x07, 0x27, 0xAD, 0xE8, 0x8F, 0x45, 0xE0, 0x88, 0x79, 0x12, 0xFD, 0xCA, 0x43, 0x87, 0x18, + 0x4E, 0xDC, 0xDA, 0xCC, 0x69, 0x7E, 0x3F, 0xE0, 0x67, 0x8E, 0xE2, 0x5B, 0x12, 0x12, 0xFA, 0x4B, + 0x8A, 0x1F, 0x52, 0xEB, 0xF3, 0x06, 0xE1, 0x58, 0xD7, 0x68, 0x59, 0x11, 0x9F, 0x0B, 0x8B, 0xB3, + 0x70, 0xC3, 0x5B, 0x65, 0x6E, 0x56, 0x5B, 0x50, 0x37, 0x63, 0xBC, 0x58, 0x3D, 0x89, 0x1F, 0x72, + 0x20, 0xC5, 0x30, 0x8C, 0xA7, 0xE2, 0xA3, 0x06, 0xEF, 0x05, 0x91, 0x95, 0xF9, 0xB8, 0xFE, 0x06, + 0x7A, 0xB4, 0x5C, 0x8E, 0x7C, 0x11, 0xCD, 0xE2, 0x3D, 0x1A, 0x63, 0x95, 0x97, 0x4D, 0x22, 0x6A, + 0x67, 0x06, 0xE5, 0xC9, 0x96, 0x04, 0xA5, 0x41, 0xDD, 0x21, 0x7A, 0x28, 0x72, 0xDA, 0x7B, 0xEE, + 0x56, 0xE4, 0x8A, 0x24, 0x03, 0x49, 0x3D, 0x30, 0xE1, 0x21, 0x7D, 0x74, 0x46, 0x61, 0x9A, 0x62, + 0x1E, 0x95, 0x90, 0x61, 0x5E, 0x44, 0x23, 0xA4, 0x8F, 0x41, 0xA2, 0x07, 0x5B, 0x0D, 0xD6, 0xA7, + 0xAC, 0xCA, 0x85, 0x9D, 0x4F, 0xD5, 0x11, 0x33, 0x23, 0x0C, 0x64, 0xCD, 0xB5, 0x34, 0xC5, 0x1A, + 0x2A, 0x9A, 0xA6, 0xD2, 0x89, 0xD5, 0x54, 0x6A, 0x7F, 0xB1, 0x2E, 0xC6, 0x6F, 0x79, 0x8D, 0x2F, + 0xCE, 0x71, 0xDC, 0xEE, 0xC8, 0x0E, 0x12, 0x37, 0xFC, 0xF0, 0xB8, 0xC2, 0xC3, 0xAB, 0x39, 0xD3, + 0xC9, 0x72, 0xD9, 0xCB, 0xDB, 0xA9, 0xB2, 0xF8, 0x87, 0x98, 0xA9, 0xE5, 0xC9, 0x4C, 0xC4, 0x4D, + 0xFA, 0x1E, 0x7B, 0xF5, 0x3A, 0xF0, 0xF3, 0x55, 0x73, 0x6A, 0x1D, 0xE3, 0xF3, 0x6F, 0x53, 0xFE, + 0x61, 0x97, 0x0F, 0x72, 0x31, 0xD8, 0x0C, 0x30, 0xDF, 0x76, 0xFF, 0x50, 0xB1, 0xD2, 0x34, 0x5E, + 0x47, 0x94, 0x01, 0xA8, 0xC8, 0x17, 0xB5, 0x37, 0xA9, 0x35, 0x49, 0xD6, 0xEA, 0xEE, 0x4C, 0xFC, + 0x14, 0x67, 0xD3, 0x30, 0x29, 0x39, 0x2A, 0x57, 0x5F, 0x39, 0x1C, 0x65, 0xA1, 0x74, 0x27, 0x39, + 0xC4, 0x22, 0x8D, 0x8A, 0xB9, 0xF6, 0x84, 0xC8, 0x52, 0x42, 0x59, 0x69, 0xAC, 0x40, 0xDE, 0x1E, + 0xAC, 0x5E, 0x9B, 0xCF, 0x98, 0x70, 0xFB, 0x85, 0x46, 0xD9, 0x59, 0xB9, 0x52, 0x5C, 0x78, 0x8B, + 0x55, 0x52, 0x77, 0xC7, 0x28, 0xA5, 0xCA, 0x37, 0xD9, 0xB3, 0xF0, 0x4C, 0x11, 0x59, 0xA8, 0x0A, + 0x71, 0x15, 0xBC, 0x96, 0xEC, 0x63, 0xDF, 0x91, 0x2B, 0xA8, 0x81, 0xB5, 0xAD, 0xAB, 0x76, 0xAD, + 0x17, 0x63, 0xB5, 0x6D, 0xD7, 0x5F, 0xF7, 0x2E, 0xCF, 0xEC, 0xB3, 0xF6, 0x25, 0x37, 0xB9, 0xC6, + 0xE0, 0x97, 0x45, 0xE9, 0x71, 0x86, 0xF0, 0x38, 0x2A, 0xAD, 0x28, 0x2E, 0x3C, 0x5F, 0x6E, 0xEB, + 0xE7, 0xC5, 0x23, 0x14, 0x27, 0xF6, 0x1A, 0xC3, 0xC8, 0x67, 0xEA, 0x52, 0x50, 0xFF, 0x08, 0x23, + 0x61, 0xF1, 0x43, 0x30, 0xF2, 0x85, 0x0E, 0x15, 0x50, 0x18, 0x49, 0x6B, 0x22, 0x82, 0x6B, 0x70, + 0xF5, 0x8D, 0x00, 0xDD, 0x83, 0x37, 0x02, 0x12, 0xFB, 0x43, 0x42, 0x12, 0xB0, 0xE1, 0x8D, 0x04, + 0x27, 0x7E, 0x6E, 0xAA, 0x8E, 0xF2, 0x56, 0xB8, 0x8B, 0x44, 0xC0, 0x35, 0x6E, 0x53, 0xB6, 0x5E, + 0x34, 0xCD, 0x43, 0x34, 0xCB, 0x40, 0xC5, 0xC5, 0xBA, 0xE4, 0xDE, 0xFF, 0xB2, 0x79, 0x3D, 0x97, + 0x1F, 0x1C, 0x94, 0x5C, 0xD1, 0xEB, 0x3E, 0x89, 0x08, 0xF6, 0xB7, 0x00, 0xDC, 0x03, 0xED, 0x88, + 0x24, 0x82, 0x10, 0x14, 0x26, 0x05, 0x49, 0x13, 0x49, 0x03, 0x9A, 0x37, 0x0B, 0x80, 0x85, 0x4D, + 0x87, 0xF3, 0x8D, 0x43, 0xAD, 0xD0, 0x79, 0x6B, 0xEC, 0xD0, 0x7A, 0x93, 0x60, 0x0E, 0xEF, 0xA5, + 0x67, 0xA1, 0x4D, 0xB7, 0x0F, 0x5E, 0x08, 0x5A, 0x03, 0xA1, 0x4C, 0xFF, 0x43, 0xE0, 0x33, 0xC8, + 0x40, 0x69, 0xE9, 0xFF, 0x90, 0x1E, 0x04, 0x6C, 0x20, 0x0F, 0x00, 0xFF, 0x90, 0x2E, 0x32, 0x29, + 0xAC, 0x5A, 0xD5, 0xE0, 0x67, 0x6E, 0x1D, 0x79, 0xB3, 0x0E, 0x6B, 0xDB, 0x3F, 0xF5, 0x2D, 0xA3, + 0xF8, 0xC6, 0x7F, 0xF2, 0x2B, 0xC2, 0xFA, 0xD2, 0xAE, 0xBF, 0xAA, 0xE0, 0xC5, 0xAD, 0xBC, 0x0B, + 0x2D, 0x5D, 0x4E, 0x2A, 0xD7, 0x73, 0xCD, 0x72, 0xBC, 0x8E, 0x88, 0x6C, 0x5B, 0xC3, 0xA4, 0x19, + 0xC6, 0x3A, 0xE8, 0xD9, 0xE5, 0xE5, 0xAA, 0xFD, 0xB5, 0x90, 0x37, 0xA5, 0x7B, 0xEE, 0xB6, 0xE3, + 0x50, 0xE5, 0x66, 0xD9, 0x72, 0xCC, 0xD0, 0x5A, 0xBA, 0x70, 0x01, 0x38, 0x47, 0x23, 0xEA, 0xF5, + 0x60, 0xCF, 0x32, 0x1D, 0x36, 0xC2, 0x00, 0xEB, 0xB1, 0x4D, 0x79, 0x13, 0x0C, 0xBF, 0xF9, 0x0A, + 0xBE, 0x02, 0xAF, 0x6A, 0x18, 0x2F, 0xCE, 0x16, 0x9C, 0x15, 0xC5, 0x2B, 0xEC, 0x7E, 0x55, 0x80, + 0x96, 0x61, 0x70, 0x1B, 0xDC, 0xB0, 0x62, 0x2E, 0x47, 0x40, 0x98, 0xA2, 0x78, 0x4E, 0x33, 0x65, + 0x10, 0x2C, 0x3F, 0x82, 0xD2, 0xF3, 0xE0, 0x51, 0xD0, 0xD4, 0x3C, 0x58, 0xB3, 0x79, 0xFB, 0xC9, + 0xB5, 0xDF, 0x72, 0x72, 0xD5, 0x6E, 0x06, 0x05, 0xBC, 0x22, 0x0E, 0x3F, 0x7D, 0xF4, 0xC7, 0x71, + 0x92, 0xF0, 0x5B, 0xDB, 0x00, 0x95, 0xEC, 0xCA, 0xEA, 0x1B, 0x9F, 0xD7, 0x9B, 0x2B, 0xA4, 0xB1, + 0xD4, 0x46, 0x38, 0x68, 0x5E, 0xF7, 0x37, 0x48, 0x8E, 0xBA, 0xE5, 0xAD, 0x65, 0x43, 0xB2, 0x0A, + 0x25, 0xD0, 0x4D, 0x6C, 0x9D, 0xBF, 0xDC, 0x02, 0x30, 0xFA, 0x66, 0xAC, 0xAA, 0x26, 0xBE, 0x6E, + 0x0D, 0x4D, 0xF0, 0x6C, 0x3C, 0x37, 0xAD, 0x78, 0xD6, 0xBC, 0x62, 0xB8, 0xC5, 0xAA, 0x75, 0x3A, + 0x91, 0x7A, 0x00, 0x67, 0xFF, 0xDE, 0x3C, 0xD7, 0xD4, 0xD6, 0x50, 0x7C, 0x83, 0xDF, 0xE1, 0x8A, + 0xD3, 0xA4, 0xFC, 0xB5, 0x3D, 0x82, 0x2A, 0xBB, 0xB1, 0x3C, 0xCF, 0x2D, 0x27, 0x1F, 0xCE, 0xC5, + 0xDD, 0xE5, 0x16, 0x1C, 0x59, 0xEE, 0x2E, 0xB7, 0x59, 0xA9, 0xF5, 0xEE, 0x72, 0xC7, 0xEA, 0x77, + 0xBB, 0xCB, 0xEA, 0xD7, 0x9D, 0x77, 0xF7, 0x1A, 0xDC, 0x71, 0xAF, 0xE1, 0xBC, 0xD9, 0x00, 0x38, + 0xCF, 0xE1, 0xD6, 0x9B, 0xDD, 0x7F, 0xC7, 0x97, 0xF9, 0x57, 0x31, 0x03, 0x1F, 0x56, 0x23, 0xC8, + 0xD7, 0x4D, 0xC0, 0xC2, 0xDC, 0x8B, 0xB5, 0x95, 0x37, 0x14, 0x7F, 0xED, 0x08, 0xB7, 0xDB, 0x89, + 0x3D, 0x9E, 0x99, 0x0A, 0x25, 0xA3, 0x24, 0x81, 0x0A, 0xBA, 0xAD, 0xCF, 0x1D, 0x46, 0xE8, 0xFA, + 0x3F, 0xC5, 0xE8, 0x61, 0x85, 0x71, 0xB5, 0x62, 0x2C, 0x25, 0x86, 0xB1, 0xB4, 0x6A, 0x57, 0x2D, + 0x5B, 0x5B, 0xD5, 0x7D, 0x5F, 0x4C, 0xE4, 0x48, 0xD3, 0xBB, 0x62, 0x37, 0x89, 0xC9, 0x05, 0xE2, + 0x29, 0xF5, 0x0C, 0x2A, 0x98, 0xDE, 0xB5, 0xBA, 0x50, 0xF9, 0x81, 0xC8, 0x20, 0x28, 0x83, 0x1E, + 0x4F, 0xD5, 0xD0, 0xCB, 0x95, 0xE9, 0x37, 0xA4, 0xE1, 0x41, 0x92, 0xA1, 0x30, 0x7A, 0xBA, 0x40, + 0x29, 0x0D, 0x44, 0x16, 0x0A, 0xC7, 0xE8, 0xB3, 0x96, 0x80, 0xB5, 0xF8, 0x94, 0x1B, 0xFD, 0x70, + 0xE8, 0x5A, 0x6F, 0x29, 0xE1, 0xDC, 0x6B, 0xC6, 0x4A, 0x48, 0xF6, 0xA0, 0x4C, 0x68, 0x11, 0xDD, + 0xBC, 0x7C, 0x23, 0x5F, 0xA1, 0x39, 0x8F, 0x84, 0xCE, 0x8D, 0x98, 0x1C, 0xE7, 0xC6, 0xC1, 0x34, + 0xB4, 0xAE, 0x98, 0x75, 0xC5, 0x8E, 0xC1, 0x1F, 0xD4, 0xEB, 0x7A, 0x22, 0x7A, 0xB5, 0xB1, 0x1D, + 0xB7, 0x20, 0x20, 0xC2, 0xF5, 0x8A, 0xBE, 0x64, 0xD4, 0xEB, 0xA2, 0xB6, 0x72, 0x06, 0xF1, 0xEA, + 0xD1, 0x3B, 0xEA, 0xA0, 0x35, 0x5D, 0x50, 0x1A, 0xB5, 0x51, 0x25, 0xE7, 0x31, 0x3E, 0x8C, 0x86, + 0x28, 0x8D, 0x34, 0xF1, 0xC7, 0x71, 0xCA, 0xF3, 0x13, 0x19, 0x48, 0xF0, 0x03, 0x7D, 0x91, 0x60, + 0xC1, 0x7C, 0x5C, 0xAC, 0x27, 0x4A, 0x6D, 0x50, 0x36, 0xD6, 0xE2, 0x2D, 0xB6, 0xB6, 0xDE, 0x98, + 0x71, 0xBF, 0x4B, 0x01, 0xB2, 0x9F, 0x17, 0x32, 0xBC, 0x1A, 0x0D, 0xD9, 0x8A, 0x71, 0x5F, 0xA7, + 0x0E, 0xD8, 0xDA, 0x7A, 0xB3, 0x51, 0x82, 0x26, 0x91, 0x17, 0xEF, 0x58, 0x0E, 0xD2, 0xA7, 0x4B, + 0x49, 0x23, 0x61, 0x78, 0x21, 0xF2, 0x91, 0xA5, 0x15, 0xAC, 0x39, 0xF8, 0x66, 0xB6, 0x50, 0xA9, + 0xA4, 0x14, 0x67, 0xD8, 0x97, 0x22, 0x2A, 0x8C, 0x21, 0x72, 0x75, 0xAD, 0x60, 0x74, 0xBE, 0xF6, + 0x5A, 0x27, 0x5D, 0xE6, 0x18, 0x6D, 0x58, 0xDF, 0xBD, 0x3A, 0x0B, 0x19, 0x33, 0x69, 0x9B, 0x36, + 0x11, 0x48, 0xBD, 0x5D, 0x66, 0x48, 0xFD, 0x6A, 0x33, 0xB0, 0xAE, 0xA2, 0xC2, 0x06, 0x51, 0xA3, + 0xC1, 0xBE, 0x95, 0x43, 0xC9, 0xFC, 0x96, 0xF0, 0x00, 0xE2, 0x4A, 0xBF, 0x14, 0x97, 0xB9, 0xEA, + 0xF9, 0xE2, 0xAA, 0xDA, 0x4C, 0xB4, 0x8B, 0x2E, 0xDF, 0xF5, 0xCC, 0xE8, 0x30, 0xED, 0xC1, 0xAF, + 0x73, 0xB1, 0x22, 0xB8, 0xA3, 0x60, 0xEB, 0x68, 0x2B, 0xC7, 0x89, 0x46, 0x6C, 0x56, 0xCD, 0x64, + 0xEB, 0x2C, 0xEA, 0xA3, 0x4C, 0x1B, 0xDE, 0x22, 0x3B, 0x46, 0xDE, 0xC2, 0xC5, 0x8B, 0x36, 0x5C, + 0x87, 0x36, 0x56, 0xD8, 0xA8, 0xCD, 0x51, 0xF5, 0x69, 0x57, 0x19, 0x08, 0x8C, 0x03, 0xC6, 0xEC, + 0xB3, 0x24, 0x1C, 0x31, 0x95, 0xC2, 0xD5, 0x17, 0x3C, 0x55, 0x51, 0x1A, 0x17, 0xB3, 0xA2, 0x64, + 0xD0, 0xFE, 0x1A, 0x63, 0x8C, 0x79, 0x8E, 0x07, 0xD5, 0xF4, 0xED, 0x73, 0x9A, 0x7E, 0xF9, 0x71, + 0x11, 0xFA, 0x87, 0x3D, 0xFF, 0xE8, 0xF8, 0x34, 0xFF, 0x52, 0x02, 0xC3, 0x25, 0x89, 0xB2, 0x70, + 0xCB, 0x78, 0x2B, 0xCF, 0xE4, 0x93, 0x66, 0x29, 0xDD, 0x20, 0x1C, 0x8D, 0x52, 0xAB, 0xB9, 0xAE, + 0xC8, 0x0E, 0xA7, 0xAE, 0x32, 0x2A, 0x86, 0xD2, 0xC2, 0xE5, 0xCC, 0xDA, 0xFE, 0xD1, 0xA6, 0x43, + 0x70, 0xB7, 0x5F, 0xFE, 0x16, 0xF3, 0x99, 0xD1, 0x6C, 0x61, 0xDC, 0x1A, 0x13, 0xE6, 0x99, 0xBE, + 0xAA, 0x90, 0x04, 0xE8, 0x79, 0x7E, 0x97, 0x43, 0xBB, 0x7C, 0x35, 0x5D, 0x39, 0x85, 0x03, 0x6C, + 0x5B, 0x3D, 0x8A, 0x67, 0x41, 0xBC, 0xBA, 0x9A, 0x0A, 0x98, 0xB3, 0xBA, 0xA6, 0xE1, 0xD4, 0xBD, + 0x46, 0xED, 0x31, 0x4E, 0xE9, 0x87, 0x70, 0x1A, 0x27, 0x4F, 0xAB, 0x9F, 0xA0, 0xEA, 0xAA, 0x2B, + 0x21, 0x5E, 0xC4, 0x7F, 0x47, 0x6B, 0xC1, 0x63, 0x15, 0x39, 0x92, 0x52, 0x60, 0x65, 0x81, 0x1D, + 0xF4, 0x1D, 0xA2, 0xEF, 0xD9, 0x79, 0x9A, 0x09, 0x3A, 0x6E, 0xAF, 0xE2, 0x36, 0x01, 0xB5, 0x8C, + 0xF5, 0x6A, 0x6F, 0x22, 0x7D, 0xA5, 0x42, 0x8D, 0xE6, 0x95, 0xEF, 0x86, 0x05, 0x6F, 0x1A, 0x3E, + 0x7A, 0x99, 0xB4, 0x21, 0xF5, 0x41, 0x4B, 0x1B, 0xD3, 0xD8, 0x26, 0x1A, 0x49, 0xB6, 0x6A, 0x6D, + 0x65, 0x4C, 0x56, 0x66, 0xFA, 0x4C, 0xE7, 0x68, 0xB9, 0xB4, 0x46, 0x41, 0x6B, 0x5E, 0xD2, 0x3C, + 0xF3, 0x37, 0x5B, 0xFA, 0xF9, 0x70, 0xA2, 0x0E, 0xAF, 0xD8, 0x7A, 0x78, 0xC5, 0xB6, 0xC3, 0xE8, + 0x0E, 0x2B, 0x3E, 0x34, 0xF2, 0x28, 0xF2, 0x73, 0x6B, 0x5A, 0xF7, 0xC4, 0x9D, 0xD8, 0x4F, 0x25, + 0x93, 0x1C, 0xBE, 0x79, 0xDD, 0xDB, 0xD3, 0x2E, 0xB8, 0xEA, 0x0C, 0xE4, 0xC4, 0xEA, 0x84, 0xAA, + 0x1C, 0xB0, 0xE3, 0xA6, 0xD9, 0x84, 0x59, 0x80, 0xC4, 0xB5, 0xFD, 0x74, 0x36, 0xA7, 0x28, 0x12, + 0x9E, 0xFC, 0x31, 0x80, 0x69, 0x30, 0x0B, 0x33, 0x82, 0x4E, 0x52, 0xEA, 0xF1, 0x48, 0xFC, 0xEA, + 0xE4, 0xF4, 0x27, 0x26, 0xDC, 0x3D, 0x77, 0x26, 0x8C, 0x8C, 0x5D, 0xE1, 0x94, 0xCD, 0x4E, 0x42, + 0x6B, 0x55, 0xA7, 0x78, 0xE6, 0x02, 0x75, 0x0C, 0xBC, 0x52, 0x86, 0xD0, 0x3F, 0x77, 0x09, 0x67, + 0xA0, 0x6E, 0x0A, 0x55, 0xD1, 0xEF, 0x5D, 0xC2, 0x58, 0xA6, 0x8B, 0xAF, 0xF3, 0x6F, 0x38, 0xC0, + 0xF1, 0x01, 0xE1, 0x2C, 0x22, 0x81, 0xF1, 0xF7, 0x39, 0x4A, 0x42, 0xA6, 0x73, 0x5D, 0x62, 0xE5, + 0xBB, 0xA2, 0x1D, 0x8E, 0x5B, 0xEA, 0xC4, 0x25, 0x70, 0xA5, 0x43, 0xBD, 0x08, 0x0B, 0x8A, 0x55, + 0x60, 0x50, 0xB6, 0x49, 0xE2, 0xB2, 0xE7, 0x7B, 0x12, 0x88, 0x99, 0x20, 0xFA, 0xE4, 0x9B, 0xEC, + 0x7B, 0xC9, 0x55, 0xEF, 0xDA, 0xB8, 0xBF, 0xE2, 0xBF, 0x37, 0xBD, 0xD1, 0x7E, 0xF8, 0x72, 0x6B, + 0xD0, 0x03, 0xE0, 0x65, 0x08, 0x60, 0x72, 0xD5, 0x37, 0xAB, 0xB0, 0x9F, 0x2F, 0x27, 0xAC, 0x58, + 0xB5, 0x64, 0x32, 0x5F, 0xB3, 0x3D, 0x2B, 0x86, 0x7D, 0x00, 0x33, 0x06, 0xA5, 0xCF, 0x60, 0x18, + 0x00, 0x2A, 0x35, 0xFB, 0xBC, 0x66, 0x0A, 0x60, 0x52, 0x24, 0xD9, 0x85, 0x6F, 0x76, 0x7B, 0x22, + 0xD6, 0x37, 0x8C, 0xBF, 0xD1, 0x93, 0x9B, 0xE9, 0xB4, 0x97, 0xF8, 0x10, 0x25, 0xC9, 0x05, 0xFA, + 0xDB, 0x1C, 0xA5, 0x23, 0x54, 0x3E, 0x32, 0x13, 0x7D, 0x3C, 0xD6, 0x3C, 0x6A, 0xBC, 0x39, 0x55, + 0x72, 0x08, 0x75, 0xE5, 0xCB, 0x92, 0x30, 0xA0, 0xDD, 0x94, 0x9B, 0x0D, 0xA0, 0xBC, 0x10, 0x0B, + 0x6F, 0x89, 0x97, 0x75, 0x43, 0xD0, 0xAD, 0xDA, 0x60, 0x44, 0x26, 0xE3, 0xDE, 0xB0, 0x05, 0x86, + 0xCE, 0x43, 0x91, 0x06, 0xBD, 0x61, 0xFA, 0xB6, 0x04, 0x6F, 0x98, 0x6E, 0x6E, 0x2A, 0x04, 0xC2, + 0xC0, 0x3D, 0x70, 0x83, 0x20, 0xC0, 0x7C, 0x3D, 0xED, 0x77, 0xFB, 0x83, 0x3E, 0x9C, 0x04, 0x71, + 0x3D, 0x99, 0x46, 0xB6, 0x19, 0xBE, 0x48, 0x81, 0xCA, 0x2F, 0x30, 0x51, 0x39, 0x04, 0x26, 0x7E, + 0x4C, 0x7E, 0xCB, 0xC2, 0xD9, 0x0C, 0x45, 0xA0, 0xD3, 0x21, 0x9B, 0x9B, 0xEA, 0x94, 0x41, 0x72, + 0x89, 0xAD, 0xE2, 0x82, 0x91, 0x97, 0xC0, 0x89, 0x27, 0xFA, 0x81, 0x04, 0x80, 0x5C, 0x53, 0x45, + 0x1A, 0x35, 0xC4, 0x8B, 0x94, 0x1E, 0x64, 0x0C, 0x5C, 0xEB, 0x9E, 0xC9, 0x89, 0x40, 0xF4, 0x4D, + 0x54, 0xDF, 0xA4, 0xE8, 0x9B, 0x0F, 0x77, 0x98, 0x75, 0x3A, 0xE8, 0x5D, 0xD0, 0xEB, 0x74, 0xD0, + 0x5B, 0x2A, 0xB2, 0x6E, 0x80, 0x78, 0x73, 0xD3, 0x0E, 0xB0, 0xDB, 0x5D, 0x05, 0x52, 0x65, 0xF7, + 0x2E, 0x10, 0xC5, 0x25, 0xEB, 0x0B, 0x7A, 0x47, 0x55, 0x72, 0xE9, 0xA2, 0x4A, 0x58, 0xB6, 0x79, + 0xB0, 0x31, 0xE1, 0x00, 0xB1, 0x89, 0x81, 0x13, 0x95, 0x7B, 0x7A, 0x88, 0x37, 0x78, 0x9E, 0x95, + 0x70, 0x23, 0x08, 0xC8, 0x10, 0xE0, 0xCD, 0x20, 0xE3, 0x51, 0x22, 0x60, 0xD6, 0xE9, 0xE0, 0x77, + 0xA9, 0xD4, 0x53, 0xF6, 0xBD, 0xC9, 0x66, 0x90, 0x2A, 0xC4, 0x69, 0x16, 0xA6, 0x24, 0x09, 0x29, + 0x2A, 0xEC, 0xB6, 0x97, 0x58, 0x64, 0x16, 0xF2, 0x42, 0xC8, 0x8E, 0x1D, 0xDC, 0x7C, 0x14, 0xF4, + 0x20, 0x0A, 0x7A, 0x30, 0xDC, 0xDC, 0x04, 0x83, 0x0D, 0x06, 0xEE, 0x6D, 0xAF, 0xD3, 0x79, 0x1E, + 0xA0, 0x1E, 0x44, 0x9B, 0xDC, 0xD3, 0x4F, 0x21, 0x02, 0x51, 0x80, 0x61, 0xD8, 0xED, 0xEA, 0x99, + 0x9C, 0x6C, 0x3E, 0x0F, 0xAD, 0x82, 0x3A, 0x93, 0x4A, 0x30, 0x0A, 0x95, 0xB1, 0x5B, 0xBF, 0xD8, + 0x52, 0xF9, 0x21, 0xE2, 0x4D, 0x54, 0xB4, 0x1A, 0x49, 0xA7, 0x57, 0xF3, 0x8E, 0x1C, 0x09, 0xA3, + 0x53, 0x6C, 0xE6, 0xF3, 0x66, 0x4B, 0x82, 0xBC, 0x45, 0x43, 0xB2, 0xB9, 0x09, 0xE2, 0xCD, 0x80, + 0x16, 0x33, 0x68, 0x5D, 0xAC, 0x75, 0x63, 0xA5, 0xC0, 0x0B, 0x17, 0xEC, 0xFF, 0x08, 0x93, 0xE2, + 0x87, 0xC8, 0xB9, 0x18, 0xDB, 0xD3, 0x9F, 0x57, 0x2D, 0x72, 0x8A, 0x0B, 0x30, 0x4C, 0x34, 0xC3, + 0xF4, 0x82, 0x20, 0xC8, 0x3C, 0x2A, 0x4B, 0x95, 0xF2, 0xEE, 0xBA, 0x83, 0x91, 0x27, 0xD8, 0x06, + 0x41, 0xB1, 0x7C, 0x31, 0x3B, 0x71, 0x43, 0xAC, 0xAA, 0xC0, 0x89, 0xE7, 0x1E, 0xB9, 0x30, 0x01, + 0x20, 0xF7, 0x30, 0x4C, 0x60, 0x4F, 0xE2, 0xBB, 0x99, 0x79, 0x89, 0xFA, 0xD3, 0xDE, 0x31, 0xA3, + 0x4A, 0x34, 0x8C, 0xEA, 0xBD, 0xBE, 0xEB, 0xED, 0x93, 0x6E, 0xEA, 0x11, 0x88, 0x8B, 0x30, 0xF7, + 0x37, 0x01, 0x81, 0xF3, 0x1A, 0x55, 0x84, 0xAF, 0x24, 0x37, 0xF0, 0xE9, 0xF9, 0x0F, 0x32, 0x4F, + 0x7D, 0xB1, 0xC1, 0x83, 0xE8, 0x6D, 0xDC, 0xE9, 0x4C, 0xDE, 0x06, 0x64, 0xB9, 0x44, 0xEF, 0x02, + 0xFE, 0x37, 0xD9, 0x77, 0x0F, 0xDD, 0x81, 0x7B, 0xE4, 0xE6, 0x25, 0x0C, 0x0B, 0xE1, 0xC0, 0x28, + 0x10, 0xC1, 0x18, 0xDE, 0x40, 0xF7, 0x90, 0x09, 0xA4, 0x79, 0x69, 0xFC, 0xF3, 0x62, 0xF4, 0xDA, + 0x54, 0x2B, 0x06, 0x17, 0x8F, 0xBD, 0xC4, 0x48, 0x26, 0xEF, 0x44, 0x01, 0x7E, 0x87, 0xF6, 0xDD, + 0x23, 0x77, 0xE0, 0x1E, 0xBA, 0x70, 0x54, 0x84, 0x6F, 0xC1, 0x6C, 0xC1, 0x4F, 0xBC, 0x88, 0xC9, + 0x9E, 0x61, 0x14, 0x24, 0x6C, 0xF5, 0x8A, 0x5A, 0x7A, 0xFC, 0xBA, 0x6E, 0xD2, 0xA5, 0x06, 0x6A, + 0x56, 0xDB, 0x2B, 0x15, 0xAB, 0x03, 0xE5, 0x1E, 0x83, 0x84, 0x06, 0x18, 0xC6, 0x60, 0xD3, 0xBB, + 0xE9, 0xF6, 0xC1, 0x8B, 0x98, 0x7F, 0xDA, 0xEC, 0x6F, 0x7A, 0xFC, 0x1B, 0x1E, 0x20, 0xC0, 0x8E, + 0x1D, 0xB2, 0xEF, 0x3C, 0x87, 0xFD, 0xAD, 0x37, 0x7B, 0xFF, 0x36, 0xAC, 0xFF, 0x8B, 0x18, 0xD6, + 0x8F, 0xF0, 0xB4, 0xD9, 0xAB, 0xFA, 0xCD, 0xDE, 0xB6, 0xF2, 0xAA, 0x7E, 0xF5, 0xFA, 0x95, 0x34, + 0xA9, 0x6F, 0x6D, 0x6D, 0x0B, 0xAF, 0xEA, 0xBD, 0xFE, 0xAB, 0xBE, 0x70, 0xAB, 0x16, 0xA6, 0x77, + 0xA6, 0x5A, 0xBD, 0xEE, 0xED, 0xEE, 0x02, 0x18, 0x71, 0x9F, 0xEB, 0xBD, 0x1E, 0x80, 0x37, 0xCA, + 0xFB, 0x7A, 0xAE, 0xED, 0xF2, 0xE3, 0x40, 0xB9, 0xD6, 0xE2, 0x69, 0x37, 0x93, 0x7D, 0x77, 0xF1, + 0x43, 0x8A, 0xB2, 0xAE, 0x0B, 0xEF, 0xD5, 0x57, 0x91, 0xE8, 0x87, 0x2F, 0xA3, 0xBB, 0xA0, 0x0F, + 0x67, 0x15, 0x37, 0xEA, 0x9B, 0xD5, 0x6E, 0xD4, 0x21, 0x1C, 0xC1, 0x04, 0xCE, 0xE1, 0x7D, 0x35, + 0x84, 0x06, 0x5A, 0xCB, 0x7D, 0xBA, 0xEA, 0x6C, 0x1D, 0x17, 0x4F, 0xD5, 0x64, 0xDE, 0xF3, 0xC2, + 0xBE, 0x5F, 0x09, 0x03, 0x1F, 0xDA, 0xAF, 0x03, 0x46, 0xD6, 0xBB, 0x83, 0xA4, 0xE6, 0x51, 0xAD, + 0x3F, 0xCD, 0xF5, 0x71, 0x49, 0x64, 0x81, 0x39, 0x64, 0x24, 0x08, 0xEE, 0x36, 0x37, 0xD5, 0x1D, + 0x02, 0x7E, 0xD0, 0x81, 0x3A, 0xF4, 0x03, 0x3B, 0x76, 0x32, 0xBF, 0xC4, 0xE7, 0x96, 0x4F, 0x38, + 0x95, 0xA9, 0x2B, 0xCE, 0x51, 0x94, 0x85, 0x0F, 0x32, 0x61, 0x96, 0xF2, 0x3F, 0x4B, 0xD1, 0x83, + 0x13, 0xF9, 0xDC, 0x7C, 0x22, 0x5F, 0x9A, 0x02, 0x9F, 0x47, 0xB3, 0x2B, 0x3A, 0x3B, 0x7C, 0x56, + 0x20, 0x0F, 0xB3, 0x81, 0xDD, 0xB9, 0x9A, 0x8D, 0xD6, 0x5E, 0xBD, 0x76, 0x2E, 0x74, 0x85, 0xDF, + 0x8A, 0x6B, 0xAD, 0x8C, 0xE8, 0x01, 0xA5, 0x59, 0x7C, 0x3B, 0xA7, 0xC8, 0x73, 0xC3, 0x2C, 0x0E, + 0xBB, 0x93, 0x38, 0x8A, 0x50, 0xEA, 0x42, 0x97, 0x66, 0xF3, 0xDA, 0xA3, 0x69, 0x83, 0x36, 0x56, + 0x33, 0x0D, 0x93, 0x8F, 0x56, 0x13, 0x8D, 0x0C, 0x64, 0x25, 0x98, 0x46, 0xE5, 0xFD, 0x7A, 0x1E, + 0x51, 0xEA, 0xCD, 0xEC, 0xA4, 0xD1, 0xF5, 0xDA, 0x5A, 0xAE, 0x3B, 0xF0, 0xC2, 0x76, 0x13, 0x70, + 0x2F, 0x6A, 0x81, 0xDF, 0x79, 0x25, 0x42, 0x2C, 0xD0, 0x0B, 0x64, 0x5E, 0xB9, 0xE9, 0xAE, 0xF9, + 0x62, 0x5B, 0x8D, 0x1A, 0x38, 0x2D, 0x79, 0x44, 0x1A, 0x8E, 0x88, 0xC2, 0xEA, 0x29, 0x4F, 0xDB, + 0x32, 0x62, 0x82, 0xCD, 0xBF, 0xF7, 0xBE, 0x39, 0x12, 0x7B, 0x9C, 0x32, 0xD1, 0x76, 0xC8, 0x33, + 0x86, 0x16, 0x7E, 0x8C, 0x45, 0xE9, 0x7D, 0x39, 0xB8, 0x3B, 0x63, 0x90, 0x0F, 0x21, 0x13, 0x08, + 0x4F, 0x41, 0x26, 0xC7, 0x7B, 0xC2, 0xDD, 0x74, 0x46, 0xC8, 0xC3, 0xA6, 0xD4, 0x3B, 0xD7, 0x15, + 0xA1, 0x9A, 0xBF, 0x8A, 0x9C, 0xA8, 0x4C, 0xD0, 0x78, 0xD3, 0xB2, 0x28, 0xD7, 0x0D, 0x40, 0x63, + 0xF2, 0xED, 0xBA, 0x6D, 0xEA, 0x13, 0x6F, 0x9F, 0x8E, 0x42, 0x30, 0xF9, 0x38, 0xBD, 0x98, 0xE0, + 0x87, 0xD3, 0x38, 0xFD, 0xFA, 0x2B, 0x1B, 0x25, 0x5B, 0x47, 0xB5, 0xA8, 0xF6, 0xEC, 0xEB, 0xCF, + 0xF8, 0x5E, 0xE4, 0x3F, 0x6D, 0xF0, 0x7D, 0x2D, 0x81, 0xFC, 0x39, 0x8E, 0xD0, 0x6A, 0x90, 0xA7, + 0x28, 0xBC, 0xB7, 0x87, 0xC9, 0xF7, 0x7A, 0xF0, 0xA6, 0x25, 0xD6, 0x49, 0x9D, 0xDA, 0xF2, 0x62, + 0xA6, 0x81, 0xE0, 0x3C, 0xC6, 0x8D, 0xA8, 0x22, 0x69, 0xF7, 0x21, 0xC3, 0x53, 0x19, 0x3B, 0xD8, + 0x42, 0xEE, 0xC6, 0x65, 0xA4, 0x84, 0x2C, 0x0F, 0xFB, 0xC5, 0xE4, 0x8E, 0x4A, 0xC7, 0x20, 0xAD, + 0xE3, 0x7A, 0x19, 0x98, 0x1F, 0xA5, 0xA7, 0x74, 0x7D, 0xA5, 0x2C, 0xAA, 0x2E, 0x4C, 0xB6, 0x40, + 0xEC, 0xC3, 0xCA, 0xB2, 0xD4, 0xC1, 0x99, 0x27, 0xA1, 0x34, 0xB3, 0xD9, 0x53, 0x61, 0x8A, 0x6F, + 0x2F, 0x50, 0x75, 0x59, 0x97, 0xDA, 0x9B, 0x36, 0x38, 0xD3, 0x1F, 0xD7, 0x1A, 0x7B, 0xFE, 0x05, + 0xAA, 0xC9, 0x88, 0x52, 0xA4, 0x68, 0x03, 0x99, 0x36, 0x74, 0x37, 0x6B, 0xEE, 0x75, 0xCD, 0x16, + 0xCF, 0x04, 0xB1, 0xCD, 0xE5, 0x62, 0x16, 0x8E, 0xE2, 0xF4, 0xAE, 0xBD, 0x77, 0x73, 0x28, 0x86, + 0x27, 0x65, 0xEB, 0xC0, 0x57, 0xC6, 0xD6, 0x2B, 0x76, 0x95, 0xE6, 0xCE, 0x19, 0x38, 0xE9, 0x4A, + 0xDC, 0x56, 0x85, 0x16, 0x59, 0x4E, 0x2C, 0x35, 0x4C, 0x47, 0xC8, 0x95, 0x34, 0xB6, 0x06, 0xB0, + 0x2C, 0x76, 0xA2, 0x46, 0xF0, 0x66, 0x0C, 0xF9, 0x56, 0x2A, 0x36, 0x46, 0xC8, 0xAC, 0x75, 0x50, + 0xCD, 0x31, 0x58, 0xF3, 0x9D, 0x6C, 0x1F, 0xEB, 0x4B, 0x0B, 0x4B, 0xD5, 0xA2, 0x9D, 0xAF, 0x0F, + 0x53, 0xBA, 0x4F, 0x37, 0x01, 0x6D, 0x66, 0xD2, 0xEA, 0x30, 0xAC, 0x8E, 0x64, 0x56, 0x0A, 0x57, + 0xEE, 0x44, 0xDA, 0x20, 0xB7, 0x38, 0x77, 0x73, 0x13, 0x8F, 0xD5, 0x7F, 0xD2, 0xD0, 0xDB, 0x00, + 0xB2, 0x7A, 0xD5, 0xB6, 0x0C, 0x83, 0x7B, 0xB8, 0x22, 0xBB, 0x63, 0x6C, 0x7B, 0xA0, 0x1A, 0xDD, + 0xCA, 0x12, 0xF1, 0x66, 0xCD, 0x96, 0x6C, 0xBF, 0x18, 0x27, 0xF8, 0x21, 0x70, 0xA5, 0xA2, 0x51, + 0x0B, 0xAB, 0x64, 0x0A, 0x49, 0x7D, 0x79, 0x6F, 0xFF, 0xDC, 0xA8, 0x30, 0xF1, 0xBE, 0xD6, 0x0E, + 0xEA, 0xD6, 0x20, 0xA0, 0x8B, 0xD0, 0xEE, 0xDA, 0x6D, 0x58, 0xED, 0x20, 0x17, 0x7C, 0x0F, 0xC0, + 0x59, 0xEE, 0xF8, 0x85, 0x22, 0xEA, 0x90, 0x59, 0x98, 0x3A, 0x0B, 0x47, 0x3E, 0x0F, 0x1A, 0x38, + 0x71, 0xCA, 0x43, 0xE5, 0xF0, 0x17, 0x3E, 0x43, 0x47, 0x10, 0x63, 0xE0, 0xF4, 0x7B, 0xBD, 0xFF, + 0x18, 0x3A, 0xF7, 0x28, 0xA3, 0xF1, 0x28, 0x4C, 0xBA, 0x61, 0x12, 0xDF, 0xA5, 0x03, 0x87, 0xE2, + 0xD9, 0xD0, 0xE1, 0xD3, 0x33, 0x70, 0x5A, 0x28, 0xAA, 0x26, 0x30, 0xFF, 0xD2, 0x4A, 0xB7, 0x92, + 0xC3, 0x09, 0x6D, 0xD1, 0xFF, 0xEA, 0x59, 0x24, 0xEC, 0xE9, 0x5E, 0x4A, 0xE9, 0x3A, 0xCA, 0xF4, + 0xFC, 0x16, 0xEE, 0x6B, 0x86, 0xB3, 0x82, 0x1F, 0xCD, 0x35, 0xC3, 0x20, 0xE5, 0x25, 0xBD, 0x6E, + 0xD1, 0xB0, 0x11, 0x6B, 0x36, 0xAA, 0x7D, 0xF9, 0x83, 0x38, 0xA8, 0x06, 0x17, 0x00, 0x19, 0xFA, + 0x77, 0x4D, 0xD6, 0x59, 0x38, 0x22, 0xBA, 0x81, 0xF3, 0xE3, 0x02, 0xF9, 0x63, 0x9C, 0x21, 0x23, + 0x93, 0xCE, 0xD0, 0x19, 0xE3, 0x94, 0x76, 0xC7, 0xFC, 0xCE, 0x50, 0x73, 0xC7, 0x5A, 0x37, 0x8C, + 0xAA, 0x2D, 0x89, 0xFF, 0x8E, 0xD6, 0x6D, 0xC9, 0xB6, 0xF8, 0x7C, 0xF6, 0x38, 0x64, 0x2C, 0xB6, + 0xD9, 0x86, 0x3F, 0x63, 0xF7, 0x41, 0x8A, 0xA9, 0xE7, 0xFF, 0xB8, 0xC0, 0xFE, 0xFB, 0xB3, 0xD3, + 0xA3, 0x9B, 0xC3, 0xD3, 0x83, 0x8B, 0x8B, 0x1C, 0x38, 0x0B, 0xD1, 0xED, 0x83, 0x64, 0xF9, 0xF5, + 0x3A, 0xFE, 0x4D, 0xCC, 0xEA, 0x30, 0x6F, 0xEF, 0xB2, 0xDA, 0xDB, 0xF7, 0x74, 0xF6, 0x1E, 0x27, + 0xD1, 0x7A, 0x1D, 0x9E, 0x5C, 0x1E, 0x9C, 0x9E, 0x1C, 0x56, 0xBA, 0xE4, 0x4C, 0x32, 0x70, 0x62, + 0x1A, 0x26, 0xF1, 0x68, 0x98, 0x7F, 0x81, 0x74, 0x33, 0x70, 0xFF, 0xFB, 0x57, 0xF4, 0x34, 0xCE, + 0xC2, 0x29, 0x22, 0xCE, 0x2D, 0x53, 0x7F, 0x6F, 0x6E, 0xF1, 0xE3, 0x0D, 0x99, 0x84, 0x11, 0x7E, + 0xB8, 0x71, 0x6D, 0x9A, 0xE8, 0xA6, 0xEB, 0x2C, 0x9C, 0xDD, 0xDE, 0x7F, 0x38, 0x0B, 0xC7, 0xB9, + 0xC5, 0x8F, 0x5D, 0x51, 0x77, 0xE0, 0xA4, 0x38, 0x45, 0x43, 0x27, 0xCF, 0xDD, 0x06, 0xB0, 0x4C, + 0xAC, 0xB4, 0x40, 0x64, 0x00, 0xDD, 0xCD, 0x2F, 0x8E, 0x53, 0x24, 0x66, 0xEA, 0x1A, 0x4C, 0x36, + 0xE2, 0x1E, 0x08, 0x82, 0xC1, 0xBE, 0xB0, 0x6A, 0xB5, 0x6F, 0x07, 0xA3, 0x11, 0x5F, 0x18, 0x9C, + 0x05, 0x73, 0x81, 0xE1, 0x97, 0x55, 0x00, 0xCD, 0x46, 0x76, 0xB0, 0x0A, 0xA0, 0x20, 0xD7, 0x7A, + 0xEB, 0x43, 0xB0, 0x99, 0x61, 0xD7, 0x01, 0x0E, 0x9F, 0x95, 0xC3, 0x5F, 0xCF, 0x2F, 0xCE, 0xCE, + 0xE5, 0xAC, 0x98, 0x25, 0x17, 0x97, 0xBF, 0x9F, 0x1E, 0xDF, 0xBC, 0x3F, 0x3D, 0x3B, 0xFC, 0xA5, + 0x98, 0x33, 0x3C, 0xA7, 0x4C, 0x20, 0x0F, 0x9C, 0xFE, 0xEC, 0xD1, 0x21, 0x38, 0x89, 0xA3, 0x3A, + 0x5A, 0xB2, 0x4E, 0x57, 0x24, 0x12, 0x19, 0x38, 0xDD, 0x3E, 0x5B, 0x0A, 0x6B, 0x21, 0x69, 0xE2, + 0xB7, 0x02, 0xBD, 0xF7, 0xA7, 0x27, 0x9F, 0x14, 0x62, 0xC5, 0x12, 0x6A, 0xC4, 0x9D, 0x2D, 0x28, + 0xED, 0x65, 0x3D, 0xA8, 0xB3, 0xD5, 0x97, 0x06, 0x26, 0xE8, 0x13, 0x87, 0x50, 0x34, 0xEB, 0xA2, + 0x34, 0x72, 0xE2, 0x74, 0x1C, 0xA7, 0x31, 0x45, 0xC3, 0xDC, 0xDD, 0x5C, 0x8F, 0xE8, 0xDF, 0x38, + 0x9E, 0x95, 0xD3, 0x50, 0x1F, 0x09, 0xE7, 0xE4, 0x7F, 0xFA, 0x20, 0x6C, 0xC8, 0x32, 0x16, 0x5E, + 0x6F, 0xFD, 0xB4, 0xAE, 0x84, 0xFC, 0xCB, 0x9A, 0xE8, 0xAE, 0x87, 0xE2, 0xC1, 0x79, 0x19, 0x41, + 0x43, 0x68, 0xAC, 0x96, 0x7E, 0x02, 0xBB, 0xDF, 0xE4, 0x5E, 0xEC, 0xF4, 0x9C, 0x5E, 0x75, 0x3C, + 0x4E, 0x9C, 0x12, 0x44, 0xFF, 0x60, 0xA4, 0x7F, 0xFD, 0x74, 0x74, 0x7C, 0x7E, 0x7A, 0xF2, 0xE9, + 0xB8, 0x11, 0xF5, 0x1E, 0x5F, 0x6C, 0x2D, 0xE8, 0xAC, 0x27, 0x2F, 0xB4, 0x9A, 0xE3, 0x2C, 0x1C, + 0x1D, 0x07, 0xC8, 0x09, 0x6F, 0x09, 0x4E, 0xE6, 0x14, 0x0D, 0x99, 0xA6, 0x35, 0x70, 0x7A, 0x43, + 0x87, 0xBF, 0x13, 0x64, 0x7F, 0xFC, 0xBD, 0x1B, 0xA7, 0x11, 0x7A, 0x1C, 0x38, 0xFD, 0xA1, 0x33, + 0xC3, 0x71, 0x4A, 0x51, 0xD6, 0xE5, 0x76, 0x4B, 0x22, 0x65, 0x70, 0xF3, 0xF2, 0xF7, 0x25, 0x5F, + 0x55, 0x7B, 0x8E, 0xE2, 0xFB, 0x86, 0xDE, 0xED, 0xCC, 0xA4, 0x5B, 0xBE, 0xD7, 0x9F, 0xCF, 0x66, + 0xE1, 0xDF, 0xE6, 0x48, 0xB2, 0xCF, 0x33, 0x06, 0xFD, 0xCD, 0x5D, 0x9F, 0xA4, 0x32, 0x45, 0x94, + 0x1D, 0x85, 0x2F, 0xC5, 0x49, 0xE4, 0x2A, 0x86, 0xE4, 0x1A, 0x8F, 0x1D, 0xE4, 0x87, 0x29, 0x89, + 0x7D, 0x94, 0xD2, 0x2C, 0x46, 0xC4, 0x03, 0x60, 0xAD, 0xF9, 0x19, 0xDF, 0x75, 0x7F, 0x5C, 0xC4, + 0xB9, 0xA9, 0xF2, 0x10, 0xB5, 0x27, 0xAC, 0x6C, 0x7C, 0xAB, 0x1B, 0xDB, 0x46, 0xA3, 0xE1, 0xAC, + 0x52, 0x5D, 0x4C, 0x54, 0x42, 0xFF, 0xE4, 0xD3, 0x9F, 0x8E, 0xCF, 0x2F, 0x8F, 0x8F, 0x6E, 0x8E, + 0x8E, 0x3F, 0x1C, 0xFC, 0x7A, 0x7A, 0x79, 0x73, 0x78, 0x76, 0x7A, 0x76, 0x5E, 0xC2, 0x30, 0x11, + 0xD6, 0x41, 0x1F, 0x73, 0x92, 0x78, 0x66, 0xB6, 0x43, 0xF0, 0x3C, 0xE4, 0xDB, 0xBA, 0xB3, 0xCF, + 0x50, 0x4D, 0x1D, 0xCC, 0xBF, 0x34, 0x59, 0x9C, 0xCA, 0x7A, 0xBF, 0x0C, 0xDD, 0x2F, 0xB2, 0x72, + 0xF1, 0x74, 0x1E, 0xE7, 0x4C, 0xEE, 0x4A, 0xF3, 0xAA, 0xD2, 0x96, 0xEB, 0x16, 0xA8, 0xDC, 0x66, + 0xE7, 0xE6, 0xF7, 0x47, 0xEA, 0x2A, 0x1A, 0x05, 0xB5, 0x73, 0xA8, 0xBC, 0xF0, 0x1A, 0xA2, 0xB7, + 0x01, 0x1D, 0xA2, 0xC2, 0x03, 0x03, 0xAD, 0x08, 0x4F, 0x6B, 0x31, 0xC7, 0x9B, 0xFA, 0x35, 0x02, + 0xF5, 0xAB, 0x0A, 0x11, 0x62, 0x0B, 0x81, 0x9C, 0x7B, 0x1B, 0x34, 0x61, 0xF2, 0x8E, 0x0E, 0x81, + 0x05, 0xB8, 0x30, 0xF8, 0x55, 0x4C, 0xAA, 0x05, 0x64, 0x3C, 0xF3, 0x80, 0xCA, 0xB8, 0x73, 0xCE, + 0x5F, 0xC4, 0x9B, 0xEF, 0xBC, 0x1A, 0xE8, 0xD2, 0x68, 0xF5, 0x96, 0x80, 0x54, 0x66, 0x01, 0x6D, + 0xB9, 0x6E, 0x26, 0xBD, 0x68, 0xF0, 0x3E, 0x99, 0x17, 0x71, 0x03, 0x1B, 0xAE, 0x41, 0xA4, 0x71, + 0xF3, 0x5E, 0xB5, 0xF9, 0xC0, 0x44, 0xD1, 0xAA, 0x46, 0x61, 0x14, 0x15, 0x2D, 0x2E, 0xF4, 0x81, + 0x50, 0xE2, 0x25, 0xAF, 0x6A, 0x0D, 0xB2, 0xDA, 0x6E, 0x1B, 0x18, 0xE9, 0x32, 0x94, 0xAA, 0x09, + 0x07, 0x8D, 0x35, 0xEB, 0xA4, 0x6E, 0x01, 0x77, 0xD5, 0xBB, 0x06, 0x45, 0x44, 0xC0, 0xC2, 0xFA, + 0xEE, 0xB7, 0xE2, 0xAA, 0x2C, 0xC4, 0x69, 0xC4, 0x0D, 0xF1, 0xC4, 0xEB, 0x35, 0xDE, 0xBB, 0x74, + 0xFB, 0x00, 0x6E, 0xA0, 0xE5, 0xB2, 0x1E, 0xCA, 0x14, 0x5D, 0xF5, 0xAF, 0x57, 0xE6, 0x61, 0x83, + 0x59, 0x40, 0xD7, 0xAA, 0x97, 0x16, 0xCE, 0x8B, 0x04, 0xF6, 0x00, 0xC4, 0x85, 0xD3, 0x56, 0xD6, + 0x86, 0x1C, 0x1B, 0x7C, 0xDA, 0x1C, 0x24, 0x77, 0xB9, 0xC4, 0x6F, 0x7B, 0x65, 0xCC, 0xC3, 0xEA, + 0xD2, 0x3A, 0x92, 0x3F, 0x3F, 0x64, 0xE1, 0xDD, 0x54, 0xE4, 0x63, 0x8B, 0xC7, 0x5E, 0x5C, 0x78, + 0xA4, 0xA0, 0xAB, 0xDE, 0xF5, 0x3B, 0x7A, 0xD5, 0xBB, 0x1E, 0x86, 0xB6, 0xE0, 0xF6, 0x1C, 0x88, + 0xA6, 0xB4, 0x5A, 0xA8, 0x29, 0x8C, 0xF7, 0x59, 0x9B, 0x01, 0x6B, 0x0D, 0xE3, 0x7D, 0xF6, 0xCF, + 0x80, 0x15, 0x40, 0xDC, 0x4D, 0x37, 0xFB, 0x40, 0x3A, 0xD2, 0xAB, 0x3E, 0x48, 0x10, 0x04, 0xA9, + 0xA8, 0xD4, 0x83, 0x93, 0x20, 0x0D, 0x82, 0x20, 0x13, 0xED, 0x9B, 0xCC, 0x67, 0xCF, 0x44, 0x06, + 0x4E, 0xB4, 0x69, 0x66, 0x14, 0xE0, 0x6E, 0xDA, 0xE5, 0x6F, 0x4A, 0x9E, 0x03, 0x63, 0xB3, 0x0F, + 0xED, 0x7C, 0xC2, 0x8D, 0x79, 0x23, 0x00, 0x60, 0xBA, 0x11, 0x04, 0xB8, 0x10, 0x61, 0x59, 0x10, + 0x04, 0xF8, 0x8F, 0x1B, 0x04, 0x86, 0x3D, 0x88, 0x00, 0xC8, 0xF3, 0xC6, 0x55, 0x61, 0x82, 0x0A, + 0x75, 0x04, 0xF0, 0x1A, 0x20, 0x79, 0x57, 0x1D, 0xF4, 0x0B, 0x87, 0xBB, 0x76, 0x69, 0x2B, 0x1D, + 0x00, 0x2A, 0x96, 0x1F, 0x19, 0x28, 0x77, 0x55, 0x00, 0xE2, 0xCC, 0xF0, 0xFB, 0x45, 0xCF, 0x6B, + 0x22, 0x82, 0x49, 0x34, 0xB7, 0x29, 0x02, 0xF0, 0xEA, 0x26, 0x2D, 0x36, 0xD9, 0xC2, 0xE6, 0xED, + 0xC5, 0x5D, 0x2A, 0x1D, 0x83, 0x33, 0x25, 0x6C, 0xB9, 0xE6, 0xC8, 0x53, 0xD5, 0x80, 0x45, 0xDE, + 0x70, 0x75, 0xD8, 0x2C, 0x80, 0x55, 0xCC, 0xD6, 0x35, 0xEC, 0xAE, 0xF2, 0x29, 0xC4, 0xA1, 0x94, + 0x60, 0x1E, 0xC8, 0x0D, 0x41, 0x64, 0x49, 0x4B, 0x64, 0x17, 0x1A, 0xB7, 0x21, 0x51, 0x21, 0x12, + 0xED, 0x15, 0x20, 0xF9, 0x03, 0x1E, 0x05, 0x64, 0x2B, 0xFD, 0xC8, 0x85, 0xC6, 0xFD, 0x9E, 0x9D, + 0xC8, 0x0C, 0xEF, 0x4A, 0x34, 0x4C, 0xD9, 0x86, 0x9E, 0x9A, 0x1B, 0x7A, 0x8D, 0x16, 0x57, 0xE9, + 0x35, 0xA4, 0x41, 0xDA, 0x3A, 0x0A, 0x2E, 0x1B, 0xF1, 0xEA, 0xAC, 0xA9, 0x77, 0x88, 0x7A, 0x94, + 0xBB, 0x7A, 0xAE, 0x85, 0x2F, 0xD7, 0x7E, 0xD4, 0x0B, 0x82, 0xAA, 0xE3, 0xC2, 0x55, 0x7A, 0xAD, + 0x1F, 0x7B, 0x58, 0xBE, 0x15, 0x2F, 0x44, 0x9A, 0x28, 0xA7, 0x0D, 0x87, 0xB6, 0xE6, 0x3C, 0x32, + 0xDD, 0x49, 0x4A, 0xFB, 0x7B, 0x07, 0x59, 0x16, 0x3E, 0x35, 0x7A, 0x02, 0x00, 0x00, 0xEB, 0xBC, + 0x52, 0xDB, 0xE6, 0xE4, 0x95, 0x3A, 0x7E, 0xF0, 0x30, 0xA4, 0x90, 0x06, 0x41, 0x10, 0xC3, 0x90, + 0xBB, 0xA1, 0xB4, 0x2F, 0x81, 0x66, 0x39, 0xD6, 0x8C, 0x39, 0x13, 0x3D, 0x3C, 0x74, 0x59, 0x55, + 0x55, 0xD5, 0xCF, 0x37, 0xBF, 0xF8, 0x3F, 0x2E, 0xC6, 0x35, 0x8D, 0x96, 0x1F, 0xC9, 0xF3, 0x2F, + 0xB9, 0xE5, 0x02, 0x58, 0x3D, 0x84, 0x47, 0xF4, 0x10, 0x25, 0x49, 0x71, 0xC3, 0x8B, 0xFC, 0xC7, + 0x3E, 0x44, 0xFE, 0xE3, 0x16, 0x44, 0xFE, 0x13, 0xFB, 0xEB, 0x89, 0xFD, 0xC5, 0xF1, 0xDB, 0x28, + 0x12, 0x8F, 0x9B, 0xF7, 0xBE, 0xDF, 0x02, 0xA9, 0x0F, 0x72, 0x4B, 0x03, 0xD3, 0x53, 0x35, 0x1E, + 0x17, 0x81, 0xDD, 0x6A, 0x14, 0x89, 0xAF, 0xAF, 0xD0, 0xB5, 0x7E, 0x37, 0x53, 0xFF, 0x4E, 0xAE, + 0xAF, 0xE8, 0x35, 0xEC, 0xF6, 0xC5, 0xEB, 0x21, 0xFE, 0x2F, 0x05, 0x5C, 0x4B, 0x42, 0x1B, 0x3C, + 0xBC, 0x77, 0x2C, 0x5C, 0x5D, 0x2B, 0xAF, 0xA7, 0xB2, 0x52, 0x17, 0xF6, 0x30, 0xEA, 0xB4, 0x50, + 0x80, 0xD0, 0xF5, 0x90, 0x74, 0x3A, 0x9E, 0x0A, 0x59, 0xC2, 0x54, 0xF9, 0xE2, 0x71, 0x7C, 0x90, + 0xEE, 0xBB, 0x73, 0x35, 0x34, 0x77, 0xA0, 0x62, 0xF9, 0x6F, 0x6E, 0xA2, 0x77, 0x41, 0xD6, 0xE9, + 0x78, 0x28, 0xE8, 0xC1, 0x78, 0x73, 0x93, 0xBF, 0x5B, 0x98, 0x89, 0x77, 0x0B, 0x3B, 0x70, 0xEE, + 0x9F, 0x08, 0x9F, 0x05, 0x1A, 0x57, 0x5F, 0xD8, 0xF3, 0xB7, 0xF4, 0xD6, 0x8C, 0x57, 0x73, 0xDB, + 0xB3, 0x86, 0x57, 0xAC, 0xB8, 0xF6, 0x06, 0xE2, 0x35, 0x07, 0x62, 0x4D, 0x84, 0xF5, 0x86, 0x7D, + 0xAA, 0x24, 0xC2, 0x9A, 0x55, 0xFD, 0xC5, 0x66, 0x39, 0xDC, 0x7E, 0xF5, 0xFA, 0xDF, 0xB9, 0xB0, + 0xFE, 0x05, 0x7D, 0x05, 0x0B, 0xAF, 0x99, 0x80, 0xB6, 0x1A, 0x8A, 0xAA, 0x9F, 0xB5, 0xF1, 0xAB, + 0xF6, 0xA1, 0x30, 0xDC, 0x15, 0x9F, 0x0C, 0xC3, 0x64, 0x51, 0xA8, 0x7E, 0x5E, 0x5C, 0x9E, 0x9F, + 0xFC, 0x72, 0x7C, 0xF9, 0xF3, 0xF9, 0xD9, 0xAF, 0x3F, 0xFD, 0xAC, 0x4B, 0xEB, 0xFD, 0x9B, 0xB6, + 0xFF, 0x80, 0xFA, 0x47, 0x27, 0x1F, 0xF5, 0xDF, 0xC5, 0x3D, 0x44, 0xDD, 0xF9, 0x51, 0x38, 0x3A, + 0xE2, 0x20, 0xF6, 0xF6, 0x76, 0xB6, 0x85, 0xEF, 0xE3, 0x6E, 0xBF, 0x6F, 0xA4, 0xF3, 0xE2, 0xAE, + 0x8F, 0xC2, 0xE1, 0x31, 0xD1, 0x4E, 0x90, 0x11, 0xFB, 0x6B, 0x6B, 0xEF, 0x8D, 0x70, 0x7D, 0x14, + 0x2E, 0x92, 0x73, 0xEE, 0x40, 0xB9, 0xBD, 0x03, 0x86, 0xA5, 0x1E, 0xA5, 0xA7, 0xD7, 0x2D, 0x4E, + 0x22, 0x17, 0x9A, 0x78, 0x29, 0xFF, 0xC8, 0x78, 0xCA, 0xCA, 0x4B, 0xE8, 0xCB, 0x4F, 0xE2, 0xCA, + 0x82, 0x7D, 0xAD, 0x0E, 0x57, 0x56, 0x28, 0x64, 0x0D, 0xB4, 0x13, 0x4A, 0xB9, 0x99, 0xD1, 0x2C, + 0xFE, 0x8A, 0xE8, 0x24, 0xC3, 0xF3, 0xBB, 0x09, 0xAB, 0x5B, 0xA2, 0xB1, 0xAC, 0x24, 0xB6, 0x6A, + 0xE3, 0xAB, 0x39, 0x2D, 0xA5, 0x3A, 0x5D, 0x6E, 0x11, 0x36, 0x6A, 0xD6, 0xE7, 0xB6, 0x5A, 0x9F, + 0x27, 0xB9, 0x68, 0x64, 0x92, 0x4A, 0xED, 0x30, 0xAB, 0xD5, 0x6D, 0x20, 0x80, 0x6C, 0x51, 0xD0, + 0x81, 0x5F, 0xE8, 0x8D, 0xDB, 0xA3, 0x40, 0x40, 0x0C, 0x74, 0x22, 0x23, 0xA1, 0x86, 0x17, 0x71, + 0x20, 0x26, 0x61, 0x16, 0x8E, 0x28, 0xCA, 0xFE, 0x07, 0x66, 0x1A, 0xBE, 0xF2, 0xD0, 0xA4, 0x76, + 0x4F, 0xCF, 0xB8, 0xD9, 0xA7, 0xB3, 0x2D, 0x26, 0x44, 0x3D, 0x36, 0x6F, 0x5A, 0x32, 0x15, 0x55, + 0x62, 0xF0, 0x3E, 0xE0, 0xEC, 0x2B, 0xDB, 0x33, 0xB9, 0x26, 0x13, 0xFA, 0xEC, 0xCF, 0x23, 0x1D, + 0x9B, 0xE0, 0x66, 0x84, 0x93, 0xF9, 0x34, 0x15, 0xAA, 0x01, 0xCF, 0xDD, 0xB9, 0xD1, 0x5F, 0x61, + 0x38, 0xA8, 0x1C, 0x67, 0x78, 0x9A, 0xC9, 0xC2, 0x49, 0x56, 0x1F, 0x5E, 0xD2, 0x28, 0xA0, 0x4D, + 0x7D, 0xC4, 0x79, 0xA1, 0x08, 0x21, 0xED, 0x87, 0x3B, 0x81, 0x09, 0xBC, 0x81, 0x63, 0xB5, 0xC1, + 0xDE, 0x05, 0x65, 0x22, 0x37, 0x1E, 0x7F, 0xE1, 0x2C, 0x68, 0xA3, 0x3E, 0xDB, 0x06, 0x78, 0x41, + 0x74, 0xA8, 0xBE, 0x13, 0x2F, 0x16, 0x57, 0xB7, 0x17, 0x41, 0x4F, 0xAB, 0xC1, 0xD4, 0x8C, 0x3F, + 0x2E, 0xF7, 0x96, 0x1B, 0xD0, 0xED, 0x0F, 0x29, 0x93, 0xD7, 0xB4, 0xDB, 0x05, 0x3C, 0x4B, 0x43, + 0x82, 0xC3, 0x88, 0xD1, 0xD0, 0xA3, 0x15, 0xFA, 0x02, 0xF1, 0xDC, 0x2C, 0x42, 0x1E, 0x60, 0xE7, + 0x4A, 0xFF, 0xD3, 0xAF, 0xA7, 0xA7, 0x37, 0x87, 0xC7, 0xEC, 0x7F, 0x67, 0x47, 0xC7, 0xCB, 0x25, + 0x93, 0xC4, 0x41, 0x10, 0x84, 0x60, 0x71, 0x11, 0xD0, 0xCD, 0xFE, 0xF0, 0x36, 0x43, 0xE1, 0xD7, + 0x5C, 0x8C, 0x75, 0x1A, 0xD4, 0x27, 0x50, 0xBA, 0x2A, 0x72, 0x3C, 0x0F, 0x83, 0x6E, 0x1F, 0xDE, + 0x4A, 0x64, 0x87, 0xB7, 0x6F, 0x2F, 0x86, 0xB7, 0x4C, 0x57, 0x37, 0xB0, 0xB9, 0xAD, 0x62, 0xC3, + 0xDB, 0xDD, 0x04, 0xE5, 0x52, 0x86, 0xE2, 0x6F, 0x22, 0x92, 0xED, 0x50, 0xA6, 0xB6, 0xBD, 0x01, + 0x8B, 0xF1, 0xD5, 0xED, 0x75, 0x70, 0xC8, 0x84, 0x1A, 0x8D, 0xD3, 0x39, 0xCA, 0x05, 0x65, 0x36, + 0xFA, 0xF0, 0x29, 0xB8, 0x85, 0x0F, 0x15, 0x10, 0xAC, 0xDD, 0xCC, 0x78, 0x8E, 0x7F, 0x1B, 0x04, + 0xC1, 0xEC, 0xAA, 0x77, 0x7D, 0xD5, 0xBB, 0x66, 0x23, 0xDB, 0xE8, 0x69, 0x87, 0x8A, 0x99, 0x48, + 0x9A, 0xEA, 0x81, 0xE1, 0x43, 0x20, 0xDC, 0x86, 0xE5, 0x34, 0x48, 0x0E, 0xF4, 0xCA, 0x80, 0x21, + 0x2A, 0x5E, 0xE2, 0xE8, 0xF7, 0x37, 0x1B, 0x3D, 0xC8, 0x8D, 0x10, 0xF4, 0x8A, 0x47, 0xD3, 0xE7, + 0xB6, 0x19, 0xD6, 0x13, 0x7C, 0x12, 0x86, 0x9A, 0x3E, 0xBC, 0x09, 0x1E, 0x8C, 0x51, 0x49, 0x7A, + 0x1E, 0xDB, 0x79, 0xA7, 0xB8, 0xF8, 0x9F, 0x85, 0xA9, 0x88, 0x72, 0x7C, 0xF3, 0xAE, 0xDF, 0xE9, + 0x78, 0xC7, 0xA5, 0xE3, 0x68, 0xF2, 0xE2, 0x86, 0x9F, 0x36, 0x01, 0xBC, 0x30, 0xBE, 0xE9, 0x1C, + 0x45, 0xC2, 0xE3, 0xC3, 0x85, 0xE1, 0xBB, 0xE0, 0xB6, 0xD3, 0x09, 0xDF, 0x06, 0x4F, 0x9D, 0x8E, + 0x17, 0x06, 0xB7, 0x00, 0xC0, 0x8D, 0xDA, 0xAA, 0xD5, 0xCF, 0xC0, 0x7F, 0xE6, 0x9E, 0x30, 0x9D, + 0x0E, 0x11, 0x24, 0x0B, 0x01, 0x79, 0x88, 0xE9, 0x68, 0xE2, 0x1D, 0x57, 0x0C, 0x77, 0x65, 0xE1, + 0x0A, 0xE0, 0xA4, 0xD3, 0x69, 0xAC, 0x62, 0x48, 0x58, 0x00, 0x33, 0xB0, 0x18, 0x85, 0x04, 0xB9, + 0x4C, 0xFC, 0x0D, 0x1A, 0x9B, 0x54, 0x44, 0x27, 0x10, 0x6C, 0x38, 0xE4, 0x2D, 0x0D, 0xD5, 0x73, + 0x45, 0xFB, 0x8A, 0x38, 0x55, 0x50, 0x22, 0x91, 0xD1, 0x7C, 0x65, 0xEF, 0x85, 0xA0, 0xE7, 0x99, + 0x39, 0x1E, 0xFC, 0x98, 0xBC, 0xC7, 0x49, 0xE4, 0x01, 0xDB, 0x58, 0x8B, 0xBD, 0x10, 0x40, 0x56, + 0xF3, 0x84, 0xEF, 0x6A, 0xF6, 0xBA, 0xE6, 0x2E, 0x28, 0x6A, 0x1F, 0xC5, 0x53, 0x7B, 0x55, 0xBD, + 0x91, 0x4A, 0xA8, 0xE9, 0x7D, 0x4C, 0xE2, 0xDB, 0x04, 0x79, 0x60, 0xFF, 0xB8, 0x64, 0x61, 0xC7, + 0xFE, 0x6F, 0x3F, 0x9F, 0x5C, 0x1E, 0x5F, 0x7C, 0x3E, 0x38, 0x3C, 0x96, 0xEB, 0xF9, 0xE7, 0x83, + 0xF3, 0x41, 0xB9, 0x12, 0xE7, 0x41, 0x26, 0x5F, 0x88, 0xC7, 0x74, 0x35, 0x6B, 0x13, 0xDE, 0x4F, + 0x71, 0x72, 0x01, 0x9C, 0xB7, 0xCA, 0x68, 0x7D, 0xF9, 0x71, 0x51, 0xDB, 0xAC, 0xF3, 0xEE, 0x8F, + 0x8B, 0x07, 0x5F, 0xBC, 0x68, 0x40, 0x91, 0xAF, 0x27, 0x89, 0x1F, 0x8A, 0xF3, 0x2F, 0x00, 0xBA, + 0x8E, 0x1B, 0x04, 0x41, 0x09, 0x1F, 0x0E, 0xBA, 0x14, 0x10, 0xE7, 0xFF, 0xFC, 0x6F, 0x17, 0xC0, + 0x8D, 0x12, 0x06, 0xDC, 0x7B, 0x5A, 0x27, 0xA1, 0x07, 0x40, 0xCE, 0x44, 0xF9, 0xFB, 0xF9, 0x4F, + 0xEF, 0x3D, 0x00, 0x8E, 0xAD, 0xC7, 0x15, 0x5E, 0x21, 0xF8, 0x92, 0xDD, 0xDD, 0x7A, 0x3F, 0x2E, + 0xE6, 0xBE, 0x76, 0x32, 0x67, 0x8B, 0xDB, 0xA7, 0x58, 0xB7, 0xE7, 0xC4, 0x29, 0x83, 0xF5, 0x00, + 0xF0, 0xFF, 0x8A, 0xE3, 0xD4, 0x73, 0xA1, 0x0B, 0x72, 0xF0, 0xA5, 0xC8, 0xE7, 0x85, 0x02, 0x6B, + 0xF5, 0xE1, 0x2A, 0x4B, 0x41, 0x94, 0x85, 0x0F, 0x8C, 0x89, 0x2E, 0xD1, 0x23, 0x3D, 0x49, 0xDF, + 0x67, 0x22, 0x4A, 0x2B, 0x93, 0xA0, 0x9D, 0x8E, 0xC9, 0x60, 0xE8, 0xED, 0x6B, 0x76, 0x92, 0xDA, + 0x0C, 0x5E, 0x03, 0xD8, 0x36, 0xAC, 0x29, 0xBF, 0xF7, 0xBA, 0x42, 0xD7, 0xFC, 0x3E, 0x86, 0x41, + 0xB8, 0x30, 0xB5, 0x20, 0x3B, 0x53, 0x59, 0x74, 0x28, 0x21, 0x88, 0x4F, 0xC5, 0xA8, 0x3E, 0xDC, + 0xC9, 0xE1, 0xC0, 0xAF, 0xA5, 0x82, 0x8F, 0x7C, 0xDB, 0x80, 0xE7, 0xA2, 0xF0, 0xBD, 0xAE, 0x75, + 0x54, 0x2A, 0x10, 0xB5, 0xA4, 0x7C, 0x3D, 0x08, 0x36, 0x36, 0x24, 0xE3, 0xA2, 0x8C, 0x20, 0x21, + 0xD0, 0x0F, 0x0A, 0xFB, 0xCD, 0xE9, 0xF0, 0x34, 0x38, 0x87, 0xE7, 0x01, 0xD2, 0xF2, 0xF8, 0xEB, + 0xF0, 0x6B, 0x70, 0x04, 0x8F, 0x02, 0xCA, 0x05, 0xFC, 0x23, 0x7C, 0x0F, 0x2F, 0x03, 0x1D, 0x6F, + 0xA7, 0x1E, 0xAC, 0x71, 0x8C, 0xB3, 0xE3, 0x70, 0x64, 0x04, 0x83, 0x3B, 0xA0, 0x72, 0xA7, 0x89, + 0x65, 0x78, 0x3A, 0xE8, 0xA1, 0xE0, 0xDD, 0xC2, 0xA5, 0x78, 0xE6, 0x6E, 0x98, 0x59, 0x84, 0x92, + 0xF0, 0x09, 0x65, 0x9D, 0xCE, 0xE5, 0x72, 0x59, 0xBA, 0x43, 0x53, 0xFC, 0xD0, 0xE9, 0x78, 0x47, + 0xC1, 0x6E, 0x6F, 0x7B, 0xBB, 0xBF, 0xB7, 0xF3, 0x9A, 0x61, 0x68, 0xA9, 0xE3, 0x67, 0x77, 0xB7, + 0xE1, 0xBB, 0x77, 0xAF, 0x3B, 0xFD, 0xBD, 0x57, 0xAF, 0x5E, 0x6D, 0xF5, 0x77, 0xE1, 0xA3, 0xB5, + 0x1E, 0x80, 0xE6, 0xD5, 0x99, 0xD1, 0xC3, 0xD7, 0xA2, 0x87, 0xD3, 0xC0, 0x56, 0xA7, 0xDE, 0xC3, + 0x7B, 0x6B, 0x3D, 0x00, 0x2F, 0x03, 0x3E, 0xC4, 0xA0, 0x36, 0x44, 0x90, 0x6B, 0x1B, 0xF5, 0xC7, + 0x22, 0x14, 0x0E, 0x4A, 0x92, 0x93, 0x54, 0x2B, 0x4F, 0x8C, 0x5C, 0x82, 0x05, 0xCE, 0x86, 0x52, + 0xE2, 0x5F, 0x2E, 0x97, 0xD3, 0xE2, 0x46, 0xF6, 0x83, 0xEE, 0xB1, 0xD3, 0xF9, 0x58, 0x45, 0xDC, + 0x5A, 0xCF, 0x86, 0xB9, 0xB5, 0x22, 0x80, 0x0C, 0xE0, 0x63, 0xB3, 0x8F, 0x79, 0x4C, 0xF8, 0x7D, + 0x12, 0x8A, 0xF6, 0xA7, 0xCD, 0xB7, 0xD3, 0x83, 0xE9, 0xEA, 0xEB, 0x63, 0xC6, 0x49, 0x3D, 0x00, + 0x2F, 0xEB, 0x6B, 0xA2, 0x9E, 0x20, 0x81, 0x87, 0x12, 0x80, 0x47, 0x62, 0xB7, 0x72, 0xE4, 0x18, + 0xF6, 0x06, 0xFC, 0xD7, 0xF6, 0xF6, 0xEE, 0xEE, 0xCE, 0xCE, 0xF6, 0xD6, 0xE0, 0x4C, 0xAD, 0xBF, + 0xF3, 0x6B, 0x58, 0x13, 0x92, 0xC6, 0x45, 0xEB, 0x79, 0xFE, 0xC5, 0xDC, 0xC2, 0x1C, 0x45, 0xBB, + 0xC1, 0x59, 0x30, 0xE2, 0x74, 0x52, 0x72, 0xC8, 0x3B, 0x7F, 0xF7, 0xAE, 0xBF, 0x07, 0xCF, 0x19, + 0xDD, 0xB6, 0x76, 0x77, 0xE1, 0xD6, 0xEE, 0x6E, 0xE7, 0x5C, 0x07, 0x37, 0x8C, 0x64, 0xFC, 0x84, + 0x63, 0xF8, 0xA5, 0x76, 0x3D, 0xFB, 0x5F, 0x7F, 0x5C, 0xDC, 0x7B, 0xAC, 0xF9, 0xBB, 0x1E, 0xF0, + 0xA9, 0x52, 0x4C, 0xFA, 0x7B, 0x00, 0xBA, 0x3D, 0x17, 0xEE, 0x81, 0x02, 0x03, 0xB5, 0xFD, 0x1D, + 0xEC, 0x7B, 0x0C, 0xFF, 0x82, 0x97, 0x5A, 0x87, 0x90, 0x36, 0xDD, 0x15, 0x7F, 0x01, 0x80, 0xD3, + 0xA1, 0xC0, 0x28, 0x97, 0x1C, 0xF4, 0xB8, 0x5C, 0x1A, 0x7B, 0x9B, 0xF7, 0x18, 0x8C, 0xE4, 0xCD, + 0xF5, 0x74, 0x9E, 0xD0, 0x78, 0x96, 0x3C, 0x9D, 0xCD, 0xC2, 0x51, 0x4C, 0x9F, 0xBC, 0x33, 0xE8, + 0xEF, 0x02, 0x00, 0xBF, 0xB6, 0x13, 0xDB, 0x14, 0x8F, 0xA7, 0x4C, 0x3C, 0x7E, 0x8F, 0xAC, 0xF5, + 0x4E, 0xB9, 0x68, 0x95, 0x84, 0x9D, 0xCD, 0x92, 0xA7, 0x8F, 0x71, 0x1A, 0x4F, 0xE7, 0x53, 0xB6, + 0x15, 0x65, 0x21, 0xA1, 0xDE, 0x31, 0x3C, 0x83, 0x72, 0x76, 0x4F, 0xAF, 0xE1, 0x03, 0x7C, 0x94, + 0xE2, 0x04, 0x2C, 0x97, 0x0D, 0x74, 0xE2, 0x57, 0xF8, 0xA7, 0x4D, 0x53, 0xAD, 0x24, 0x5E, 0x65, + 0xC2, 0x4F, 0xD9, 0x84, 0xF3, 0xB9, 0x3E, 0x35, 0x27, 0xFD, 0x54, 0x6D, 0x25, 0x8D, 0xB8, 0x21, + 0x8E, 0xD3, 0x7B, 0xA0, 0xA2, 0x9F, 0x99, 0xDC, 0x61, 0xB0, 0xC4, 0xE9, 0x7A, 0xCC, 0xB0, 0x92, + 0x10, 0x06, 0x9B, 0x94, 0x68, 0x71, 0x50, 0x5F, 0x4C, 0x26, 0x39, 0x5A, 0xD8, 0x26, 0xBF, 0x2B, + 0x5D, 0x2D, 0x1D, 0x03, 0xC8, 0x35, 0xFC, 0xCD, 0xCD, 0x43, 0x78, 0x1B, 0x3C, 0xA9, 0xE0, 0x06, + 0xB7, 0x6F, 0x6F, 0xBA, 0xFD, 0x4E, 0x67, 0xEC, 0x93, 0xF9, 0x6D, 0xC8, 0x6D, 0xDB, 0xB7, 0x80, + 0x87, 0x90, 0xF5, 0x36, 0x37, 0x0F, 0x01, 0xBC, 0xCB, 0xED, 0x48, 0x57, 0x0D, 0xAE, 0x7D, 0x6D, + 0x59, 0x6F, 0xE6, 0x97, 0x69, 0x19, 0x06, 0x77, 0x50, 0x58, 0x2E, 0xF9, 0x4B, 0x1F, 0xF4, 0x38, + 0x4A, 0xE6, 0x11, 0xFA, 0x90, 0xE1, 0xF2, 0xE7, 0x23, 0x34, 0x0D, 0xD3, 0x88, 0x00, 0x8F, 0x14, + 0xC7, 0x2A, 0x50, 0x04, 0x89, 0xE3, 0x31, 0x09, 0xF4, 0x45, 0xD7, 0x72, 0x99, 0x2E, 0x97, 0x1E, + 0x6E, 0x3E, 0x44, 0xF9, 0x23, 0x09, 0xFB, 0x30, 0x1C, 0x4D, 0x64, 0xDC, 0x14, 0xC6, 0x23, 0x94, + 0xB3, 0x0C, 0x8C, 0xF9, 0x3F, 0x00, 0x14, 0x61, 0x57, 0x31, 0xB7, 0xC9, 0xA9, 0x65, 0x85, 0x52, + 0x32, 0xCF, 0x50, 0x09, 0x3F, 0x2F, 0x5B, 0x2E, 0x29, 0x4C, 0x97, 0x4B, 0x7B, 0x50, 0xC7, 0x55, + 0xA3, 0x07, 0x96, 0x13, 0xBB, 0x1D, 0x57, 0xA2, 0x70, 0xE5, 0x3D, 0x02, 0x81, 0xB0, 0xC7, 0x3A, + 0x96, 0x7F, 0x8B, 0x1C, 0x9D, 0x78, 0x1F, 0x73, 0x0B, 0x28, 0x3B, 0x84, 0x6C, 0xE0, 0x22, 0x42, + 0xAC, 0xE2, 0x5D, 0xA4, 0x78, 0xF7, 0xC7, 0x05, 0xE6, 0x1A, 0xCD, 0x17, 0x20, 0x6C, 0xF3, 0x46, + 0x0D, 0x91, 0x94, 0xAB, 0xF4, 0x5A, 0x50, 0x78, 0x48, 0xC3, 0x2F, 0x3F, 0x2E, 0x38, 0xD5, 0x6A, + 0x5F, 0xC0, 0x72, 0xE9, 0xBA, 0xF9, 0x8F, 0x0B, 0x9A, 0x0F, 0xBF, 0x80, 0xDC, 0xB2, 0xFD, 0x59, + 0x6E, 0xC8, 0xCA, 0xA6, 0x03, 0x48, 0xAA, 0xC5, 0xC7, 0xA9, 0x8A, 0x5B, 0xB1, 0xE1, 0x6D, 0xC4, + 0xCB, 0xE5, 0x06, 0x01, 0x7A, 0x3C, 0x55, 0x53, 0xC2, 0x7E, 0x7C, 0xD5, 0xBB, 0x7E, 0x1B, 0x90, + 0xAB, 0xDE, 0xF5, 0x3E, 0x7A, 0x17, 0xB0, 0x5F, 0x9D, 0x0E, 0x65, 0x7F, 0xF4, 0xAF, 0x99, 0xAE, + 0x47, 0x44, 0x01, 0xAB, 0xD1, 0xBF, 0x1E, 0xA0, 0xB7, 0xD5, 0x0A, 0xEF, 0x82, 0x72, 0x0D, 0xFA, + 0x4E, 0x7C, 0xA0, 0x6F, 0xD9, 0xCF, 0xE5, 0x92, 0xFD, 0x0A, 0x02, 0xFE, 0x4D, 0x1C, 0xDF, 0x75, + 0x3B, 0x01, 0x49, 0xF4, 0x20, 0xEA, 0xBD, 0x2D, 0x6A, 0x11, 0xA3, 0xFB, 0xDA, 0xC7, 0x12, 0x08, + 0x90, 0xE7, 0x45, 0x68, 0x95, 0xFB, 0x92, 0x73, 0x86, 0xB2, 0x42, 0xBC, 0x8D, 0x87, 0x00, 0x05, + 0x74, 0x13, 0x29, 0x7E, 0x47, 0xF9, 0x58, 0x65, 0x0B, 0x4D, 0x84, 0x7D, 0xBF, 0x6E, 0xF5, 0xD0, + 0x69, 0x43, 0xEB, 0x66, 0xFE, 0x6D, 0xDE, 0xCA, 0x6A, 0xD0, 0xDF, 0x61, 0x2D, 0x6A, 0x81, 0x8D, + 0x9A, 0x92, 0x8F, 0xEE, 0x31, 0x40, 0x15, 0xF3, 0xFF, 0xB8, 0xD9, 0x04, 0x3C, 0xCE, 0xE1, 0xD6, + 0xD6, 0xD6, 0xF6, 0xF7, 0x05, 0xAC, 0xB9, 0x3C, 0xFE, 0xF3, 0xE5, 0xCD, 0xFB, 0x83, 0x8B, 0x63, + 0x76, 0x40, 0x92, 0x76, 0xDA, 0xB3, 0xCF, 0x07, 0x87, 0x27, 0x97, 0xBF, 0x07, 0xB4, 0x41, 0x24, + 0xD6, 0x43, 0xDA, 0xEC, 0xF5, 0xFB, 0xDC, 0xCE, 0xDA, 0x50, 0x7F, 0x6B, 0xF7, 0x15, 0x2C, 0x83, + 0xF6, 0x77, 0x6B, 0x7D, 0x13, 0xA6, 0x3E, 0xC5, 0x19, 0x1A, 0xE3, 0xC7, 0xE5, 0x92, 0xFD, 0x38, + 0x45, 0x77, 0xE1, 0xE8, 0xE9, 0x38, 0xBA, 0x43, 0xFB, 0xEE, 0x2D, 0xA6, 0x14, 0x4F, 0xDD, 0x81, + 0x1B, 0x47, 0x08, 0xDF, 0x65, 0xE1, 0x6C, 0x12, 0x8F, 0xDC, 0x1C, 0xEE, 0xF5, 0x8D, 0xC4, 0xAB, + 0x66, 0xD4, 0x27, 0x6D, 0x89, 0xDF, 0x7D, 0xB5, 0xDB, 0x7B, 0xFD, 0x36, 0x40, 0x8C, 0x7B, 0x82, + 0xDD, 0x57, 0xBB, 0xBB, 0xAF, 0xBF, 0x25, 0x8E, 0x92, 0xFD, 0xE9, 0x6E, 0x40, 0x57, 0x89, 0xDB, + 0x80, 0xFA, 0x31, 0x39, 0x47, 0x84, 0x66, 0xF1, 0x88, 0xA2, 0xE8, 0x33, 0x7E, 0x10, 0x87, 0xB0, + 0x9F, 0x92, 0xA7, 0xD9, 0x84, 0x7F, 0xAC, 0x15, 0xF1, 0x1C, 0x51, 0x27, 0xE3, 0x0F, 0x61, 0x42, + 0x9E, 0x8A, 0xC0, 0x4C, 0xA5, 0xD2, 0xE2, 0xCA, 0x41, 0x04, 0x5B, 0x42, 0xF5, 0xC4, 0x52, 0x1C, + 0x7B, 0x67, 0x3A, 0x27, 0xD4, 0x91, 0xC9, 0xA5, 0xC6, 0xAC, 0x69, 0xE1, 0xCC, 0x80, 0x72, 0x68, + 0xE9, 0x3E, 0x86, 0xAD, 0x08, 0x9B, 0x1D, 0x17, 0xF4, 0xDD, 0xEA, 0x19, 0xF4, 0xDD, 0x7A, 0xC5, + 0x00, 0xAF, 0x22, 0x8B, 0x05, 0x10, 0x9B, 0x34, 0xF3, 0x36, 0x45, 0x7F, 0x78, 0xB3, 0xF3, 0x6A, + 0x4B, 0x75, 0xF0, 0x66, 0x6F, 0xBB, 0x9F, 0x7B, 0x08, 0xE4, 0xCD, 0x73, 0xA2, 0x21, 0x28, 0x00, + 0x8B, 0x11, 0x21, 0x83, 0x85, 0x78, 0x04, 0x33, 0x58, 0x88, 0xD7, 0x42, 0x3D, 0x28, 0x1F, 0x16, + 0xF5, 0x72, 0x38, 0x42, 0x49, 0x62, 0x29, 0xCF, 0xA1, 0x78, 0x10, 0xF7, 0x0D, 0x4D, 0xE1, 0x68, + 0x12, 0x66, 0xF5, 0x72, 0x95, 0xB1, 0x8E, 0xE2, 0x19, 0x83, 0x9F, 0xE7, 0x39, 0xDC, 0xD9, 0xDD, + 0xFB, 0x9E, 0xBC, 0xC1, 0x7A, 0x5B, 0x60, 0xA2, 0x3B, 0x29, 0xB8, 0xA5, 0x52, 0x6E, 0xB1, 0xBE, + 0x2B, 0xB3, 0x73, 0x39, 0x28, 0x82, 0xB4, 0x3A, 0xC7, 0x44, 0x00, 0x38, 0x48, 0x12, 0x91, 0x1D, + 0x5B, 0x87, 0x3D, 0x2E, 0x6F, 0x35, 0x2A, 0xFD, 0x9B, 0x70, 0xFF, 0x28, 0xF6, 0x28, 0x09, 0xBC, + 0x62, 0xD2, 0x56, 0xD8, 0x95, 0x3E, 0x1D, 0xA7, 0x51, 0xE9, 0xC3, 0xB3, 0xBB, 0xBE, 0x43, 0xD4, + 0x19, 0x17, 0xB7, 0xF1, 0xEA, 0x7B, 0x25, 0xA4, 0x72, 0x0D, 0xEC, 0xFE, 0x55, 0x0F, 0x2A, 0xBF, + 0x24, 0x13, 0x19, 0xA9, 0xAB, 0x97, 0x3B, 0x93, 0x85, 0x61, 0x56, 0xD8, 0xF0, 0x79, 0x38, 0x37, + 0x72, 0x8E, 0xB8, 0xAD, 0x20, 0xF2, 0xC0, 0x7E, 0x0D, 0xD2, 0xC0, 0x02, 0xC8, 0x82, 0xED, 0x31, + 0x8F, 0x2A, 0xAC, 0x5C, 0xF8, 0x6A, 0x78, 0x02, 0x15, 0x21, 0xAE, 0xDD, 0x5F, 0xE1, 0x99, 0x4E, + 0x32, 0xC2, 0x79, 0xEE, 0x5A, 0x7B, 0x0E, 0x96, 0xB1, 0x04, 0x45, 0x98, 0x53, 0x73, 0x40, 0x52, + 0x7D, 0x6F, 0xA3, 0x42, 0xC5, 0xDB, 0xA5, 0x0C, 0xF6, 0xAA, 0x77, 0xBD, 0xD9, 0x38, 0x93, 0xC3, + 0x22, 0x7E, 0x56, 0xC3, 0x48, 0xF7, 0xD1, 0x7F, 0x34, 0x7D, 0x0A, 0x82, 0xDE, 0xFE, 0x0A, 0x0A, + 0x55, 0x50, 0xE9, 0x5F, 0x6F, 0x9A, 0x71, 0xA3, 0x1A, 0xDF, 0xA8, 0x82, 0x6E, 0xFF, 0x7A, 0x70, + 0xD5, 0xDC, 0xF3, 0xF7, 0x01, 0x67, 0xA0, 0x1B, 0x20, 0x5C, 0xE7, 0xF6, 0xB9, 0x39, 0x55, 0x31, + 0x59, 0xAB, 0xB3, 0x23, 0xF4, 0x2A, 0x3B, 0xB0, 0x7F, 0xE8, 0xB4, 0xFC, 0x23, 0xA9, 0x53, 0xA4, + 0xA4, 0xAD, 0x8B, 0x0D, 0x7E, 0x6B, 0x61, 0x23, 0xC3, 0x75, 0x6E, 0xAE, 0x7C, 0xF3, 0x63, 0x9E, + 0xB7, 0x31, 0x6F, 0x1B, 0x91, 0x94, 0x9B, 0x8B, 0x5D, 0xA7, 0x16, 0xFE, 0xB1, 0x9D, 0x8E, 0x87, + 0xAE, 0xFA, 0xD7, 0xEF, 0x28, 0x57, 0x74, 0x91, 0x9C, 0x10, 0xA1, 0x9B, 0x2A, 0x0F, 0x52, 0xE5, + 0x44, 0x7C, 0x99, 0xC5, 0x53, 0x63, 0x8B, 0xB3, 0xCA, 0x1C, 0xDB, 0xF4, 0x5F, 0xF5, 0xAF, 0xBB, + 0x01, 0xB2, 0x8C, 0xBB, 0x56, 0x5D, 0xD0, 0xA2, 0xA9, 0xB2, 0xAD, 0xEE, 0xDB, 0xDE, 0xBE, 0x80, + 0x51, 0x95, 0xE6, 0x3C, 0x32, 0xB0, 0x0D, 0x1B, 0xAB, 0xB0, 0xE4, 0x90, 0x1A, 0xB1, 0x0F, 0x7A, + 0x22, 0x70, 0x38, 0xDB, 0xFB, 0xB6, 0x5E, 0xFF, 0xDB, 0x87, 0xE5, 0x5F, 0xC4, 0x87, 0xA5, 0xE2, + 0x33, 0x65, 0x71, 0xFB, 0xE0, 0xAE, 0x1D, 0x58, 0x47, 0xB0, 0x0A, 0x65, 0x04, 0x2B, 0x33, 0x8B, + 0x84, 0x8E, 0x42, 0x15, 0xB6, 0x46, 0xA1, 0xAA, 0xC6, 0x9D, 0xB2, 0x3B, 0x09, 0x88, 0x9B, 0x49, + 0xA9, 0x75, 0x48, 0x8F, 0x5E, 0xE5, 0xDE, 0xCC, 0xAF, 0xE8, 0x8D, 0xB7, 0x07, 0x96, 0x90, 0x4D, + 0xB8, 0x1C, 0xB2, 0x49, 0x45, 0x7A, 0xB2, 0xB5, 0xAB, 0x81, 0x2B, 0xC5, 0x77, 0x9A, 0xA2, 0x90, + 0xCC, 0x33, 0x74, 0x41, 0x19, 0xA7, 0xDC, 0x3D, 0xF1, 0x8B, 0x5D, 0x1E, 0xDB, 0xD0, 0x8A, 0xFD, + 0x9A, 0x11, 0x81, 0x3E, 0x0A, 0xB3, 0x25, 0x2A, 0x45, 0x06, 0xBA, 0x72, 0x8B, 0x27, 0xCE, 0x2E, + 0x74, 0xD5, 0xAB, 0x65, 0xF7, 0xDA, 0x48, 0x5E, 0x28, 0xB1, 0xE1, 0x51, 0x82, 0xB8, 0xB2, 0x32, + 0x09, 0xC9, 0x9F, 0xC2, 0x24, 0x8E, 0x58, 0xCD, 0x8A, 0x4E, 0xC5, 0x29, 0xA8, 0x03, 0xC8, 0x0B, + 0x12, 0xBE, 0xEB, 0xE5, 0x1A, 0x44, 0xC5, 0xF3, 0xB5, 0x32, 0xD0, 0xA2, 0xAB, 0xA1, 0xBA, 0x26, + 0x96, 0xDB, 0x17, 0xFF, 0xD1, 0xE9, 0x68, 0x3F, 0x6B, 0x59, 0x3C, 0x29, 0x25, 0xA0, 0x14, 0x2D, + 0x90, 0xE9, 0xCD, 0x29, 0xAB, 0x57, 0x9E, 0xDD, 0xD7, 0x88, 0x3F, 0x8E, 0xF9, 0xF8, 0xCC, 0x48, + 0xC5, 0x69, 0xED, 0x54, 0xAF, 0x22, 0x0D, 0x57, 0xD8, 0x76, 0x32, 0x14, 0x8C, 0x38, 0xB2, 0x71, + 0x5D, 0x83, 0x0B, 0x4B, 0x29, 0xDD, 0xF0, 0x2A, 0xCF, 0x95, 0x0C, 0x91, 0x79, 0x42, 0x03, 0xCB, + 0x91, 0xA2, 0x44, 0x44, 0x0D, 0x6D, 0x8D, 0x4B, 0x79, 0x6B, 0x4B, 0xFB, 0xA5, 0x02, 0x3B, 0xB6, + 0x74, 0x65, 0xC5, 0xAE, 0x0C, 0x0C, 0xD4, 0x04, 0xA0, 0x74, 0x19, 0xFA, 0x9B, 0x6B, 0xAF, 0xB4, + 0x76, 0x88, 0xB0, 0x12, 0x91, 0x2C, 0x4F, 0x02, 0xCA, 0x70, 0x81, 0xC1, 0x64, 0xF6, 0x7E, 0xBF, + 0x3B, 0xBC, 0x78, 0x23, 0x40, 0x1E, 0x5D, 0xFC, 0xCB, 0xB3, 0x82, 0x02, 0x7C, 0x19, 0x5A, 0x57, + 0x82, 0x82, 0xDD, 0x14, 0x5E, 0x5C, 0x05, 0x08, 0xE5, 0x57, 0x81, 0x72, 0x51, 0x88, 0x1F, 0x13, + 0x99, 0xC5, 0xD5, 0x33, 0x99, 0xC6, 0xB6, 0x24, 0xD4, 0xA7, 0x5A, 0x6C, 0x22, 0x05, 0x03, 0x80, + 0x52, 0x45, 0xB1, 0x2D, 0xEF, 0xBD, 0xF9, 0xF7, 0xBE, 0xFC, 0x2F, 0xB4, 0x2F, 0xDB, 0xFC, 0xEB, + 0x2A, 0x9E, 0x45, 0xF5, 0xFD, 0x9A, 0x3B, 0x56, 0xB6, 0xB9, 0x69, 0x2A, 0x49, 0xA9, 0x37, 0xED, + 0xB4, 0xEC, 0xCF, 0xB0, 0x72, 0xDF, 0x1E, 0x49, 0xE1, 0xD2, 0x53, 0x3F, 0xA7, 0xB7, 0x0C, 0x25, + 0x8E, 0x8E, 0xCA, 0x3A, 0x34, 0xBE, 0x0B, 0x90, 0x3F, 0xBE, 0x13, 0x3F, 0x6E, 0xD9, 0x8F, 0xDB, + 0x3B, 0x4B, 0x75, 0xED, 0x59, 0xC6, 0x57, 0x48, 0x9C, 0xF3, 0xA4, 0x13, 0xFC, 0x73, 0xB1, 0xA5, + 0x6D, 0xF5, 0xDE, 0xBC, 0xEA, 0xEF, 0x6E, 0xE5, 0x85, 0xEB, 0x53, 0x39, 0x27, 0x93, 0x08, 0xC3, + 0x52, 0x38, 0xA5, 0x94, 0xBE, 0x9A, 0xBD, 0xE5, 0xFA, 0x7A, 0xA5, 0x0C, 0xBA, 0x9F, 0x13, 0xC4, + 0x63, 0xA5, 0x31, 0x00, 0xDC, 0x5D, 0x8B, 0x1B, 0x61, 0x2A, 0x76, 0xBB, 0x14, 0x53, 0x27, 0x9E, + 0xCE, 0x84, 0x68, 0x40, 0x91, 0xCB, 0x77, 0xE1, 0x03, 0xA2, 0xDB, 0x28, 0xA0, 0x57, 0x72, 0xFC, + 0x62, 0x64, 0x05, 0x5A, 0xFA, 0xB7, 0x1C, 0x44, 0xF1, 0x9D, 0xA3, 0x74, 0x9D, 0xE7, 0xB5, 0xB9, + 0x1D, 0x71, 0x1D, 0x2B, 0x51, 0x3A, 0xD6, 0x33, 0xEC, 0x44, 0x55, 0x07, 0x41, 0x23, 0x1C, 0x66, + 0xCA, 0xB6, 0x87, 0xF2, 0xD7, 0x93, 0x48, 0x2B, 0x58, 0x0D, 0x2E, 0x94, 0xB9, 0xD6, 0x6B, 0x50, + 0xF1, 0x2A, 0x60, 0x11, 0xAB, 0x7C, 0x3E, 0x56, 0x98, 0x9B, 0x9B, 0x50, 0x1C, 0xA9, 0xB2, 0x01, + 0xCA, 0x87, 0xA5, 0x29, 0xAB, 0x62, 0x27, 0x5E, 0xC0, 0xFE, 0xBF, 0xEC, 0xFD, 0x09, 0x77, 0xDB, + 0x38, 0xB2, 0x28, 0x8E, 0x7F, 0x15, 0x5B, 0xB7, 0x47, 0x43, 0xB4, 0x20, 0x85, 0xD4, 0xE2, 0x45, + 0x32, 0xED, 0x7F, 0xDA, 0x49, 0xBA, 0xFD, 0x9F, 0x74, 0x92, 0x17, 0xA7, 0x6F, 0xCF, 0x3C, 0xB7, + 0x9E, 0x9B, 0x96, 0x20, 0x0B, 0x2F, 0x34, 0xA9, 0x21, 0xA1, 0x24, 0xBE, 0x36, 0xEF, 0x67, 0xFF, + 0x1D, 0xEC, 0x00, 0x09, 0x52, 0x92, 0x93, 0xB9, 0x33, 0x6F, 0x96, 0x73, 0xA6, 0x23, 0x13, 0x40, + 0xA1, 0x00, 0x14, 0x0A, 0x85, 0x42, 0x2D, 0x2C, 0xFB, 0x0D, 0x9E, 0x17, 0x73, 0x64, 0xF6, 0xA6, + 0x8D, 0x16, 0xFD, 0x09, 0x39, 0xA9, 0x69, 0x2F, 0x7C, 0x37, 0x49, 0xA7, 0x03, 0x74, 0x82, 0xA3, + 0x52, 0xA5, 0x2B, 0x32, 0xED, 0xE1, 0x79, 0x18, 0x86, 0x52, 0x75, 0x53, 0x87, 0x4C, 0xBE, 0x8A, + 0xF1, 0x0C, 0x79, 0x04, 0x06, 0xF4, 0x82, 0x25, 0x2F, 0x93, 0x41, 0xE1, 0xB2, 0xAE, 0xE4, 0x7A, + 0x5E, 0x9D, 0xBE, 0xB0, 0x06, 0x33, 0xA9, 0x2C, 0x9A, 0x4E, 0x6C, 0x97, 0x8A, 0x0D, 0x8E, 0x43, + 0x08, 0x70, 0x2F, 0x8B, 0xC7, 0x47, 0xD6, 0x43, 0x0D, 0x30, 0x4C, 0x17, 0x37, 0x0F, 0x89, 0xD3, + 0xA8, 0x90, 0xCB, 0xE9, 0x59, 0xE8, 0xC3, 0x24, 0xF4, 0x61, 0x14, 0xFA, 0x70, 0xC9, 0x33, 0x0E, + 0xBC, 0xBA, 0xF5, 0x7C, 0x00, 0x67, 0xFC, 0x8F, 0x1F, 0xE8, 0x1F, 0x13, 0xED, 0x0E, 0xED, 0x4F, + 0xD0, 0x09, 0x2B, 0xA0, 0xD7, 0xE1, 0x3B, 0x34, 0xE7, 0x3A, 0x07, 0x2A, 0x11, 0x8A, 0x19, 0xD6, + 0xE6, 0x98, 0xA8, 0x6C, 0x8E, 0x09, 0x7D, 0x95, 0xAC, 0xDD, 0x61, 0x8C, 0x69, 0xE4, 0x92, 0x51, + 0xA5, 0x8B, 0xDB, 0xFD, 0x30, 0x5C, 0xCA, 0x47, 0x68, 0xF5, 0xF9, 0x86, 0x7E, 0xE6, 0x59, 0x0B, + 0x50, 0x37, 0x3B, 0x0D, 0xCA, 0x72, 0xAB, 0x5A, 0x8F, 0xF7, 0x3C, 0x65, 0x50, 0x0E, 0x23, 0x98, + 0x40, 0x02, 0x33, 0x30, 0xB1, 0x89, 0x06, 0x59, 0xF4, 0x21, 0xDC, 0xAD, 0xAF, 0xC8, 0x14, 0x14, + 0x19, 0x0B, 0xF6, 0x9E, 0xC0, 0x65, 0x19, 0xE1, 0xC5, 0x2D, 0x9D, 0x9A, 0x32, 0x3E, 0x45, 0xD2, + 0x71, 0x8C, 0x4C, 0x6C, 0x70, 0xD1, 0x49, 0x9D, 0x4D, 0x9C, 0x4C, 0x5E, 0x56, 0x93, 0x4A, 0x87, + 0x39, 0xB6, 0xFD, 0x8D, 0x06, 0x29, 0xE3, 0xAA, 0x57, 0x80, 0x19, 0xEF, 0xDB, 0x32, 0x98, 0x3A, + 0x31, 0xD2, 0x40, 0xA9, 0xB8, 0xDD, 0x51, 0x78, 0x35, 0x9D, 0x90, 0xEC, 0xFE, 0x21, 0xAA, 0x21, + 0xF3, 0x2B, 0x7F, 0x2A, 0x1C, 0x9B, 0xE9, 0xD9, 0x5B, 0xCC, 0x22, 0x32, 0x5B, 0x4A, 0x56, 0x91, + 0xC6, 0xA8, 0x87, 0x18, 0x0F, 0x15, 0x2E, 0xEE, 0x1C, 0xE7, 0x60, 0xAB, 0xDD, 0x4C, 0x3B, 0xB5, + 0xDF, 0x54, 0x5D, 0xDB, 0x5A, 0x77, 0x5D, 0x9A, 0x14, 0x6C, 0xC2, 0x42, 0x54, 0xC0, 0xCB, 0x6E, + 0x91, 0x18, 0x7C, 0x04, 0x31, 0x9B, 0x9E, 0x7A, 0x64, 0x2D, 0x36, 0xC1, 0xE7, 0x84, 0xB7, 0xE5, + 0xA1, 0xE9, 0x15, 0x1C, 0x3A, 0x81, 0x30, 0x2A, 0xEA, 0xAB, 0xD8, 0x89, 0x20, 0x60, 0x16, 0xEE, + 0x07, 0x62, 0x3B, 0xA2, 0xAB, 0x9C, 0x29, 0x7B, 0x23, 0xCD, 0xE8, 0x96, 0x21, 0x9E, 0x2C, 0x4F, + 0xEA, 0x68, 0x64, 0xB2, 0xD4, 0xAE, 0x8B, 0x98, 0x6F, 0x5E, 0xBE, 0xB3, 0x96, 0x6A, 0x33, 0x8B, + 0xBD, 0xBF, 0xDC, 0x92, 0x22, 0x99, 0x79, 0xF4, 0x7E, 0x18, 0x62, 0xAE, 0x5D, 0xCE, 0xDA, 0xED, + 0x88, 0xBD, 0x34, 0x27, 0xED, 0xB6, 0x47, 0x7F, 0x85, 0x4B, 0x8A, 0x30, 0xBD, 0xF9, 0x5F, 0x05, + 0xF4, 0x33, 0xAB, 0x46, 0x7F, 0x87, 0x4B, 0x36, 0x80, 0x4E, 0x27, 0x9F, 0xC2, 0xFD, 0x08, 0x70, + 0x63, 0x10, 0xD1, 0xF6, 0xCC, 0x6A, 0x3A, 0x66, 0xE9, 0x7E, 0x93, 0x4E, 0x38, 0x2B, 0x8A, 0x88, + 0x81, 0x0D, 0xA6, 0xB5, 0x4E, 0x8A, 0xA0, 0x28, 0x72, 0x12, 0x11, 0x3C, 0xDB, 0xB3, 0x96, 0xCB, + 0x48, 0x3A, 0xB1, 0x1F, 0x94, 0x93, 0x08, 0xC8, 0xA1, 0xE4, 0x7A, 0x72, 0x32, 0x35, 0xB7, 0x7C, + 0x60, 0x4C, 0xFD, 0x15, 0x66, 0x57, 0xFE, 0x54, 0xB2, 0x7F, 0x74, 0x95, 0x77, 0x83, 0x29, 0x43, + 0xE5, 0x2A, 0x98, 0x42, 0x34, 0x31, 0x6A, 0x05, 0x8E, 0x5A, 0x4A, 0xE7, 0xC9, 0xAA, 0xB3, 0x3A, + 0x10, 0xC9, 0xD3, 0x22, 0xA7, 0xA7, 0x05, 0x9A, 0xD8, 0x7F, 0xE7, 0xDD, 0x2E, 0x77, 0x26, 0x77, + 0xF7, 0xAF, 0xEB, 0xFA, 0x90, 0x80, 0x3A, 0x04, 0x32, 0x2B, 0xA5, 0x0A, 0xB3, 0x11, 0x67, 0x50, + 0x20, 0x9A, 0xD0, 0x3F, 0x4E, 0x32, 0xA6, 0xC8, 0xF4, 0x6A, 0xAB, 0xE1, 0x90, 0xA5, 0xFE, 0x92, + 0x5C, 0xE0, 0x0C, 0x5D, 0x69, 0x29, 0x5A, 0x8D, 0x7E, 0x8C, 0xD4, 0x19, 0x8C, 0x8A, 0x62, 0x12, + 0xF3, 0x0B, 0xB8, 0x0F, 0x97, 0x65, 0x37, 0xB9, 0x29, 0x8C, 0x1B, 0xC4, 0xD3, 0xB8, 0x80, 0xA3, + 0x20, 0x18, 0x7E, 0xCD, 0xCB, 0x59, 0xF5, 0xB9, 0x5E, 0xBF, 0x9E, 0x39, 0xCA, 0x9C, 0xFE, 0x2B, + 0x75, 0xD9, 0x4B, 0x79, 0x7A, 0x60, 0x25, 0x75, 0x2A, 0xA3, 0x40, 0x23, 0x79, 0x68, 0x34, 0x5B, + 0xA2, 0xF9, 0x85, 0x2A, 0x30, 0x5F, 0xC0, 0x74, 0x96, 0xA6, 0x68, 0x3E, 0x67, 0x4A, 0x26, 0x7A, + 0x4D, 0x47, 0x09, 0xCA, 0xBC, 0x16, 0x8F, 0xCE, 0x6E, 0xE8, 0x6B, 0x4C, 0xE0, 0xBE, 0xBA, 0xCC, + 0x35, 0x40, 0xB8, 0x89, 0xD7, 0x59, 0x1D, 0x80, 0x40, 0xE8, 0x7C, 0xE6, 0xAB, 0xAC, 0xA2, 0xEA, + 0x61, 0x09, 0x8F, 0xE7, 0xA5, 0x98, 0x28, 0x22, 0x8F, 0xA9, 0x00, 0xA0, 0xDB, 0x94, 0x92, 0x2D, + 0x97, 0x46, 0xAB, 0x6D, 0x4F, 0x4A, 0xB3, 0x50, 0x42, 0x48, 0x5E, 0x86, 0xD4, 0x68, 0x58, 0xB0, + 0x7A, 0xE9, 0xAE, 0xD2, 0x5B, 0x46, 0xB9, 0x08, 0xDE, 0x01, 0x59, 0x82, 0xE9, 0x9F, 0xF1, 0x2C, + 0x4B, 0x49, 0x94, 0x7F, 0x34, 0x43, 0x60, 0xBB, 0x27, 0x5A, 0x47, 0xB2, 0x2E, 0x95, 0xD3, 0xFB, + 0xEF, 0xD1, 0xF1, 0x60, 0xF8, 0xEF, 0xFB, 0xEF, 0xBF, 0xC8, 0xFD, 0xF7, 0xE7, 0x74, 0x9D, 0xD7, + 0x2B, 0xA5, 0x75, 0x6E, 0xE3, 0xE3, 0x23, 0xFF, 0x40, 0x0A, 0x29, 0x8D, 0xBC, 0xC0, 0xCE, 0x2F, + 0x6C, 0xDE, 0x93, 0x4C, 0x3D, 0x22, 0x29, 0x54, 0x26, 0x2D, 0x6D, 0xFF, 0x27, 0x07, 0xE8, 0xF9, + 0x30, 0xD5, 0x99, 0xB6, 0x80, 0xC7, 0x37, 0x9F, 0x4C, 0x71, 0xE2, 0x86, 0xD8, 0x33, 0xF5, 0xB4, + 0xD0, 0x81, 0xCA, 0x46, 0x57, 0xF8, 0xAD, 0x33, 0x15, 0x66, 0x8C, 0x49, 0xB0, 0x89, 0x7B, 0x8F, + 0x56, 0x69, 0x66, 0x8C, 0x43, 0x4B, 0x0C, 0xF6, 0x18, 0x2A, 0xC9, 0xC4, 0xCC, 0x41, 0xF1, 0xCB, + 0x87, 0x4C, 0xAB, 0xD9, 0x34, 0xAE, 0xC7, 0x47, 0x66, 0x9C, 0xE6, 0x0B, 0x03, 0x30, 0x9F, 0xFF, + 0x7D, 0xBA, 0x55, 0xE2, 0x46, 0x23, 0x96, 0x2A, 0x6F, 0xBE, 0x4B, 0x33, 0xA9, 0x2B, 0x93, 0xF6, + 0x24, 0x69, 0x3C, 0x36, 0x9E, 0x30, 0x29, 0x12, 0xCF, 0x76, 0x9A, 0x72, 0x00, 0xB3, 0xF4, 0xB3, + 0x0D, 0x22, 0xD8, 0x1E, 0x84, 0xC0, 0x06, 0x7E, 0x29, 0x23, 0x01, 0xE0, 0x7D, 0x19, 0x28, 0xF3, + 0x6C, 0x8F, 0xE4, 0x31, 0x5B, 0x49, 0xA8, 0x07, 0x33, 0x2F, 0xA0, 0x5F, 0xCB, 0x2E, 0xED, 0x53, + 0x18, 0x55, 0x76, 0x47, 0x54, 0xC0, 0x41, 0x7F, 0xF0, 0xEF, 0xDC, 0xEF, 0xFF, 0x2A, 0xAC, 0xD1, + 0xA2, 0x94, 0x2A, 0x6F, 0x3C, 0x08, 0x8E, 0x07, 0xAE, 0x07, 0x3B, 0xA6, 0x01, 0x1C, 0x8D, 0x8E, + 0x0F, 0xB8, 0xA3, 0xF6, 0xE0, 0x60, 0x74, 0xC0, 0x1D, 0xB5, 0xF9, 0x0B, 0xDF, 0x5C, 0xB1, 0xD5, + 0xEB, 0x10, 0x7B, 0x87, 0xFD, 0xBE, 0x60, 0xAB, 0xEB, 0x9D, 0x9E, 0xF8, 0x84, 0x83, 0x6B, 0x0C, + 0xE7, 0x4C, 0xE8, 0xB6, 0xDF, 0xFB, 0x58, 0x10, 0xAF, 0x75, 0xC9, 0x89, 0xD8, 0xE4, 0xBE, 0xB9, + 0x7A, 0x74, 0xA0, 0x67, 0x3E, 0x8F, 0x57, 0xF6, 0x21, 0xCA, 0x3F, 0x32, 0x6D, 0xD4, 0x75, 0xEF, + 0x05, 0xBA, 0x49, 0xD7, 0xC9, 0x0C, 0xCD, 0x2F, 0xE6, 0x31, 0xFB, 0xAE, 0xE4, 0xB8, 0x77, 0x91, + 0x2D, 0xC6, 0x25, 0x08, 0xCD, 0xF3, 0x57, 0xEB, 0x38, 0x7E, 0xCF, 0x23, 0x9C, 0x99, 0xB9, 0xE3, + 0xDF, 0xA0, 0x2F, 0x84, 0x4F, 0x21, 0x4F, 0xFB, 0xF2, 0x36, 0x89, 0xEF, 0x75, 0x9E, 0x76, 0xD6, + 0x52, 0x3D, 0xB1, 0x57, 0x9A, 0x73, 0xBE, 0xF3, 0xAB, 0xF9, 0x44, 0x29, 0xBE, 0xFD, 0x64, 0xBF, + 0x54, 0x9A, 0xEF, 0xEB, 0x44, 0xA5, 0xC8, 0x16, 0xE2, 0x24, 0x4A, 0xE6, 0xF2, 0x67, 0xD9, 0xCC, + 0x77, 0xBC, 0x1F, 0x14, 0xEA, 0x81, 0x4C, 0x1B, 0xCF, 0xED, 0xFA, 0xDC, 0xE9, 0x6E, 0xE9, 0x00, + 0x69, 0x3D, 0x79, 0xD2, 0x01, 0x33, 0x63, 0xD6, 0xB9, 0x4C, 0xE4, 0xBB, 0x6B, 0xBF, 0x4D, 0xED, + 0x6B, 0xC1, 0x3B, 0x71, 0xD8, 0xB5, 0xCF, 0x52, 0x1F, 0x15, 0x98, 0x3C, 0xD2, 0x1D, 0xCF, 0xF7, + 0xB3, 0x0B, 0xEC, 0x6A, 0xBB, 0x0A, 0x38, 0xB3, 0x2F, 0x05, 0xF4, 0x61, 0xCE, 0xB6, 0x09, 0x1A, + 0xB3, 0x94, 0x1E, 0x94, 0x47, 0x29, 0xAB, 0x66, 0xC1, 0x48, 0x55, 0x04, 0x17, 0x99, 0xF4, 0x09, + 0x3C, 0x3E, 0x2A, 0x01, 0x1D, 0xC9, 0x1C, 0x87, 0xDC, 0x1D, 0x37, 0xCD, 0x91, 0xC7, 0xF2, 0x37, + 0x9B, 0x2D, 0xE4, 0x7E, 0xC8, 0xD8, 0xFE, 0x48, 0x04, 0x63, 0x50, 0x5F, 0xBD, 0x58, 0x5C, 0x0F, + 0xA0, 0x27, 0xEE, 0x63, 0x66, 0x63, 0x15, 0xD5, 0xA9, 0x26, 0xD5, 0x49, 0xA9, 0x0B, 0x3B, 0x74, + 0xF8, 0x8B, 0x55, 0xF6, 0x73, 0x9A, 0x60, 0x92, 0xF2, 0xAE, 0x97, 0xBD, 0xCB, 0xD2, 0x67, 0xD5, + 0x77, 0x5D, 0xBB, 0x5E, 0x8E, 0xF4, 0xE5, 0x47, 0xDF, 0x0B, 0x9A, 0x43, 0x3C, 0xD6, 0xA0, 0x5A, + 0x86, 0x5D, 0xAE, 0x15, 0xB1, 0x85, 0x64, 0xC1, 0x0F, 0x8D, 0x1B, 0xC8, 0x42, 0xB3, 0x07, 0x57, + 0xEE, 0x9D, 0x48, 0xA8, 0x63, 0x29, 0x15, 0xF0, 0x2B, 0x30, 0xB3, 0xFB, 0xA3, 0x47, 0x90, 0xF7, + 0xD5, 0x4B, 0x2A, 0xA2, 0x72, 0x15, 0xD5, 0x6E, 0xF1, 0x37, 0x48, 0x1B, 0xE4, 0x16, 0xD8, 0xCA, + 0xEF, 0xED, 0x95, 0x59, 0xAF, 0x84, 0x75, 0xAC, 0x42, 0xCE, 0x28, 0x6B, 0x51, 0x06, 0xF2, 0xEF, + 0xC5, 0x67, 0x34, 0xDF, 0x61, 0x5E, 0xCB, 0x20, 0xEE, 0xD2, 0x4F, 0x3B, 0xB5, 0xC7, 0xF5, 0x56, + 0x14, 0xB3, 0x75, 0x4E, 0xD2, 0x3B, 0x66, 0x10, 0x9D, 0xB7, 0x60, 0xAB, 0xDE, 0x77, 0xAB, 0x05, + 0x5B, 0x56, 0xD2, 0x15, 0xFA, 0xB7, 0x4A, 0x01, 0x21, 0x2C, 0x30, 0xAA, 0xE6, 0x18, 0xFC, 0xE7, + 0xAF, 0x66, 0x25, 0x1D, 0x76, 0xBD, 0x05, 0x5B, 0x2E, 0xEF, 0x17, 0x69, 0xC3, 0xC1, 0x2F, 0x21, + 0x62, 0xD9, 0xA1, 0x31, 0xE9, 0x82, 0x2E, 0x23, 0x6E, 0x96, 0x17, 0x59, 0x29, 0xB5, 0xAC, 0x99, + 0xA8, 0xA1, 0x95, 0xDA, 0xA9, 0x50, 0xD1, 0xCF, 0x5A, 0xB0, 0x65, 0xC4, 0x16, 0xB3, 0x8C, 0x4A, + 0x74, 0xFC, 0xCF, 0x5C, 0xD1, 0x7B, 0xEF, 0x1E, 0x1A, 0x3F, 0xF7, 0x7D, 0x77, 0xE2, 0xA2, 0x59, + 0x2F, 0x9A, 0xCF, 0xB5, 0x20, 0xF0, 0x22, 0xBD, 0x93, 0x9B, 0x19, 0x68, 0xB6, 0xD3, 0xCA, 0xD8, + 0xE0, 0x4C, 0xAD, 0xC6, 0xA6, 0xFD, 0x5D, 0xEE, 0x6A, 0x5E, 0xC9, 0x80, 0xD5, 0x40, 0x28, 0xAD, + 0x8B, 0x84, 0xA0, 0x2C, 0xE7, 0xE7, 0xEE, 0xDB, 0x9B, 0x1C, 0x65, 0x9F, 0x50, 0xD6, 0xC2, 0xC9, + 0x9E, 0x62, 0x46, 0x4A, 0xB9, 0x4E, 0xB9, 0x96, 0xFC, 0xDA, 0x73, 0x35, 0xAB, 0xE4, 0x72, 0x32, + 0x2B, 0x09, 0x7C, 0x2D, 0x4D, 0x1A, 0x00, 0xF0, 0x81, 0x2C, 0x29, 0x32, 0x69, 0x3C, 0x1F, 0xFB, + 0x05, 0x98, 0xA0, 0x5E, 0xCA, 0x81, 0x79, 0xA4, 0x3C, 0x2C, 0xEB, 0x70, 0x60, 0x1C, 0x7E, 0x96, + 0x26, 0x09, 0xB3, 0x2E, 0x28, 0x44, 0x30, 0xB3, 0xB9, 0x99, 0x43, 0xC9, 0xD2, 0x44, 0x4B, 0xDE, + 0x62, 0xDC, 0x41, 0x8A, 0x06, 0x24, 0xE5, 0x05, 0x58, 0x49, 0x49, 0x9A, 0x21, 0x31, 0xA7, 0x6A, + 0xD9, 0x22, 0xB9, 0x3D, 0x13, 0x1F, 0x0D, 0x20, 0x6C, 0x79, 0xC6, 0xFB, 0xE5, 0x9A, 0x25, 0xC1, + 0x4B, 0x3E, 0xDD, 0x34, 0xDF, 0x11, 0xDD, 0x75, 0x94, 0xC1, 0x88, 0x0C, 0x29, 0x21, 0x81, 0x4A, + 0xB9, 0xBA, 0x2C, 0xCB, 0x29, 0x2D, 0x55, 0x59, 0x4A, 0xEC, 0x2D, 0xE2, 0x75, 0xBE, 0xD4, 0xB9, + 0xD9, 0x34, 0x6D, 0xFB, 0x25, 0x01, 0xB4, 0x1B, 0x80, 0x7A, 0x41, 0x11, 0x14, 0x66, 0x53, 0x26, + 0xD5, 0xD2, 0xAF, 0xA5, 0x59, 0x3C, 0xAB, 0x6B, 0xEF, 0x8F, 0x3D, 0xAC, 0xE2, 0xEC, 0xD5, 0x49, + 0x9B, 0x41, 0xCD, 0x41, 0x2E, 0xB1, 0x36, 0xCC, 0xCC, 0x24, 0xCE, 0x80, 0xC5, 0x31, 0xB6, 0xE3, + 0x31, 0xDA, 0xF4, 0x60, 0x98, 0x9D, 0x08, 0x02, 0x29, 0xD5, 0x6F, 0x12, 0x71, 0xAB, 0x8D, 0x6B, + 0x62, 0xE3, 0xB8, 0xC4, 0xDB, 0x5E, 0xCE, 0x4D, 0x71, 0x5D, 0x45, 0x28, 0x99, 0xBB, 0x0B, 0xCA, + 0x92, 0x6F, 0x23, 0x7A, 0xC6, 0x94, 0xB9, 0xE7, 0x54, 0x92, 0x57, 0xAD, 0x8C, 0xC9, 0xAC, 0xCB, + 0x84, 0x18, 0x8E, 0x98, 0x04, 0x4E, 0x94, 0x38, 0xA5, 0x84, 0xC6, 0xA6, 0x4A, 0xB5, 0x37, 0x07, + 0x4A, 0x30, 0x95, 0xC8, 0xCA, 0xF2, 0xAA, 0x23, 0x67, 0x85, 0x42, 0x7E, 0x9B, 0x9C, 0xB3, 0xAB, + 0x82, 0xE0, 0xF9, 0x60, 0x43, 0x34, 0xCF, 0xF2, 0xBA, 0x6E, 0x47, 0xD1, 0xAE, 0x8E, 0x40, 0xE1, + 0xFC, 0xBC, 0x91, 0x7E, 0x9A, 0x72, 0x60, 0x69, 0x1D, 0xB2, 0xBA, 0x11, 0xC9, 0x1D, 0xBB, 0xA1, + 0xBD, 0x6D, 0x3D, 0x68, 0x5D, 0x9F, 0xF4, 0x2A, 0x56, 0xEE, 0x29, 0x6C, 0x69, 0x6A, 0xE1, 0xB3, + 0x20, 0xD7, 0xB9, 0x74, 0xC5, 0x53, 0x1C, 0x73, 0x7F, 0xDF, 0x6E, 0x51, 0xE4, 0x88, 0xA8, 0x4A, + 0x88, 0xEB, 0x3C, 0xC8, 0x44, 0x0A, 0x6F, 0xA4, 0x41, 0x78, 0xA3, 0xA8, 0x69, 0x49, 0x1C, 0xDA, + 0x15, 0x43, 0x54, 0xFA, 0x50, 0x4E, 0x2D, 0xAA, 0x4F, 0x13, 0x8B, 0xB7, 0x88, 0x7D, 0xC3, 0x37, + 0xC9, 0xBE, 0xA1, 0xFD, 0xAE, 0xD9, 0x03, 0xBE, 0x53, 0x30, 0x88, 0xE6, 0x73, 0xF1, 0xC7, 0x79, + 0xC4, 0xF3, 0x5B, 0x97, 0x0D, 0xD8, 0x2B, 0x6C, 0xC6, 0xD9, 0xA4, 0xB0, 0xE1, 0x6E, 0xCF, 0xF0, + 0xB6, 0xA1, 0x4E, 0xEE, 0x89, 0x44, 0x45, 0xB1, 0x75, 0x86, 0x9E, 0x93, 0x38, 0xA2, 0xC7, 0x1A, + 0x13, 0xA1, 0x21, 0x99, 0x54, 0xE8, 0x50, 0xAF, 0x48, 0x55, 0xA2, 0xEE, 0x55, 0x20, 0x55, 0xD6, + 0x69, 0x16, 0xC5, 0xB1, 0x0E, 0xB5, 0x6E, 0xCB, 0x09, 0xDB, 0x45, 0x91, 0xAF, 0x3F, 0xA5, 0x36, + 0xED, 0x99, 0x66, 0xF0, 0x5B, 0x9D, 0x4D, 0x4D, 0x01, 0xDB, 0x4B, 0xDD, 0x96, 0x56, 0xA7, 0x72, + 0x24, 0xE6, 0x88, 0x98, 0x22, 0x53, 0x09, 0x4B, 0xA3, 0x03, 0x00, 0xC6, 0x9B, 0xAA, 0x34, 0x4D, + 0x67, 0x35, 0x24, 0x3C, 0xBF, 0x1E, 0x6D, 0x75, 0x2F, 0x7A, 0x7C, 0x44, 0x75, 0x57, 0x10, 0x3B, + 0x80, 0xFC, 0x93, 0x60, 0xF2, 0xB6, 0xA5, 0xA8, 0xF2, 0x4F, 0x82, 0x24, 0x1A, 0x6F, 0x88, 0x1A, + 0xC7, 0xD4, 0xAE, 0xE5, 0x78, 0xF3, 0xC6, 0x31, 0x59, 0x8D, 0x20, 0xA7, 0x0E, 0xCA, 0x6A, 0x6E, + 0x33, 0xF7, 0x51, 0x19, 0x62, 0x28, 0x51, 0xCF, 0x1B, 0x50, 0xCF, 0x1F, 0x1F, 0xF3, 0xE6, 0x78, + 0xF3, 0xAE, 0x18, 0xD3, 0x4F, 0x5B, 0x38, 0x03, 0x82, 0x8A, 0x39, 0xBD, 0x23, 0x24, 0x79, 0x29, + 0x2E, 0x26, 0x6B, 0x69, 0xFF, 0x1D, 0xBB, 0xBD, 0xBA, 0xE7, 0xCE, 0x58, 0xAF, 0x43, 0x5A, 0xDD, + 0xE9, 0xBE, 0x3D, 0xA2, 0x25, 0x95, 0x70, 0xAF, 0x07, 0x0C, 0x8E, 0xD3, 0x3B, 0xFC, 0x90, 0x16, + 0x95, 0xFC, 0xBD, 0xD7, 0x55, 0xDD, 0xEB, 0xBA, 0x80, 0xC7, 0x83, 0xA0, 0xFF, 0x6F, 0xCD, 0xFB, + 0xBF, 0x88, 0xE6, 0x5D, 0x7B, 0xB2, 0xD6, 0x2B, 0xDF, 0x03, 0x61, 0x7D, 0x3B, 0x1C, 0x1D, 0x94, + 0xAC, 0x6F, 0xB9, 0x3A, 0xDE, 0xCE, 0x0F, 0xAF, 0x75, 0xEF, 0xEC, 0x21, 0x93, 0xE9, 0xDE, 0x8F, + 0x47, 0xBE, 0x48, 0x10, 0xCF, 0xD4, 0xF6, 0x0B, 0xDA, 0xE0, 0x68, 0x18, 0x00, 0xF8, 0x29, 0xE4, + 0xA6, 0x3D, 0xBD, 0x85, 0x30, 0x56, 0x65, 0xA6, 0xA3, 0x01, 0x85, 0x7A, 0xCB, 0x6E, 0xB4, 0xEF, + 0xD1, 0xED, 0xCB, 0x2F, 0x2B, 0xEF, 0x13, 0x6C, 0xDD, 0xB6, 0xB8, 0xF6, 0xBE, 0x9C, 0x26, 0x7E, + 0xBD, 0x59, 0x7B, 0x9F, 0xB0, 0x34, 0xF1, 0xF3, 0xA7, 0x25, 0x89, 0x57, 0x09, 0x92, 0x95, 0xE3, + 0x84, 0x6D, 0x9F, 0xDA, 0x14, 0xED, 0xF3, 0xCE, 0x7C, 0xD4, 0x4A, 0xDC, 0xEE, 0x18, 0x33, 0xD7, + 0xA3, 0x68, 0x53, 0xCA, 0x78, 0x79, 0xF9, 0x98, 0x67, 0xD1, 0xED, 0xE5, 0x2C, 0x4B, 0xE3, 0xF8, + 0xF9, 0x1D, 0x13, 0xCC, 0xE5, 0xB9, 0x8B, 0x12, 0x3A, 0x17, 0x73, 0x2D, 0x5C, 0x35, 0x47, 0x11, + 0x65, 0x48, 0xBE, 0x48, 0x3F, 0x27, 0x1F, 0xF0, 0x1D, 0xBA, 0x24, 0xD1, 0xDD, 0x4A, 0x3B, 0x27, + 0xC5, 0xF3, 0x9F, 0x22, 0x2D, 0xB5, 0xE9, 0x47, 0x83, 0x34, 0x9E, 0x5F, 0xD6, 0x7B, 0x5C, 0x5B, + 0xC5, 0x65, 0xAF, 0xEB, 0xEB, 0x34, 0x79, 0x8D, 0x93, 0xF5, 0x17, 0xF1, 0xE0, 0x27, 0x41, 0xDB, + 0xDA, 0x04, 0xAE, 0x82, 0x75, 0xEA, 0xAF, 0x6B, 0x1B, 0xBB, 0x01, 0x57, 0xB4, 0xE6, 0x54, 0x78, + 0xAD, 0x57, 0x9A, 0xD7, 0x74, 0xEA, 0xC8, 0xAA, 0x5F, 0x06, 0x56, 0xEA, 0xA8, 0x74, 0x3C, 0x6D, + 0xDF, 0x95, 0xB3, 0x61, 0x15, 0x60, 0x65, 0x5C, 0x0C, 0x09, 0x4E, 0x0F, 0xAF, 0x71, 0x82, 0xF2, + 0x9D, 0x07, 0x57, 0x69, 0xEB, 0x04, 0x6B, 0x3B, 0x94, 0xD1, 0xA9, 0xA6, 0x47, 0xA4, 0x54, 0x95, + 0x85, 0x25, 0x15, 0xD3, 0xCF, 0xB2, 0x82, 0x96, 0x5D, 0x59, 0x9B, 0x5F, 0x56, 0x8D, 0x2D, 0x7E, + 0x59, 0xE9, 0xFA, 0x66, 0x3C, 0xCE, 0x34, 0xF9, 0x25, 0x47, 0xD9, 0x45, 0xB2, 0x5A, 0x13, 0x33, + 0xB1, 0xF8, 0xD2, 0xA0, 0x51, 0xC1, 0x41, 0xCB, 0x7E, 0xA5, 0x85, 0x36, 0x58, 0xCA, 0xB0, 0xD2, + 0xEC, 0x6D, 0xB6, 0x59, 0x4E, 0x13, 0xE6, 0x3E, 0x5B, 0x56, 0x9D, 0x09, 0x9F, 0xDA, 0x1A, 0x3D, + 0xB5, 0x0B, 0x9E, 0x4B, 0xE9, 0x5E, 0x02, 0x5A, 0x2A, 0x36, 0x12, 0xAC, 0xF3, 0x1D, 0xED, 0xE9, + 0x29, 0x9C, 0x23, 0xBE, 0x99, 0xD3, 0x52, 0xF8, 0x05, 0x17, 0x02, 0x2A, 0x9E, 0x17, 0x73, 0xF2, + 0xB7, 0xEA, 0xCB, 0x8D, 0x6E, 0xEA, 0x41, 0xD7, 0x0D, 0x09, 0xDC, 0x79, 0xBE, 0xA0, 0x9F, 0x25, + 0xC3, 0x90, 0xD3, 0x98, 0x73, 0x5D, 0x6E, 0x91, 0x21, 0x2A, 0x9C, 0x83, 0x07, 0xF7, 0x0A, 0xCC, + 0x71, 0xCE, 0x47, 0xE1, 0x2E, 0x2F, 0x33, 0xAF, 0xA0, 0x90, 0xA3, 0x7E, 0x28, 0xB3, 0x35, 0xA6, + 0x4D, 0xCC, 0x9B, 0x62, 0x30, 0xF0, 0x29, 0xEA, 0x39, 0x82, 0x35, 0xD8, 0x6D, 0x79, 0x44, 0x84, + 0x8D, 0x2D, 0x5F, 0x26, 0x73, 0xE9, 0xA1, 0x68, 0x46, 0x9E, 0x28, 0xB9, 0x5A, 0xD5, 0x75, 0xA9, + 0xF2, 0x16, 0xD4, 0x80, 0x2E, 0x39, 0x77, 0x3F, 0x3E, 0xA2, 0x2B, 0x9F, 0xFB, 0x73, 0xB3, 0x28, + 0x45, 0xDA, 0xB9, 0x1B, 0xD8, 0xC8, 0xD3, 0x0B, 0xE3, 0x37, 0xC4, 0x82, 0x45, 0x77, 0x31, 0xB2, + 0x2F, 0xB5, 0x5A, 0x93, 0xCD, 0xD9, 0x51, 0x60, 0x1E, 0x5E, 0x31, 0x93, 0xD4, 0x81, 0xD2, 0x7E, + 0x38, 0xE8, 0x8C, 0x5B, 0xBC, 0xEB, 0x51, 0x95, 0x7B, 0xC8, 0x58, 0xDE, 0xA3, 0x13, 0xC2, 0x22, + 0x41, 0xA9, 0xE4, 0x45, 0x89, 0xF1, 0x55, 0xA5, 0x37, 0x52, 0x76, 0xB2, 0x29, 0xCB, 0x0A, 0x35, + 0x49, 0x4F, 0xD8, 0xD4, 0x4C, 0x52, 0x33, 0xFF, 0x09, 0xD6, 0x8E, 0x03, 0x7C, 0x53, 0x51, 0xD6, + 0xA5, 0x5C, 0x08, 0x52, 0xB8, 0xEF, 0x33, 0x0B, 0xE7, 0x89, 0x4E, 0x54, 0x66, 0x66, 0x48, 0xCA, + 0x42, 0x63, 0xCE, 0x79, 0xCF, 0x42, 0x2A, 0x12, 0xF5, 0x9B, 0xC1, 0xD3, 0xC6, 0xB4, 0x07, 0x96, + 0x8C, 0x29, 0x03, 0xDA, 0x80, 0x9B, 0xC3, 0xED, 0x04, 0x93, 0xEC, 0x44, 0x04, 0x40, 0x9E, 0x64, + 0x36, 0xD6, 0xDA, 0x4F, 0x82, 0x72, 0xE7, 0x0D, 0xC3, 0xC8, 0xE0, 0xBE, 0x0F, 0x26, 0x42, 0xB1, + 0x60, 0xBC, 0xC4, 0xE1, 0xFC, 0xD7, 0x2C, 0x5A, 0xAD, 0xD0, 0x1C, 0x9C, 0xE5, 0x57, 0xB9, 0x56, + 0xE7, 0x77, 0x42, 0x32, 0x56, 0x7E, 0x29, 0x05, 0x5B, 0x90, 0x60, 0xBA, 0x2F, 0x28, 0xCB, 0x89, + 0x04, 0x0F, 0xDC, 0x9C, 0x6D, 0xC0, 0x83, 0x88, 0xF1, 0xF2, 0x68, 0xCF, 0x60, 0x82, 0xDA, 0x6D, + 0x03, 0x89, 0x32, 0x0E, 0x99, 0xC4, 0x21, 0xD3, 0x16, 0xBC, 0x79, 0xEF, 0x2E, 0x5A, 0x31, 0x76, + 0xA8, 0xD2, 0xB0, 0x78, 0xB7, 0xB0, 0xB5, 0xD7, 0x02, 0x32, 0xD2, 0x6C, 0x42, 0x01, 0xB2, 0xA7, + 0x8D, 0xFC, 0xAC, 0xF5, 0x5B, 0xF6, 0x5B, 0xD2, 0x1A, 0xB7, 0x7E, 0x4B, 0x5A, 0xA0, 0x26, 0x1A, + 0x8C, 0xA0, 0xF1, 0x1A, 0x16, 0x53, 0xCF, 0xC5, 0x2C, 0x5D, 0x86, 0x76, 0xEA, 0xAE, 0x9C, 0xBD, + 0xDC, 0xAF, 0xB7, 0x50, 0xAA, 0xED, 0x52, 0xF6, 0xB9, 0xE7, 0x32, 0x7F, 0xEA, 0xAB, 0x2C, 0xBA, + 0x43, 0x4A, 0x75, 0xEE, 0x2C, 0xAD, 0x0F, 0xF0, 0x29, 0x9E, 0x72, 0x32, 0x7E, 0x04, 0xDB, 0xAD, + 0x6C, 0x0D, 0x88, 0xF1, 0x60, 0x44, 0x27, 0x8A, 0x49, 0x41, 0xED, 0x36, 0x2A, 0x87, 0x4C, 0xA0, + 0xFC, 0x42, 0x2C, 0x85, 0x0A, 0x13, 0xE9, 0x14, 0x99, 0xB4, 0x62, 0xD2, 0x6A, 0xAB, 0xD3, 0x0E, + 0x7A, 0x8D, 0x03, 0x2E, 0x8B, 0x7B, 0xB6, 0x98, 0x64, 0x2A, 0xA4, 0x37, 0xB1, 0x2C, 0x24, 0x43, + 0xDB, 0xD4, 0x31, 0xAD, 0xAA, 0xB1, 0x49, 0x23, 0x1F, 0x2A, 0x78, 0x98, 0xBB, 0x18, 0xCF, 0x3E, + 0x5A, 0x71, 0xEE, 0xCA, 0x79, 0x61, 0xA4, 0xD1, 0x21, 0xA7, 0x76, 0x69, 0x74, 0x08, 0x20, 0xDE, + 0xC8, 0x64, 0xF3, 0xED, 0x58, 0xFD, 0xBE, 0x87, 0x59, 0x34, 0x71, 0x02, 0xE4, 0x4A, 0x44, 0x19, + 0xE2, 0xFD, 0x98, 0x88, 0xF1, 0xDB, 0x69, 0xB1, 0x55, 0x64, 0xBE, 0xAF, 0xC6, 0x49, 0xC7, 0xEB, + 0x6B, 0xC0, 0xE8, 0x0A, 0x41, 0x32, 0xE5, 0x58, 0xB9, 0x2B, 0x08, 0x7D, 0x81, 0x72, 0x35, 0x10, + 0x41, 0x4A, 0xF8, 0x39, 0x76, 0x82, 0x59, 0xBC, 0x12, 0xC2, 0xD9, 0x2B, 0x56, 0xDF, 0xED, 0xE0, + 0x25, 0xEA, 0xE0, 0xF3, 0xA7, 0x2C, 0xE6, 0x1F, 0x6F, 0x70, 0x62, 0x55, 0xC7, 0xAA, 0x7A, 0x6D, + 0x95, 0x32, 0xC4, 0x42, 0xE8, 0xA0, 0x7E, 0x4D, 0xB3, 0xF9, 0x73, 0xC2, 0xD5, 0x3B, 0x7C, 0x22, + 0xE9, 0xA5, 0x1F, 0xC3, 0x5C, 0x1D, 0x46, 0x5A, 0x13, 0x25, 0x7F, 0xC9, 0x49, 0x56, 0x97, 0xC1, + 0xDE, 0x6C, 0x9D, 0x65, 0xCC, 0xDA, 0x3D, 0xF9, 0x68, 0xAA, 0x7D, 0xB0, 0xE4, 0xC3, 0x8C, 0x8F, + 0x5A, 0x45, 0xB9, 0x2C, 0xCA, 0x7B, 0x19, 0xE5, 0x22, 0xF4, 0xD4, 0xCC, 0x80, 0x43, 0xF6, 0x28, + 0xC5, 0xB2, 0xBA, 0xCA, 0xB8, 0x96, 0xAD, 0xF7, 0xA5, 0x1B, 0x40, 0xF9, 0xFB, 0xBE, 0x1B, 0x4C, + 0x61, 0x7D, 0x23, 0x11, 0xB2, 0xCA, 0xF3, 0xE1, 0x82, 0x72, 0x72, 0xE6, 0x70, 0xC2, 0xBF, 0x81, + 0x9A, 0x1C, 0x87, 0xCC, 0x4F, 0xC5, 0x0D, 0xD1, 0xB8, 0xC1, 0xED, 0x6B, 0xCD, 0x40, 0xE3, 0x4E, + 0x51, 0x74, 0x9E, 0x28, 0xBD, 0xAE, 0x39, 0xF9, 0x5E, 0xA2, 0x95, 0xAF, 0x4D, 0x9D, 0x81, 0x22, + 0x97, 0x21, 0xAA, 0x4A, 0xAC, 0xDD, 0x11, 0xBB, 0xCB, 0xDF, 0x91, 0x7B, 0x73, 0xD0, 0xEC, 0x52, + 0x63, 0x2A, 0xA4, 0x6B, 0x8E, 0x0E, 0x14, 0x1A, 0x01, 0x82, 0x7C, 0x7A, 0x3A, 0x6B, 0xCF, 0x14, + 0xE7, 0x84, 0x5A, 0xD7, 0x08, 0x79, 0x00, 0xD6, 0x0C, 0x5A, 0x2C, 0xB4, 0x0F, 0x51, 0xCD, 0xA2, + 0xD2, 0x59, 0x69, 0x88, 0x3A, 0x35, 0xDD, 0x71, 0xE8, 0xF6, 0x2D, 0xC6, 0x1A, 0xB8, 0x55, 0x22, + 0x58, 0x81, 0x82, 0x5B, 0xD4, 0xAD, 0x77, 0x89, 0x7F, 0x9A, 0x7A, 0x8F, 0x9E, 0x65, 0x7E, 0x5E, + 0x55, 0xB4, 0xD4, 0x52, 0xA3, 0xB3, 0x80, 0x1E, 0x91, 0x4C, 0xEE, 0xC1, 0x0B, 0x8F, 0xA8, 0xCD, + 0x73, 0xE5, 0x4F, 0xBB, 0x5D, 0x9E, 0x61, 0x82, 0xFF, 0xD3, 0x69, 0x4C, 0xE8, 0xC7, 0x32, 0xDD, + 0x11, 0x3D, 0x18, 0x76, 0x2B, 0x36, 0x55, 0x29, 0x74, 0x44, 0xDC, 0xE5, 0xCE, 0xF3, 0xE1, 0xBC, + 0xD1, 0xB8, 0x7C, 0xC3, 0xF1, 0x0D, 0x9D, 0x63, 0x06, 0x54, 0x62, 0xB5, 0xD9, 0xF7, 0xF6, 0xB6, + 0xE1, 0xCA, 0xF1, 0xF8, 0x34, 0xF4, 0x59, 0xF0, 0x53, 0x7C, 0xE6, 0x8F, 0x3D, 0x72, 0x8A, 0xE9, + 0x56, 0xEB, 0x86, 0xD8, 0xA2, 0x4D, 0xED, 0xE1, 0x05, 0xBB, 0x23, 0x1F, 0x40, 0xFA, 0x7F, 0xF2, + 0x2C, 0x1C, 0xF9, 0x90, 0x3C, 0x63, 0x65, 0xD1, 0x4D, 0xEE, 0x11, 0xC0, 0xC3, 0x64, 0xB1, 0x40, + 0xC6, 0x5E, 0x30, 0xFC, 0x9E, 0x00, 0x50, 0xE4, 0xCB, 0x74, 0x1D, 0xCF, 0x5F, 0xA5, 0xD9, 0x0C, + 0x59, 0x27, 0xA5, 0xD4, 0x6B, 0xF6, 0x70, 0xFE, 0x73, 0x34, 0x3B, 0x43, 0xBD, 0x28, 0x26, 0x7F, + 0x42, 0xF7, 0x9B, 0x03, 0x4F, 0xDF, 0x45, 0x33, 0x61, 0xD2, 0x43, 0xCF, 0x5F, 0x06, 0x58, 0xDF, + 0xA6, 0xC6, 0x88, 0x27, 0x1C, 0xF9, 0x13, 0xBA, 0x2F, 0x0C, 0x45, 0x00, 0x95, 0xCF, 0x84, 0x47, + 0x72, 0xAD, 0xB2, 0x0A, 0xF5, 0x88, 0xFC, 0x0D, 0xBD, 0x3E, 0x0B, 0x5A, 0x71, 0xB3, 0x26, 0x24, + 0x4D, 0xE8, 0x5D, 0xA6, 0xAC, 0x1E, 0x00, 0xED, 0x36, 0x37, 0x09, 0xE1, 0x55, 0x8C, 0xF0, 0x73, + 0xF2, 0x7E, 0x69, 0x46, 0xA4, 0x73, 0x4F, 0x81, 0xCC, 0x10, 0x87, 0x7A, 0x39, 0x49, 0x57, 0xEF, + 0xB2, 0x74, 0x15, 0xDD, 0x46, 0xE2, 0x92, 0x8B, 0x7A, 0xAB, 0x8C, 0x69, 0x48, 0x54, 0x6E, 0x86, + 0x2D, 0xB5, 0x75, 0x54, 0x68, 0x96, 0x33, 0x70, 0x66, 0x6A, 0x05, 0x2E, 0x92, 0x59, 0xC6, 0x88, + 0x26, 0x8A, 0xD9, 0xC4, 0x79, 0x08, 0x8C, 0x03, 0x36, 0x84, 0x39, 0x22, 0x11, 0x8E, 0xAD, 0xCA, + 0x97, 0x38, 0xB9, 0x8D, 0x91, 0xAA, 0xD7, 0xAF, 0xAB, 0xF7, 0x22, 0x5D, 0xDF, 0x18, 0xF5, 0x06, + 0x46, 0x3D, 0xB9, 0x90, 0x8A, 0x11, 0xAC, 0x74, 0x45, 0xA9, 0x49, 0x98, 0xCF, 0x37, 0x4B, 0xCF, + 0xCC, 0x45, 0xAF, 0xAE, 0xEA, 0x83, 0x63, 0x53, 0xD8, 0x3E, 0x57, 0xFA, 0xDC, 0xA8, 0xAF, 0xE3, + 0xF0, 0x39, 0x63, 0xF4, 0x41, 0xC5, 0xFB, 0x56, 0x9D, 0x8A, 0x0A, 0xB8, 0x36, 0xE4, 0x76, 0x70, + 0xD7, 0xAB, 0x96, 0x5B, 0x89, 0x05, 0xAA, 0xAB, 0xCC, 0x6C, 0x8B, 0x3E, 0x45, 0x31, 0xA5, 0xD3, + 0x6C, 0xA3, 0x90, 0x9F, 0x23, 0x22, 0x1B, 0x98, 0xA2, 0xBD, 0x06, 0xE7, 0x01, 0xB6, 0x77, 0x8B, + 0x86, 0xCB, 0xCB, 0x37, 0x9A, 0x53, 0xDE, 0xC1, 0xDF, 0x64, 0x5A, 0xEB, 0x41, 0x6F, 0x9E, 0xD9, + 0xFA, 0xB9, 0x63, 0x47, 0xB5, 0x9A, 0xBD, 0xC6, 0x75, 0xD8, 0xB4, 0x4C, 0x5C, 0xF0, 0x28, 0xEA, + 0x77, 0xDE, 0x43, 0xFD, 0xF1, 0xAD, 0x26, 0xD7, 0x71, 0x74, 0x37, 0xCA, 0x4A, 0xEA, 0x38, 0xB6, + 0x37, 0xAF, 0xC9, 0xF3, 0x6A, 0x05, 0x3C, 0x1F, 0x6E, 0x10, 0x8A, 0x82, 0x06, 0xE5, 0x9F, 0xC1, + 0xE3, 0xCE, 0x8D, 0x6B, 0x94, 0x87, 0xC0, 0xD9, 0x60, 0xEC, 0x37, 0x49, 0x2A, 0xCD, 0xB7, 0xA4, + 0xFD, 0xFA, 0x96, 0x92, 0x75, 0x6E, 0x10, 0xFD, 0x76, 0x8B, 0x29, 0x51, 0xDF, 0xDD, 0x55, 0x30, + 0x05, 0x13, 0xD2, 0x6E, 0xCB, 0x6B, 0xAF, 0x0A, 0xE3, 0xE0, 0xAC, 0x4C, 0x2F, 0x1D, 0x3C, 0x2A, + 0xC5, 0x52, 0x98, 0xFF, 0x34, 0x81, 0xF6, 0xA7, 0xEA, 0xA6, 0x54, 0x53, 0xDE, 0xE9, 0x14, 0x4E, + 0x76, 0xFB, 0x50, 0x15, 0x88, 0xD5, 0x6D, 0x64, 0xDF, 0xD7, 0xF1, 0xD2, 0x5D, 0x6B, 0x16, 0x98, + 0xC2, 0x9B, 0xC1, 0x99, 0xB7, 0xBB, 0xC0, 0x4E, 0x48, 0x23, 0xF0, 0xBE, 0xF5, 0x56, 0x4F, 0x25, + 0xE3, 0xE7, 0x42, 0x09, 0x24, 0xC5, 0x81, 0x12, 0x9D, 0xA8, 0x6B, 0x9E, 0x12, 0x02, 0xF6, 0x3D, + 0x21, 0x18, 0x7C, 0xA5, 0x3C, 0xA0, 0x86, 0x69, 0xBE, 0x20, 0x30, 0x2D, 0x22, 0x3B, 0x74, 0x2F, + 0xEE, 0xEE, 0xD0, 0x1C, 0x47, 0x04, 0x59, 0xA7, 0xEF, 0x36, 0x94, 0x57, 0x16, 0x54, 0xCB, 0x14, + 0x28, 0x83, 0xBB, 0x56, 0x4B, 0x58, 0x2A, 0xB3, 0xBA, 0xB2, 0x60, 0x3A, 0x65, 0x6F, 0xDA, 0x93, + 0xBA, 0x5D, 0xBB, 0x91, 0x0D, 0xD4, 0x20, 0xFF, 0x32, 0x99, 0x03, 0xD3, 0xD5, 0xB9, 0x7C, 0xC6, + 0x4E, 0xFA, 0x4D, 0x0A, 0x8F, 0xB3, 0x06, 0x84, 0x4F, 0x1A, 0xF7, 0x4D, 0x7D, 0x4B, 0x7F, 0x1A, + 0xFA, 0xE3, 0xA6, 0xD2, 0x3A, 0x81, 0x7E, 0x1C, 0x34, 0xA1, 0x2A, 0x09, 0x86, 0x43, 0xFB, 0x90, + 0x8A, 0x9B, 0x62, 0xED, 0xA4, 0xD4, 0xC9, 0x55, 0xF6, 0x24, 0xBB, 0x44, 0x7B, 0x38, 0xD8, 0x6F, + 0xC4, 0xA3, 0x72, 0x86, 0xF0, 0x96, 0xA7, 0x7E, 0xE3, 0x9C, 0xD4, 0x8E, 0xDA, 0x0D, 0x4D, 0xC7, + 0x2D, 0xAD, 0x9B, 0x63, 0x95, 0x9F, 0xA8, 0x49, 0xFF, 0xDE, 0x44, 0x6F, 0x4C, 0x23, 0x62, 0x5D, + 0x40, 0x6B, 0xD4, 0xBC, 0xF5, 0xED, 0x99, 0x36, 0x97, 0x0B, 0xCC, 0xCD, 0x3C, 0x51, 0x04, 0xC9, + 0xAD, 0xE1, 0x88, 0xBC, 0xB4, 0xD3, 0x29, 0x28, 0x2F, 0x16, 0xCF, 0x00, 0xF5, 0xF5, 0x68, 0x9D, + 0xA0, 0xB1, 0x0E, 0x53, 0x22, 0x95, 0x85, 0x4D, 0x4B, 0x5A, 0xAA, 0x3D, 0x3D, 0x75, 0x48, 0xDA, + 0x9A, 0x53, 0xDC, 0xBD, 0x5C, 0x92, 0x69, 0x3B, 0x9F, 0x44, 0xB9, 0x4A, 0x33, 0x62, 0x15, 0x6B, + 0x96, 0x1B, 0xE6, 0xEB, 0xD5, 0x2A, 0x43, 0x79, 0xCE, 0x3F, 0x32, 0xB2, 0x1C, 0xEF, 0x07, 0x05, + 0x28, 0xC5, 0xEB, 0x73, 0xAE, 0x71, 0x2D, 0x3D, 0x7A, 0xDB, 0x51, 0xF2, 0x6E, 0x04, 0x5B, 0xAF, + 0x98, 0xD1, 0x21, 0x43, 0x58, 0x9E, 0x4D, 0x76, 0x8F, 0xAE, 0x8D, 0xF9, 0x0D, 0x51, 0x59, 0xF7, + 0x01, 0xC6, 0x5F, 0x85, 0xAF, 0xDF, 0x8C, 0x98, 0xC0, 0xA7, 0xAC, 0xC3, 0x2F, 0x8A, 0xCA, 0xC3, + 0xB2, 0x3A, 0x2B, 0x8D, 0x9B, 0x63, 0xB7, 0xEE, 0x7A, 0xA9, 0x37, 0xD8, 0xA6, 0x67, 0x03, 0x97, + 0x9E, 0xFD, 0x24, 0x0C, 0xE8, 0x15, 0x7D, 0xE4, 0xFB, 0xF4, 0x7E, 0xB7, 0xED, 0x4D, 0x39, 0x8A, + 0x09, 0x3B, 0x13, 0xE9, 0xB1, 0x27, 0x32, 0x50, 0x1A, 0x04, 0x5D, 0x1F, 0x7F, 0xBD, 0x26, 0x4F, + 0xBE, 0xA9, 0xF6, 0xD8, 0x51, 0x53, 0x83, 0x9E, 0xAE, 0xA3, 0x09, 0xB8, 0x8E, 0xA6, 0xDD, 0xE6, + 0x22, 0xDD, 0xBE, 0x7C, 0xCF, 0x34, 0xFE, 0x34, 0xDF, 0x9D, 0x58, 0x42, 0x21, 0x3A, 0xC1, 0x3C, + 0xCC, 0xD0, 0x25, 0xDD, 0x65, 0xC9, 0x0C, 0x01, 0x16, 0xF7, 0xA5, 0x1B, 0x40, 0x91, 0x31, 0xD4, + 0xD1, 0x9F, 0xC3, 0x4E, 0x60, 0x8E, 0x66, 0xEF, 0x32, 0xF6, 0x8A, 0x4E, 0xE9, 0x2A, 0xEF, 0x45, + 0xAB, 0x55, 0x8C, 0x67, 0x3C, 0x41, 0x20, 0x9B, 0xCE, 0x3F, 0xA1, 0xFB, 0x5C, 0xE6, 0x92, 0x32, + 0x1B, 0x92, 0x0C, 0xDF, 0xDE, 0x22, 0x16, 0xFE, 0x8E, 0x6D, 0x51, 0x2E, 0x91, 0x15, 0xFC, 0x79, + 0x50, 0x28, 0x69, 0xE9, 0x6E, 0x67, 0x85, 0x17, 0x8B, 0x8A, 0x0D, 0xA2, 0x30, 0x4B, 0xAF, 0x2D, + 0xFE, 0x56, 0x8F, 0xB5, 0x10, 0x87, 0x5B, 0x3C, 0x17, 0x4F, 0xF0, 0x19, 0x3D, 0x56, 0xD5, 0xBE, + 0xAA, 0x58, 0xED, 0x28, 0x52, 0xB4, 0xED, 0x75, 0xB8, 0xD6, 0x5C, 0xE7, 0x86, 0x2A, 0x37, 0xB3, + 0x3A, 0xAA, 0xA9, 0xC2, 0x12, 0xE6, 0xD4, 0x41, 0x71, 0xF2, 0xF9, 0x72, 0x05, 0xC5, 0xE4, 0x85, + 0xA5, 0x7F, 0x69, 0x36, 0xC5, 0x4B, 0x83, 0x34, 0xF2, 0x2D, 0x99, 0x2A, 0xC9, 0x91, 0x35, 0x35, + 0x2D, 0x1A, 0x4B, 0x1F, 0x6A, 0x46, 0xA6, 0xCC, 0xC5, 0xCA, 0x46, 0x4E, 0xA4, 0xC6, 0x68, 0x0A, + 0x6F, 0xA9, 0x8D, 0xAD, 0x98, 0x7F, 0x34, 0xDA, 0x49, 0x98, 0x66, 0x2C, 0x15, 0x2B, 0x7E, 0xCB, + 0xC6, 0x05, 0xF5, 0x44, 0xDE, 0xBF, 0x5D, 0xEC, 0x5A, 0x8A, 0xEB, 0x59, 0x9A, 0x7C, 0x42, 0x19, + 0x51, 0x3E, 0x27, 0x69, 0xFC, 0x21, 0x55, 0x31, 0x92, 0x2E, 0x92, 0x39, 0xFA, 0x62, 0x06, 0xB0, + 0x22, 0x56, 0xFC, 0x2A, 0x72, 0x1A, 0xE6, 0xA5, 0xC8, 0x55, 0x3A, 0xBC, 0x5E, 0x5E, 0xB2, 0x4A, + 0x03, 0xD5, 0x88, 0x73, 0x13, 0x1D, 0xD0, 0xC7, 0x11, 0x70, 0xEF, 0x0C, 0x77, 0xBB, 0xE3, 0xEC, + 0x94, 0x72, 0xD6, 0xFD, 0x30, 0xCC, 0xDB, 0x6D, 0x0F, 0x77, 0xC2, 0xAC, 0x1B, 0x18, 0x71, 0xE1, + 0x72, 0x44, 0x2A, 0x4F, 0x52, 0xE6, 0x86, 0x7A, 0xE2, 0xCB, 0x70, 0x8D, 0xDE, 0x1E, 0x29, 0x0D, + 0x7C, 0xD3, 0x5D, 0x1D, 0xBB, 0x95, 0xF4, 0xCD, 0xEC, 0x84, 0xBB, 0x78, 0xD2, 0xC3, 0x40, 0x5F, + 0xBA, 0x78, 0x3B, 0xE7, 0x3B, 0xA6, 0x7A, 0x6B, 0x76, 0x5F, 0x2E, 0x83, 0xB2, 0x46, 0x7F, 0xDF, + 0xDF, 0x0A, 0x0D, 0xAE, 0xF8, 0x17, 0x12, 0xB9, 0xF0, 0x1F, 0xF3, 0x61, 0x1E, 0xEE, 0xFB, 0xCA, + 0xB2, 0xE3, 0xB4, 0x5E, 0x9E, 0xB0, 0x6E, 0x5E, 0x4D, 0x36, 0x57, 0x30, 0x09, 0xAD, 0x58, 0x91, + 0x9C, 0x87, 0x2D, 0xBC, 0xFD, 0xC4, 0x86, 0x91, 0x86, 0xD9, 0x16, 0x16, 0x18, 0x81, 0x0C, 0xA2, + 0x23, 0xD9, 0xFC, 0x46, 0x7A, 0x4E, 0x98, 0xCD, 0x06, 0x80, 0xCB, 0x30, 0x12, 0x3D, 0xCD, 0x98, + 0x09, 0x4A, 0x37, 0x12, 0x61, 0x4B, 0x7D, 0x38, 0x0F, 0x7D, 0x78, 0x1D, 0xFA, 0x70, 0x1D, 0xFA, + 0xCC, 0x22, 0x99, 0xA5, 0xEF, 0x4D, 0x7B, 0xB3, 0x65, 0x94, 0x3D, 0x27, 0x5E, 0x04, 0x44, 0xFA, + 0xAF, 0xE8, 0xD4, 0x6F, 0xB7, 0xCB, 0x85, 0xDD, 0x00, 0x4C, 0x40, 0xD4, 0xED, 0xF2, 0x44, 0xE0, + 0xCB, 0x93, 0x54, 0x3D, 0xC6, 0x97, 0x6A, 0x2E, 0x3B, 0xB4, 0xE6, 0xB2, 0xD3, 0x29, 0x54, 0x66, + 0x5D, 0xC2, 0x10, 0x81, 0x98, 0xFD, 0xC3, 0xB6, 0x47, 0xA2, 0x77, 0x04, 0xCB, 0x07, 0x11, 0x77, + 0x3A, 0x90, 0x74, 0xBB, 0x00, 0xF6, 0xED, 0x42, 0x4C, 0x0B, 0xE7, 0x9D, 0x0E, 0xC4, 0x9D, 0x0E, + 0x50, 0x69, 0xB4, 0x12, 0x23, 0xAC, 0x1E, 0x56, 0xDB, 0x8E, 0x22, 0x96, 0xB3, 0xA4, 0xDA, 0xEB, + 0x4E, 0x98, 0x77, 0x03, 0xB8, 0x64, 0xFF, 0x80, 0x09, 0xA1, 0xE3, 0x61, 0x83, 0x52, 0x2E, 0x8D, + 0x74, 0xEE, 0x28, 0x45, 0x5C, 0xA2, 0x55, 0x94, 0x45, 0x24, 0xCD, 0xBC, 0xC4, 0xC8, 0xAF, 0xAE, + 0x8E, 0x6A, 0xB5, 0xCB, 0xC1, 0x04, 0x3C, 0x34, 0xD7, 0x28, 0x89, 0xC2, 0xF5, 0x01, 0x29, 0x37, + 0xB0, 0x07, 0x35, 0x15, 0x63, 0xC4, 0xC6, 0x72, 0xDD, 0x09, 0x51, 0x37, 0x80, 0x51, 0x97, 0xFE, + 0x03, 0x60, 0xD4, 0xED, 0xD2, 0x52, 0x16, 0xB8, 0x71, 0x82, 0x4F, 0x12, 0xB5, 0x0A, 0xCB, 0x4E, + 0x60, 0xAC, 0xC9, 0x76, 0x03, 0xC5, 0x9D, 0x4D, 0x03, 0x75, 0xD4, 0xD8, 0x7E, 0xA0, 0xFD, 0xE6, + 0x81, 0xCA, 0x65, 0x15, 0x03, 0x5D, 0xF3, 0x81, 0x2E, 0x3B, 0x7C, 0xA0, 0x4B, 0x5E, 0x5A, 0x14, + 0xCB, 0x4E, 0x87, 0x11, 0xF0, 0x22, 0x8C, 0x3A, 0xB3, 0x6E, 0xDC, 0xB9, 0x86, 0x9F, 0x8C, 0xD7, + 0xCB, 0x3A, 0xD1, 0x6E, 0xD9, 0x8D, 0x3A, 0x71, 0x67, 0xDE, 0xBD, 0xEE, 0xAE, 0xB9, 0x28, 0xF7, + 0xF8, 0xD8, 0x6A, 0xB1, 0xEC, 0xF8, 0x39, 0x8B, 0xF1, 0x17, 0xC1, 0x25, 0xA0, 0x02, 0xD3, 0x9D, + 0x08, 0x81, 0x8A, 0xF9, 0x4D, 0x71, 0xD1, 0x6E, 0x0F, 0xFA, 0xFB, 0x82, 0x04, 0xCF, 0xD3, 0x39, + 0x7A, 0x97, 0xE2, 0x84, 0x78, 0x3E, 0xD0, 0xA2, 0x67, 0x79, 0x93, 0x77, 0x95, 0xAC, 0x98, 0x68, + 0xC3, 0x21, 0x01, 0x86, 0xD8, 0x60, 0xEA, 0xB0, 0xA5, 0xD7, 0x8B, 0xAA, 0x0E, 0x4C, 0x70, 0xAC, + 0xDA, 0x97, 0xD3, 0x6E, 0x00, 0x79, 0xFF, 0x94, 0x5D, 0xC0, 0x7D, 0x5F, 0x49, 0xAD, 0x65, 0x41, + 0xCD, 0xD1, 0x94, 0xF0, 0x97, 0xF8, 0xC9, 0xA2, 0x1B, 0x22, 0xF8, 0xA9, 0x13, 0xA2, 0xA2, 0x28, + 0xF0, 0xC2, 0xCB, 0xDB, 0xED, 0x45, 0xE7, 0x53, 0x8D, 0x24, 0x4E, 0x1B, 0xBA, 0xA7, 0x67, 0xAB, + 0x71, 0x95, 0xE7, 0xAD, 0xC3, 0xB1, 0x15, 0x26, 0x60, 0x44, 0xDA, 0x17, 0x10, 0xC3, 0x04, 0xCC, + 0x3D, 0x8B, 0x7E, 0xD3, 0x64, 0xF9, 0x90, 0xC3, 0xE6, 0x73, 0x12, 0xB0, 0xD7, 0x56, 0x2A, 0x43, + 0x7E, 0xEA, 0xE8, 0x78, 0xBD, 0xD2, 0x74, 0x4B, 0xD8, 0xF1, 0x2C, 0x20, 0xFF, 0x3E, 0xFE, 0x54, + 0x14, 0xB6, 0x99, 0x85, 0xCB, 0x52, 0xC5, 0x3A, 0x4A, 0x80, 0x88, 0x67, 0xC9, 0x77, 0x23, 0x9F, + 0xD3, 0x13, 0x7F, 0x02, 0xC4, 0x4F, 0xF7, 0x43, 0x2E, 0xA3, 0x4F, 0xB6, 0x72, 0x5D, 0xB7, 0x2A, + 0x59, 0x1C, 0xCC, 0x58, 0xBA, 0x23, 0x5E, 0x05, 0xD3, 0x6D, 0x4E, 0x68, 0x19, 0xD1, 0xB6, 0x28, + 0x6B, 0xA1, 0x5C, 0x0A, 0x56, 0x35, 0x06, 0xF5, 0x1C, 0x2D, 0x64, 0x21, 0x66, 0x97, 0xC8, 0xC6, + 0x43, 0xF4, 0x78, 0xC8, 0xC6, 0xF1, 0xE0, 0x6E, 0x77, 0xA2, 0x5F, 0x23, 0x39, 0x9A, 0x8D, 0x09, + 0xB0, 0xCC, 0x2E, 0x3A, 0x72, 0x69, 0x6A, 0x93, 0x27, 0x51, 0x14, 0xC4, 0x55, 0xBC, 0x01, 0x87, + 0x4E, 0xA7, 0x5E, 0x37, 0x7F, 0xB5, 0x2D, 0x66, 0x67, 0x02, 0xA9, 0x71, 0x19, 0x39, 0x88, 0xA7, + 0x45, 0xE1, 0x64, 0xA9, 0x5A, 0x97, 0xCC, 0xD3, 0x0E, 0x68, 0x2E, 0xB7, 0xF9, 0xBA, 0xFC, 0xD9, + 0x84, 0xD4, 0xC3, 0xF4, 0x28, 0x7F, 0xBB, 0xF0, 0x90, 0xC1, 0x4E, 0xC1, 0x69, 0xE8, 0x17, 0xB6, + 0x5A, 0xBB, 0xB2, 0xA2, 0xCE, 0x3B, 0x33, 0x45, 0x83, 0xEF, 0x24, 0x66, 0x42, 0xF3, 0x2A, 0x65, + 0x82, 0x06, 0x37, 0x05, 0x13, 0xB4, 0xFF, 0xF0, 0x65, 0xEC, 0xC3, 0xFB, 0x31, 0x33, 0x6C, 0xCB, + 0x49, 0xC1, 0x6C, 0xD6, 0x1E, 0xBE, 0x8C, 0x1B, 0x58, 0x0E, 0xAD, 0x1C, 0x47, 0x39, 0x29, 0x8A, + 0x46, 0xE2, 0xF5, 0xA1, 0x80, 0xD9, 0x60, 0x13, 0x62, 0x59, 0xDA, 0xED, 0x6A, 0x08, 0xE4, 0xF4, + 0x67, 0x91, 0x01, 0x6B, 0x27, 0x2B, 0xEE, 0xB1, 0x36, 0x70, 0x3A, 0x9A, 0x0D, 0x65, 0x1A, 0x52, + 0xCB, 0x25, 0x6D, 0xD6, 0xBB, 0x30, 0xC3, 0xB8, 0xA9, 0x34, 0xA3, 0x55, 0x87, 0xB7, 0x43, 0x5A, + 0xB7, 0x12, 0x1F, 0xEE, 0x88, 0x7E, 0x75, 0xB8, 0xAF, 0x4D, 0xE1, 0xCA, 0xE9, 0xAB, 0xB4, 0x2A, + 0xE0, 0xF0, 0xB0, 0x3F, 0xFA, 0xBA, 0xA4, 0xA4, 0x96, 0x53, 0x5C, 0x48, 0xEA, 0x72, 0xB2, 0xD2, + 0x92, 0x0A, 0x02, 0xA4, 0x34, 0x08, 0xFA, 0xC1, 0x0A, 0x64, 0x47, 0x5C, 0xE3, 0x91, 0x9D, 0xD4, + 0x26, 0x29, 0xCA, 0x43, 0xEC, 0x1D, 0x0D, 0x86, 0x03, 0x96, 0xE5, 0xB4, 0x5C, 0xD3, 0xF3, 0x61, + 0x2E, 0xB2, 0xAF, 0x08, 0xCF, 0xC0, 0x34, 0x03, 0x5E, 0xAB, 0x54, 0xAD, 0xC5, 0x86, 0xE6, 0xE8, + 0xBB, 0xAE, 0x79, 0xA5, 0x26, 0x87, 0x60, 0x8D, 0xA6, 0xA6, 0xAD, 0x59, 0x87, 0xB7, 0xB2, 0x27, + 0xA5, 0xA6, 0x99, 0x55, 0x89, 0xB7, 0xAB, 0x4C, 0x70, 0x4D, 0xD3, 0x72, 0x3D, 0x31, 0x5A, 0xF7, + 0xC2, 0x35, 0x4C, 0x58, 0xB5, 0x76, 0xAB, 0x4A, 0x12, 0x35, 0xED, 0xCD, 0x3A, 0x2D, 0x50, 0xC0, + 0x83, 0xC3, 0x41, 0xF0, 0x6F, 0xB7, 0xC9, 0x7F, 0x11, 0xB7, 0xC9, 0x12, 0xCF, 0x90, 0x19, 0x88, + 0x9F, 0xBF, 0xB9, 0xBC, 0xE0, 0x69, 0x88, 0x2F, 0xAB, 0x8E, 0x94, 0x87, 0xFD, 0xC1, 0xB1, 0x88, + 0x62, 0xE8, 0x8F, 0x46, 0x32, 0x8A, 0xE1, 0x81, 0x2F, 0x5D, 0x29, 0x87, 0xDC, 0x93, 0x92, 0xFB, + 0x4F, 0xC6, 0x21, 0xCB, 0xF4, 0xAD, 0x12, 0xE2, 0xB7, 0xFE, 0x63, 0xC1, 0xFE, 0xD7, 0x02, 0x70, + 0x5E, 0x29, 0xF2, 0xD9, 0xFF, 0x5A, 0x00, 0x5E, 0xD7, 0xB7, 0x5A, 0xD7, 0xB7, 0x5A, 0x84, 0x2C, + 0x6D, 0x6D, 0x2B, 0xBB, 0xBD, 0x89, 0xBC, 0xFE, 0x68, 0x04, 0xF7, 0xF4, 0x7F, 0xFC, 0xDE, 0x00, + 0xB4, 0x20, 0x2D, 0x19, 0x0F, 0xFB, 0xC7, 0xC3, 0xE3, 0x83, 0xC3, 0x20, 0x38, 0x2C, 0x26, 0xEE, + 0x21, 0x8B, 0x89, 0x5C, 0x64, 0x08, 0xC9, 0xC0, 0x64, 0x4A, 0x8E, 0xBE, 0x2A, 0x77, 0xDF, 0x47, + 0x83, 0xE1, 0xE0, 0xA0, 0x05, 0x60, 0xB9, 0x60, 0x36, 0x13, 0x78, 0x95, 0x0B, 0x86, 0xE8, 0x38, + 0xF2, 0x9D, 0x2D, 0x86, 0x91, 0xBB, 0xC5, 0x60, 0x78, 0x30, 0x8A, 0x86, 0x8E, 0x82, 0xC3, 0xD1, + 0xC8, 0x3F, 0xBC, 0x71, 0x14, 0xF8, 0x07, 0xC7, 0x47, 0xC7, 0x91, 0xA3, 0x60, 0x3E, 0x98, 0x1F, + 0xCE, 0x16, 0x8E, 0x82, 0xD1, 0x68, 0x74, 0x38, 0x1A, 0x38, 0x0A, 0xD0, 0xA2, 0x7F, 0xDC, 0x3F, + 0x76, 0x14, 0x1C, 0x45, 0xA8, 0x3F, 0x70, 0x61, 0xB5, 0x98, 0xA1, 0xE3, 0xA1, 0xAB, 0x8F, 0xC3, + 0xFE, 0xF1, 0xC2, 0xD9, 0x79, 0x34, 0x3F, 0x5C, 0x44, 0x47, 0xCE, 0x91, 0xA3, 0x3E, 0xEA, 0xBB, + 0xB0, 0xA2, 0xFF, 0x9B, 0xB5, 0xC0, 0x14, 0x32, 0x11, 0xE3, 0x78, 0x04, 0x83, 0xC1, 0x08, 0x06, + 0x87, 0x23, 0xD8, 0x0F, 0x46, 0xB0, 0x3F, 0x1A, 0x69, 0x0F, 0x1B, 0x1C, 0xFA, 0x13, 0x7C, 0xD2, + 0x0F, 0x0E, 0x26, 0x58, 0xAB, 0xF2, 0xF2, 0x90, 0x5C, 0xE1, 0x67, 0x83, 0x83, 0x3F, 0x1C, 0x3C, + 0xFA, 0x53, 0xBA, 0xFD, 0xAE, 0xF0, 0x33, 0xF1, 0x47, 0x42, 0xFF, 0xF8, 0xC3, 0xC1, 0x74, 0x22, + 0x22, 0xAF, 0x33, 0xAA, 0x62, 0x4A, 0x8D, 0x24, 0x41, 0x31, 0x43, 0x22, 0xCF, 0x3D, 0x9E, 0x9D, + 0x81, 0x93, 0x94, 0x55, 0xF8, 0x9E, 0x92, 0x1F, 0x2F, 0x2D, 0xCC, 0xB4, 0x0A, 0xFE, 0x84, 0x9C, + 0xF4, 0x87, 0x2C, 0xDF, 0x81, 0xBA, 0x48, 0x1C, 0x75, 0x02, 0xFF, 0x7B, 0xD2, 0xDC, 0x11, 0x86, + 0x18, 0xE2, 0xDA, 0x8E, 0x78, 0x69, 0xA1, 0x74, 0x86, 0xA8, 0x00, 0x1E, 0xE0, 0x1A, 0xA3, 0x4F, + 0x25, 0x0F, 0xE3, 0x65, 0xAD, 0x87, 0xF1, 0x86, 0xF4, 0x7F, 0x4A, 0x53, 0x6C, 0x05, 0xFC, 0x72, + 0x38, 0x66, 0x46, 0xB5, 0x19, 0xFE, 0x4A, 0xAD, 0x4A, 0xA0, 0x2C, 0x67, 0xCC, 0x99, 0x88, 0xD2, + 0x76, 0x1E, 0xCD, 0x96, 0x48, 0xC4, 0x4F, 0x64, 0xD5, 0xCE, 0xCD, 0x02, 0x55, 0x99, 0x01, 0xA5, + 0xD7, 0x2E, 0x74, 0xCB, 0xEC, 0x3E, 0xC7, 0x31, 0xBC, 0x89, 0x66, 0x1F, 0xC5, 0x1F, 0x73, 0xC8, + 0x23, 0xAC, 0x8D, 0xAF, 0xC5, 0x8F, 0xE7, 0xB3, 0x19, 0x4A, 0xC8, 0x78, 0x0D, 0x95, 0x7C, 0xF9, + 0x4A, 0x37, 0x15, 0x62, 0xA8, 0x2A, 0xFA, 0x41, 0x01, 0xFA, 0x90, 0x45, 0x49, 0xCE, 0x33, 0xAE, + 0x8D, 0x17, 0xAE, 0x0A, 0x6F, 0x57, 0xD1, 0x5F, 0xD7, 0x88, 0x2E, 0x10, 0xC5, 0xA8, 0x77, 0x13, + 0xA3, 0x64, 0xEE, 0xCD, 0xE1, 0x02, 0xE8, 0xCA, 0x17, 0x89, 0x50, 0x60, 0x6F, 0x82, 0x5A, 0xAD, + 0x58, 0x0F, 0x3D, 0x4A, 0x72, 0x3C, 0x76, 0xB2, 0x31, 0xA1, 0xDE, 0x00, 0xD0, 0x9A, 0xD0, 0xB1, + 0x63, 0x92, 0x65, 0x58, 0xD3, 0xF5, 0x6A, 0xCE, 0xB2, 0x83, 0xE7, 0x24, 0xCD, 0x64, 0x54, 0x37, + 0x65, 0x0F, 0x87, 0x08, 0x3B, 0x2C, 0xDC, 0xE9, 0x13, 0x8D, 0x5B, 0x0C, 0xA1, 0xB5, 0xB6, 0xCC, + 0xB9, 0x78, 0xB9, 0x42, 0x33, 0xBC, 0xC0, 0x33, 0x2B, 0x44, 0x9E, 0x3B, 0x5A, 0x9F, 0x19, 0x7F, + 0xDF, 0x42, 0x5E, 0x06, 0xA7, 0xA8, 0x73, 0x62, 0xDD, 0xB2, 0x53, 0x86, 0xB6, 0xD5, 0xCB, 0x8E, + 0x23, 0x96, 0xD9, 0x1F, 0x67, 0x62, 0xDE, 0x6C, 0x6F, 0x4C, 0xFE, 0xB5, 0xD0, 0x40, 0x51, 0xF8, + 0x50, 0x94, 0x15, 0x0A, 0xBC, 0x12, 0x53, 0x24, 0xF4, 0x34, 0x41, 0x87, 0xB7, 0x1E, 0x32, 0xFE, + 0x84, 0x31, 0x80, 0xB8, 0xA7, 0x49, 0x9C, 0x15, 0xEB, 0x3F, 0xE1, 0x9C, 0x16, 0x73, 0x5A, 0x67, + 0x45, 0xFC, 0x27, 0xBC, 0xD6, 0x9F, 0xF9, 0x16, 0x30, 0x0A, 0xF9, 0x07, 0xB8, 0xA6, 0x55, 0x9A, + 0x69, 0x9F, 0x35, 0x72, 0x54, 0xA1, 0x94, 0xE8, 0x6C, 0xCB, 0x09, 0x37, 0xB4, 0x09, 0xD7, 0x44, + 0x7F, 0x63, 0x97, 0x16, 0xE0, 0xC6, 0x2D, 0x64, 0x23, 0x57, 0xAD, 0xFA, 0xB5, 0x5D, 0xED, 0x34, + 0x96, 0x46, 0x4C, 0xAD, 0x8E, 0x34, 0xFF, 0x09, 0x91, 0xEB, 0xEB, 0x99, 0x35, 0x2C, 0xFD, 0x1D, + 0xA6, 0xBD, 0x37, 0xBF, 0xBC, 0x7E, 0xCD, 0x77, 0x3B, 0x90, 0xBC, 0xCB, 0x0D, 0x38, 0x0C, 0xCD, + 0xCA, 0xED, 0xB6, 0xE7, 0xAE, 0x26, 0x52, 0x3D, 0x40, 0x39, 0x44, 0x9C, 0xF3, 0x31, 0x7B, 0x1B, + 0x67, 0x4E, 0x2B, 0x1A, 0x7B, 0x83, 0xC9, 0x46, 0x2A, 0x92, 0xF0, 0xD3, 0x55, 0x34, 0xC3, 0xE4, + 0x7E, 0x23, 0x78, 0x2A, 0xDF, 0xE2, 0x85, 0xD7, 0x84, 0x56, 0xF3, 0x7C, 0xD7, 0xA1, 0xD7, 0x4C, + 0x4F, 0x0D, 0x68, 0x36, 0x36, 0x14, 0xE8, 0xE2, 0x1E, 0x65, 0xCE, 0x6E, 0xB1, 0x5A, 0x31, 0x67, + 0x5E, 0xE9, 0xCA, 0x9F, 0xF2, 0x7D, 0x1C, 0x47, 0xB3, 0x8F, 0xD0, 0xD9, 0x82, 0x67, 0x8C, 0xE1, + 0xB5, 0x03, 0x5E, 0x3B, 0x43, 0xF3, 0x9A, 0xBA, 0x81, 0xAE, 0xDB, 0xE7, 0x75, 0x6F, 0x33, 0x84, + 0x92, 0x9A, 0xDA, 0x7D, 0x5D, 0x7B, 0xC0, 0x6B, 0xDF, 0xA3, 0x38, 0x4E, 0x3F, 0xD7, 0x54, 0x1F, + 0xE8, 0xEA, 0x43, 0x89, 0xF6, 0x1A, 0xD5, 0x54, 0x1E, 0xEA, 0xCA, 0x23, 0x5E, 0xF9, 0x2E, 0xBA, + 0x45, 0x09, 0x89, 0x6A, 0xEA, 0x8F, 0x74, 0xFD, 0x03, 0x5E, 0x7F, 0x76, 0x1F, 0xD5, 0x21, 0x7E, + 0xA0, 0x2B, 0x1F, 0xF2, 0xCA, 0x9F, 0x97, 0x98, 0xD4, 0xA1, 0x72, 0xA8, 0x6B, 0x1F, 0x09, 0xBC, + 0xD9, 0xB3, 0xE4, 0x0F, 0x0D, 0x93, 0x7E, 0xA4, 0xDB, 0x1C, 0x9B, 0x6D, 0xDE, 0xD7, 0x4E, 0xFD, + 0xB1, 0xB1, 0x4C, 0xBE, 0xD9, 0xE4, 0xC7, 0x86, 0x15, 0x08, 0xCC, 0xC5, 0x0D, 0xCC, 0x56, 0x7F, + 0x69, 0x5A, 0x89, 0xC0, 0x58, 0xE7, 0xA0, 0x6F, 0x8F, 0xA9, 0x76, 0x45, 0x02, 0x63, 0xB9, 0x83, + 0x81, 0xD9, 0xE8, 0xE7, 0xC6, 0x95, 0x09, 0x8C, 0x75, 0x0F, 0x86, 0x66, 0xBB, 0xF3, 0xFA, 0x15, + 0x0A, 0x8C, 0xF5, 0x0F, 0x46, 0x66, 0xA3, 0x5F, 0x1B, 0x56, 0x2A, 0x18, 0xB1, 0x04, 0x4E, 0x5C, + 0x70, 0x45, 0xF3, 0xE7, 0x49, 0x8E, 0xB5, 0xDC, 0xAE, 0x5E, 0x7C, 0x38, 0x58, 0x75, 0x57, 0x3F, + 0x28, 0xB5, 0x90, 0x3A, 0x7E, 0xC3, 0x6F, 0xDD, 0x9F, 0x64, 0x27, 0x39, 0x73, 0x56, 0x17, 0x28, + 0x65, 0x9D, 0x40, 0x50, 0x99, 0xD9, 0xF2, 0x2A, 0x9B, 0xD6, 0x20, 0xC6, 0xEA, 0x83, 0xA2, 0x41, + 0x0C, 0xD9, 0x42, 0x94, 0x2A, 0xC9, 0xBE, 0xDA, 0x4B, 0x99, 0x9F, 0xFF, 0x2C, 0xFE, 0x84, 0x6A, + 0x66, 0x3A, 0x65, 0x5B, 0x5F, 0xB7, 0x05, 0x56, 0x6E, 0xF7, 0x80, 0x17, 0x9E, 0xB2, 0x5D, 0x42, + 0x20, 0xFF, 0x8C, 0x65, 0x92, 0xB5, 0x28, 0x47, 0x7B, 0xFD, 0xD1, 0xC1, 0xD8, 0x14, 0x46, 0x4C, + 0x39, 0xA4, 0x8A, 0x86, 0x59, 0x3C, 0xE1, 0x59, 0xC6, 0x04, 0x94, 0x43, 0x1B, 0x8A, 0x21, 0xAE, + 0xB8, 0xA0, 0xE8, 0x62, 0x1B, 0xCA, 0x91, 0x0D, 0x45, 0x48, 0x35, 0x2E, 0x08, 0xBC, 0x48, 0xB4, + 0x9E, 0x73, 0x9F, 0x25, 0xBB, 0x31, 0x5B, 0x6F, 0x34, 0x75, 0xB6, 0x16, 0x65, 0x85, 0xD2, 0x03, + 0x19, 0xB9, 0x16, 0x6B, 0xAA, 0xCB, 0x97, 0xCD, 0x4E, 0x07, 0x81, 0x9D, 0xFB, 0xB9, 0x4B, 0xE7, + 0x78, 0x71, 0x2F, 0xC8, 0x02, 0x81, 0x07, 0xE4, 0x99, 0x20, 0xB6, 0x5F, 0x5A, 0x27, 0x95, 0x39, + 0xC8, 0xC5, 0xBE, 0x20, 0xD5, 0xAC, 0xAF, 0x79, 0x6D, 0xAA, 0x59, 0x3C, 0x79, 0x99, 0x72, 0xAC, + 0x8A, 0xB8, 0x88, 0x94, 0x67, 0x42, 0x9E, 0x73, 0x45, 0x51, 0x4C, 0xA4, 0xE2, 0x6A, 0xEF, 0x96, + 0xEB, 0xB3, 0x6C, 0x42, 0x24, 0xD9, 0xBD, 0x14, 0x99, 0xED, 0xBB, 0x3E, 0x32, 0x12, 0x01, 0xAA, + 0xC4, 0x7F, 0xC5, 0x27, 0x99, 0xA0, 0x65, 0xE6, 0x48, 0x44, 0xFE, 0xA9, 0xA2, 0xDB, 0xFA, 0x54, + 0xC0, 0x83, 0xC1, 0xF0, 0xF8, 0xEB, 0x54, 0xEC, 0xE7, 0x38, 0x9B, 0xAD, 0xE3, 0x28, 0x7B, 0x8D, + 0x73, 0xE2, 0xD0, 0x74, 0x33, 0x1D, 0x58, 0x26, 0x93, 0xF0, 0xF3, 0xBB, 0x77, 0xA2, 0x6E, 0xDF, + 0xD9, 0xD6, 0xB7, 0xEF, 0xBB, 0xE8, 0x8B, 0x78, 0xEE, 0x40, 0xF2, 0x06, 0xFD, 0x02, 0xC5, 0x88, + 0x20, 0x71, 0xAF, 0x76, 0x5C, 0xBC, 0xF3, 0x9A, 0x5C, 0x13, 0xAC, 0x59, 0xE8, 0x02, 0x62, 0x5E, + 0xB9, 0xA9, 0x38, 0x93, 0xA3, 0x8C, 0xEC, 0x0C, 0x9F, 0x37, 0x0B, 0x5D, 0x40, 0x6C, 0xF8, 0x1F, + 0x32, 0x7C, 0xB7, 0x33, 0x74, 0xDA, 0x28, 0xAC, 0x02, 0xB0, 0x94, 0x05, 0x51, 0x96, 0x45, 0xF7, + 0x4C, 0x49, 0xF0, 0x9C, 0xFE, 0xF2, 0x4A, 0x33, 0xA8, 0x6E, 0xAF, 0x24, 0xCA, 0x08, 0x33, 0x8E, + 0x51, 0xAE, 0x46, 0xB1, 0xF0, 0x3C, 0x62, 0x97, 0x36, 0xD5, 0xA0, 0x12, 0x45, 0x47, 0x16, 0x14, + 0xB9, 0x55, 0xCD, 0xF2, 0x6B, 0x52, 0xEB, 0xA5, 0x33, 0xD8, 0x2A, 0xFF, 0x0C, 0x8D, 0x1A, 0x02, + 0x25, 0x8D, 0x94, 0x36, 0x41, 0xE6, 0x28, 0xC9, 0xF3, 0x0A, 0x77, 0x3A, 0x80, 0x5C, 0x61, 0xC9, + 0x42, 0xD8, 0x10, 0xAF, 0xD4, 0x73, 0xED, 0xF9, 0xFD, 0x2C, 0xC6, 0x33, 0x6E, 0xE8, 0x83, 0xC1, + 0x74, 0x62, 0xCE, 0x03, 0xA9, 0xA3, 0x20, 0x6B, 0x02, 0xD8, 0x88, 0x63, 0xE7, 0x70, 0x63, 0x3D, + 0xD6, 0xD8, 0x1C, 0x28, 0x3A, 0x35, 0xCB, 0x81, 0x56, 0x6A, 0x99, 0x9F, 0x27, 0xE4, 0x04, 0xF1, + 0xD4, 0xA0, 0x26, 0xDE, 0x53, 0xB9, 0x53, 0xAC, 0x69, 0x47, 0x05, 0xCF, 0xA2, 0x6B, 0x77, 0xDF, + 0x30, 0x54, 0x04, 0xA6, 0x14, 0x2D, 0xD3, 0xC3, 0xBD, 0xB9, 0x76, 0x48, 0x0A, 0x11, 0x14, 0x67, + 0x73, 0x75, 0x6B, 0x70, 0x53, 0x35, 0x69, 0xB1, 0x5C, 0xD5, 0xD2, 0xAC, 0x9E, 0x79, 0x95, 0x49, + 0xED, 0x74, 0xCA, 0x9F, 0xFE, 0x50, 0x6A, 0xE4, 0xD8, 0x0A, 0x9C, 0xA5, 0x07, 0xCA, 0xF6, 0x93, + 0xF7, 0xD7, 0xE9, 0x14, 0x19, 0x9A, 0xDD, 0xCF, 0x58, 0xC8, 0x28, 0x45, 0x64, 0x65, 0xC7, 0x2F, + 0x45, 0xE1, 0x95, 0x74, 0xD8, 0xE7, 0x51, 0xB2, 0x97, 0x26, 0xF1, 0xFD, 0x9E, 0x80, 0xB2, 0xF7, + 0x79, 0x89, 0xE8, 0x04, 0xA3, 0x3D, 0xFE, 0x40, 0xBA, 0x87, 0xF3, 0xBD, 0xC5, 0x3A, 0x8E, 0x5B, + 0x60, 0x52, 0x4A, 0xA3, 0xFA, 0x6D, 0x46, 0x03, 0x77, 0x9A, 0xEE, 0x6E, 0x00, 0xA6, 0x32, 0x27, + 0xE2, 0x9A, 0x79, 0x3C, 0x38, 0x08, 0xB2, 0xBA, 0x04, 0xC5, 0x2A, 0x5D, 0x95, 0xEB, 0x6E, 0xDB, + 0x63, 0x97, 0xF5, 0x29, 0x32, 0x7C, 0xD2, 0xF3, 0xA0, 0xD7, 0xEB, 0x89, 0x4C, 0xA4, 0x3A, 0xD7, + 0x2B, 0x0E, 0xD1, 0x04, 0x9F, 0x58, 0xED, 0x08, 0xDF, 0x99, 0x5B, 0x6C, 0xCA, 0x2D, 0x76, 0x6E, + 0x87, 0xA8, 0xBD, 0xAB, 0xAC, 0x19, 0x9C, 0xDC, 0x5E, 0x78, 0x65, 0x30, 0x73, 0x80, 0x31, 0x82, + 0xD2, 0x3B, 0xC3, 0x52, 0x2D, 0xDB, 0x13, 0x3A, 0x21, 0xA7, 0x21, 0x9A, 0x90, 0x6E, 0x77, 0x33, + 0xAE, 0xA4, 0xA3, 0xC4, 0xE4, 0x2D, 0x90, 0xA6, 0x28, 0x37, 0x64, 0xF1, 0xDD, 0xBC, 0x2B, 0xE9, + 0xA0, 0x43, 0x7C, 0x45, 0x78, 0xF2, 0x57, 0x3B, 0x86, 0x4F, 0xF9, 0xFC, 0x70, 0x0E, 0x5B, 0x59, + 0xB6, 0x00, 0x6B, 0x8B, 0xAA, 0x51, 0x9C, 0x96, 0x77, 0x47, 0xC9, 0xFE, 0xA9, 0x54, 0xBD, 0x5B, + 0xAA, 0x3E, 0x29, 0x93, 0x7D, 0xA7, 0xCC, 0x0B, 0xB6, 0xDD, 0x06, 0x08, 0x98, 0xA6, 0xF6, 0xA2, + 0x5B, 0x6D, 0x98, 0x43, 0x32, 0x7C, 0xC7, 0xE3, 0xBD, 0x51, 0xE9, 0xCF, 0x62, 0xAE, 0xED, 0xB6, + 0x67, 0x63, 0x5B, 0x3D, 0xC3, 0xCA, 0x58, 0x75, 0xB5, 0xA0, 0xE0, 0x42, 0x84, 0xB9, 0xE3, 0x0B, + 0x4F, 0x66, 0x95, 0xF1, 0x98, 0x25, 0x10, 0x24, 0x27, 0xA1, 0xCF, 0x8D, 0xDE, 0xD0, 0x89, 0xFF, + 0xF8, 0x88, 0x4E, 0xED, 0x8E, 0x2B, 0xAC, 0x85, 0xA1, 0xB0, 0x27, 0x5F, 0x75, 0xF7, 0xD2, 0x35, + 0xD9, 0x4B, 0x17, 0x7B, 0x2C, 0x0A, 0x4C, 0x8B, 0xD9, 0x0E, 0xA1, 0x0E, 0x3E, 0xF1, 0x9D, 0x2C, + 0x29, 0x49, 0xC9, 0x1E, 0x43, 0x64, 0x4F, 0xF8, 0x62, 0xE4, 0x7B, 0x38, 0xD9, 0x8B, 0x71, 0x4E, + 0xF6, 0x6E, 0xD0, 0x7D, 0x9A, 0xCC, 0xF7, 0xD8, 0x52, 0xEF, 0xF9, 0x1C, 0x10, 0x3E, 0xF5, 0xF5, + 0x5E, 0xCC, 0x43, 0xD2, 0x0D, 0x26, 0xF9, 0x69, 0xE8, 0x4F, 0x72, 0x49, 0xD5, 0xEC, 0x2C, 0xE8, + 0xE4, 0x1D, 0x61, 0xFC, 0x71, 0xCB, 0xFF, 0x04, 0xDA, 0x32, 0x14, 0x75, 0x48, 0x07, 0x77, 0xAD, + 0xF3, 0x09, 0x2F, 0xBC, 0xFC, 0xD4, 0x67, 0xA7, 0x97, 0xBD, 0x2E, 0xB9, 0xB5, 0x13, 0xCB, 0x44, + 0x34, 0x01, 0x36, 0xFB, 0xA8, 0xAE, 0x47, 0xA7, 0x81, 0x1D, 0xDA, 0x97, 0x0A, 0x9E, 0x15, 0x99, + 0x30, 0xA3, 0xF2, 0xC6, 0x71, 0x14, 0x45, 0xF5, 0x4C, 0x93, 0xC9, 0x2E, 0x2B, 0xFD, 0x23, 0x50, + 0xE6, 0xCF, 0x45, 0x51, 0x12, 0x57, 0x93, 0x02, 0x06, 0xC3, 0xC1, 0xF1, 0xD7, 0xE4, 0xFF, 0x9D, + 0xC5, 0x69, 0x62, 0xA4, 0xFC, 0xE5, 0x7F, 0x2A, 0xA1, 0x1E, 0x79, 0x04, 0xE2, 0x70, 0xC4, 0xA8, + 0x49, 0xBE, 0xD4, 0xEF, 0xCB, 0xD7, 0x78, 0x1D, 0xE2, 0x44, 0xAD, 0x0F, 0x13, 0x8A, 0x7A, 0x38, + 0x17, 0x72, 0x1B, 0x38, 0xBB, 0x9A, 0x8E, 0x1F, 0x0A, 0xC6, 0x5F, 0x84, 0x85, 0x35, 0x25, 0x10, + 0x02, 0xF2, 0xAB, 0x6C, 0x1A, 0xE2, 0x93, 0x30, 0x38, 0x23, 0x57, 0xD9, 0x74, 0x4C, 0xFF, 0xD3, + 0x6E, 0x23, 0x8F, 0xFE, 0x0B, 0x71, 0x37, 0x50, 0x87, 0x58, 0x5E, 0x14, 0xF0, 0xC8, 0x1F, 0x7D, + 0xA5, 0x15, 0xCD, 0xCC, 0x7C, 0x74, 0x08, 0x49, 0x8F, 0xA4, 0xEF, 0xA2, 0xF9, 0x1C, 0xCD, 0x7F, + 0x42, 0x5F, 0x42, 0xD2, 0xCB, 0x6E, 0x6F, 0x22, 0xFE, 0x4F, 0x48, 0xE8, 0x1D, 0x85, 0xFE, 0x97, + 0xDE, 0x51, 0xE8, 0xBF, 0xE2, 0x5D, 0x2E, 0x24, 0x86, 0xA2, 0xB5, 0x7A, 0x49, 0x60, 0x51, 0x88, + 0xAD, 0xC4, 0xFF, 0x29, 0x4F, 0xFE, 0x3F, 0xF9, 0x14, 0x65, 0x7B, 0x4B, 0x38, 0x83, 0xB1, 0xBE, + 0x27, 0xCD, 0x4B, 0x4E, 0x5E, 0xD2, 0x2E, 0x3C, 0x38, 0xD0, 0x47, 0xB7, 0x74, 0xD0, 0xEA, 0x9F, + 0xB5, 0xFC, 0x56, 0x87, 0x1E, 0x0C, 0xAA, 0xF9, 0xB5, 0x65, 0x36, 0x80, 0x4E, 0xC8, 0x99, 0x47, + 0x3A, 0x3D, 0x7F, 0x04, 0x9E, 0x79, 0x88, 0xFD, 0x3B, 0x16, 0xFF, 0x3E, 0x13, 0xDF, 0x0B, 0x0B, + 0x77, 0xFE, 0x98, 0x2E, 0x9E, 0xD7, 0x7D, 0x5F, 0xBC, 0x9E, 0xFB, 0x05, 0xD4, 0x56, 0x09, 0xE0, + 0x01, 0xF1, 0x47, 0xCA, 0xB0, 0x6A, 0x03, 0x62, 0xE5, 0x35, 0xDE, 0x0F, 0xC3, 0xFC, 0xEC, 0xF7, + 0xFF, 0xF8, 0xEE, 0x81, 0x0E, 0xA9, 0xA0, 0xFF, 0x10, 0xFE, 0x0F, 0xE6, 0xFF, 0xE4, 0xA0, 0xF8, + 0x7D, 0x5C, 0x53, 0xFE, 0x7B, 0x01, 0x91, 0x78, 0xED, 0xAC, 0x74, 0x13, 0xF6, 0x47, 0x23, 0xB5, + 0x2D, 0xD0, 0xC9, 0x49, 0x7F, 0xF8, 0x48, 0x4E, 0x4E, 0x82, 0x83, 0x47, 0x7C, 0x72, 0x72, 0xF4, + 0x98, 0x83, 0xD3, 0xD3, 0x53, 0xBF, 0x28, 0xBC, 0xA5, 0xB1, 0x40, 0x8F, 0x8F, 0x9E, 0xB1, 0x5A, + 0x0F, 0x05, 0x00, 0xD6, 0x80, 0xD4, 0xEC, 0x11, 0x6B, 0xF6, 0xA2, 0xD0, 0x88, 0x2C, 0xD3, 0x1F, + 0x8D, 0xBE, 0x27, 0x00, 0x5E, 0x65, 0x30, 0x81, 0xE9, 0x34, 0x8C, 0xE9, 0x1C, 0x08, 0x80, 0x1E, + 0x62, 0x44, 0x02, 0x20, 0x9B, 0xBD, 0xA5, 0x78, 0xC2, 0x65, 0x15, 0x61, 0x24, 0x1E, 0x71, 0x97, + 0xF2, 0xED, 0x56, 0x7E, 0x2E, 0x0A, 0xC4, 0x5F, 0x13, 0x42, 0xDB, 0xE0, 0x03, 0x2F, 0xBC, 0x28, + 0xA4, 0xBD, 0xB5, 0x39, 0xE9, 0x81, 0x67, 0xFD, 0xD1, 0x08, 0x06, 0x61, 0x18, 0x46, 0x2A, 0xAF, + 0x6A, 0x9E, 0x8F, 0x19, 0x29, 0x72, 0xD0, 0xBC, 0x5E, 0xA1, 0x1D, 0x6E, 0xD9, 0xDF, 0xA7, 0xA7, + 0xFD, 0x61, 0x9B, 0x36, 0xCD, 0xD5, 0x87, 0xE0, 0x80, 0x7D, 0x98, 0xA9, 0x0F, 0x47, 0xEC, 0xEF, + 0x38, 0x44, 0x76, 0x8B, 0xB9, 0xFA, 0x20, 0x5A, 0x5C, 0xAB, 0x0F, 0xAC, 0x85, 0xA4, 0xC3, 0x2C, + 0x8C, 0xCD, 0xD8, 0x3B, 0x1E, 0xEE, 0xC6, 0xE0, 0xFB, 0x08, 0xC0, 0x24, 0x9C, 0x5B, 0xDF, 0xF3, + 0xEE, 0x9C, 0x7D, 0x4F, 0xC3, 0x6B, 0xEB, 0xFB, 0xAC, 0x7B, 0xCD, 0xBE, 0x57, 0xA7, 0xCD, 0x39, + 0x69, 0xA0, 0xA0, 0x44, 0x21, 0xDF, 0x01, 0x42, 0x73, 0x01, 0x05, 0x42, 0xFD, 0xD1, 0x28, 0xE4, + 0x73, 0x27, 0x56, 0xA4, 0x60, 0xC9, 0x3C, 0xF2, 0x75, 0x86, 0xAC, 0x87, 0xC5, 0xB0, 0x6C, 0xEA, + 0x24, 0xF7, 0x6A, 0xEC, 0xAA, 0x2D, 0x96, 0x17, 0xF2, 0x59, 0x83, 0x98, 0x9D, 0x55, 0xD2, 0x33, + 0x64, 0x2F, 0x56, 0x3A, 0x8B, 0x5C, 0x4F, 0xB9, 0x9A, 0xB9, 0x5C, 0x4C, 0x19, 0xC3, 0x24, 0xAD, + 0x22, 0x2E, 0x37, 0x3A, 0x45, 0xFA, 0x51, 0x20, 0x4D, 0xE9, 0x57, 0x4C, 0xB1, 0x93, 0xDA, 0x48, + 0xC3, 0x8C, 0x91, 0x42, 0x74, 0x34, 0xC3, 0x84, 0x5E, 0x0D, 0x51, 0xEF, 0x8E, 0x67, 0x24, 0xBB, + 0x7F, 0x2B, 0xBE, 0x19, 0x43, 0xC7, 0x06, 0xA5, 0xEB, 0x49, 0x83, 0x74, 0x13, 0x44, 0xDF, 0xE3, + 0x67, 0x12, 0x6D, 0x31, 0xBE, 0xF7, 0x3F, 0xFE, 0xE0, 0x98, 0xF3, 0xAB, 0x12, 0xED, 0x94, 0x28, + 0xC7, 0xA2, 0x9B, 0x69, 0x51, 0x78, 0x82, 0x79, 0xF2, 0x0D, 0xC9, 0xD8, 0x68, 0x65, 0x37, 0x32, + 0x49, 0x13, 0x62, 0x66, 0x4F, 0x9C, 0xF7, 0x70, 0xFE, 0x86, 0x05, 0x61, 0x95, 0x32, 0xDD, 0x5C, + 0x06, 0x64, 0xE1, 0x56, 0x6D, 0x42, 0xC4, 0xF1, 0x5A, 0x3C, 0xCC, 0x54, 0x0B, 0x4C, 0x90, 0xC8, + 0x88, 0x13, 0x40, 0x24, 0x73, 0xDB, 0x04, 0x5A, 0x40, 0xE0, 0xB6, 0xE4, 0x09, 0x41, 0x5F, 0x88, + 0xD7, 0xEA, 0xCF, 0x5B, 0xF0, 0xE1, 0x33, 0x8E, 0xE3, 0xF7, 0x28, 0x9A, 0xBF, 0x62, 0xC1, 0x2A, + 0x13, 0x12, 0xDF, 0xB3, 0x73, 0x61, 0x92, 0xB7, 0xDB, 0x1E, 0x09, 0x73, 0x48, 0x7A, 0xB7, 0x71, + 0x7A, 0x13, 0xC5, 0xE7, 0xE9, 0xDD, 0x2A, 0xCD, 0x31, 0x41, 0x6F, 0x57, 0x88, 0xA7, 0x34, 0x08, + 0x5B, 0xB3, 0x74, 0x75, 0xDF, 0x82, 0x74, 0xCB, 0x71, 0x6C, 0x5E, 0xE3, 0x04, 0x45, 0xD9, 0x8F, + 0x59, 0x34, 0xC7, 0x14, 0x29, 0x1F, 0xFA, 0x30, 0x80, 0x01, 0x00, 0x85, 0x9A, 0x45, 0x6B, 0x0A, + 0x59, 0x48, 0x88, 0x3B, 0xA6, 0xE7, 0x7A, 0xF6, 0x1F, 0x57, 0xBF, 0xCD, 0xA3, 0xEE, 0x62, 0xFA, + 0x30, 0x80, 0x47, 0xC5, 0x33, 0x0C, 0x94, 0x92, 0x56, 0xBB, 0xBF, 0x47, 0x39, 0xDA, 0x1B, 0x8E, + 0xD5, 0xE6, 0x5B, 0x45, 0x59, 0x8E, 0x2E, 0x12, 0xE2, 0x21, 0xA1, 0x70, 0x0B, 0x60, 0x1F, 0xF4, + 0x32, 0xB4, 0x42, 0x11, 0xF1, 0xFA, 0x00, 0x06, 0x07, 0x74, 0x2B, 0x56, 0x6A, 0xF5, 0xE1, 0xA0, + 0x5C, 0x2B, 0xAD, 0xD6, 0x1A, 0xC0, 0x61, 0xB9, 0x96, 0xA6, 0x74, 0x4E, 0x71, 0x5C, 0x61, 0x3B, + 0xFA, 0xFB, 0x21, 0x14, 0x55, 0x6B, 0x0D, 0xE1, 0x68, 0x03, 0xDA, 0x30, 0x12, 0x88, 0x1F, 0x8E, + 0x0D, 0x76, 0x8A, 0xF8, 0xF6, 0xF1, 0xAA, 0x43, 0x60, 0x40, 0xE8, 0xC1, 0x42, 0xB7, 0x03, 0x3B, + 0x5A, 0x78, 0xF3, 0x63, 0x47, 0xF3, 0x9A, 0xD6, 0xFC, 0x40, 0xD2, 0x24, 0x28, 0x56, 0x9C, 0x36, + 0x39, 0xFB, 0xCD, 0xFB, 0x2D, 0xFF, 0xDE, 0xFB, 0x6D, 0xFE, 0x10, 0xC0, 0x41, 0x01, 0x7E, 0xCB, + 0xBF, 0x87, 0x1B, 0xFE, 0xF6, 0xD8, 0x07, 0xFF, 0x31, 0x78, 0xFC, 0x6D, 0x7E, 0xF6, 0x5B, 0xCF, + 0xFB, 0x6D, 0xDE, 0x01, 0xF4, 0x3B, 0x38, 0xFB, 0x0D, 0x3C, 0xB3, 0x59, 0x93, 0xB1, 0x22, 0x39, + 0x7B, 0x1D, 0x4C, 0xCC, 0x0F, 0xFD, 0xA9, 0x35, 0xCF, 0x39, 0x7B, 0xE2, 0xAB, 0x1C, 0x79, 0x9E, + 0x0E, 0x01, 0x79, 0x35, 0x9A, 0x9E, 0x05, 0x7C, 0x8C, 0xAF, 0xE2, 0x34, 0xA2, 0x4D, 0x46, 0x53, + 0x00, 0x9C, 0x33, 0xCC, 0x7C, 0x01, 0x1E, 0x1F, 0xF7, 0x71, 0xF5, 0x5E, 0x60, 0xA8, 0x79, 0xC7, + 0x7B, 0xBF, 0x24, 0xF9, 0x7A, 0xB5, 0x4A, 0x33, 0x82, 0xE6, 0x7B, 0xB3, 0x3C, 0xA7, 0x22, 0xF3, + 0x5D, 0x44, 0xF8, 0x75, 0x80, 0xF4, 0x16, 0x38, 0x8E, 0x59, 0x9A, 0xC4, 0x10, 0x43, 0xF3, 0x2F, + 0x04, 0x5B, 0x39, 0x93, 0x8A, 0x0C, 0x61, 0x53, 0x17, 0x7F, 0x75, 0x97, 0xEF, 0xD1, 0x4C, 0xEF, + 0x5D, 0x71, 0xE2, 0xC3, 0x68, 0xCA, 0x1D, 0x51, 0x2E, 0xEE, 0xA2, 0x5B, 0xF4, 0x22, 0x22, 0x91, + 0xAA, 0xD1, 0x9B, 0x47, 0x24, 0x82, 0xFD, 0xD1, 0x68, 0x9F, 0x9E, 0xD1, 0x4F, 0xEC, 0x5C, 0x10, + 0x93, 0x5B, 0x56, 0x80, 0x8C, 0xC6, 0x0A, 0xCE, 0x3E, 0x73, 0x21, 0xCD, 0xE4, 0x1B, 0x05, 0x19, + 0xF3, 0x64, 0x43, 0x4C, 0x8C, 0xC8, 0x42, 0xC2, 0xFE, 0x4D, 0x42, 0xC6, 0xDE, 0x45, 0xAF, 0xBD, + 0x7E, 0xD0, 0x3F, 0xF8, 0xDE, 0xCB, 0x4F, 0xC2, 0x9E, 0x3F, 0x38, 0xEE, 0x1F, 0x9D, 0xE5, 0xCF, + 0x82, 0x7E, 0xEF, 0xB8, 0xCF, 0x93, 0xA4, 0xAF, 0xD2, 0xCF, 0x9E, 0x97, 0x53, 0x59, 0x71, 0x04, + 0x9E, 0x05, 0xF4, 0x1F, 0xD8, 0xEF, 0x0D, 0x01, 0xE8, 0xF4, 0x0E, 0x83, 0x51, 0xFF, 0x7B, 0x2F, + 0x53, 0xCD, 0xB2, 0x4A, 0xB3, 0xCC, 0xD5, 0xCC, 0x3F, 0xEC, 0xF7, 0xBF, 0xF7, 0x12, 0xD5, 0x2C, + 0xA9, 0x34, 0x4B, 0xAA, 0xCD, 0x0A, 0xD4, 0xCB, 0x44, 0x00, 0xC3, 0xD7, 0xEB, 0x3B, 0x9C, 0x44, + 0xC9, 0xCC, 0x29, 0x02, 0x10, 0x0F, 0xE9, 0xC3, 0x47, 0x4A, 0x38, 0xEC, 0x70, 0x63, 0x67, 0x59, + 0x05, 0x46, 0x3F, 0x24, 0x85, 0x27, 0x24, 0x22, 0x36, 0xAF, 0x54, 0xCE, 0xDF, 0x65, 0x5E, 0xD5, + 0xC9, 0x97, 0x85, 0xBA, 0xE7, 0x24, 0x94, 0x7D, 0x4F, 0x78, 0xB8, 0x6F, 0xA2, 0xAA, 0x45, 0xF4, + 0xB7, 0xA8, 0xB6, 0xA4, 0xBF, 0xA5, 0x10, 0x76, 0xED, 0xCD, 0x1C, 0xE8, 0x79, 0x29, 0x8C, 0xE0, + 0x12, 0x40, 0x67, 0x19, 0x37, 0x38, 0xE4, 0x2A, 0xE6, 0x49, 0x7C, 0x82, 0xDB, 0x6D, 0x2F, 0x3D, + 0xF5, 0x1F, 0x1F, 0x23, 0xFA, 0x9F, 0xE5, 0xA9, 0x0F, 0x26, 0x20, 0xED, 0xEA, 0xD8, 0x9F, 0x3E, + 0x64, 0x3F, 0x67, 0x08, 0xC7, 0x5E, 0x2F, 0xF8, 0x3E, 0x05, 0x00, 0x46, 0xF5, 0xC5, 0x11, 0x00, + 0x70, 0x59, 0x5F, 0xBC, 0xA4, 0x1B, 0xFF, 0x6B, 0x90, 0x16, 0x02, 0x7C, 0xCA, 0x04, 0xF8, 0x88, + 0x09, 0xF0, 0x4B, 0x8B, 0xCF, 0xAA, 0x49, 0xC7, 0xFF, 0xF0, 0x93, 0x7E, 0x42, 0xC5, 0xB7, 0xC7, + 0x88, 0xFF, 0xB3, 0xA4, 0xFF, 0xD0, 0xA9, 0xD7, 0xAF, 0xD6, 0xB4, 0xB3, 0xB4, 0x63, 0xCD, 0x1F, + 0xFD, 0xD6, 0x4D, 0x29, 0xFB, 0x8C, 0xEC, 0x7A, 0x91, 0xA3, 0x5E, 0x44, 0xEB, 0x2D, 0xED, 0x7A, + 0x4B, 0x47, 0xBD, 0x25, 0xF8, 0x9B, 0xAF, 0xCA, 0x46, 0x81, 0x3A, 0x87, 0x99, 0x5C, 0xA9, 0x24, + 0x74, 0xF4, 0x45, 0x37, 0xE8, 0x11, 0x3D, 0x7A, 0x5C, 0x65, 0x54, 0x5E, 0x66, 0x9C, 0xF8, 0xDA, + 0xA3, 0x22, 0xC6, 0x09, 0x8F, 0x1D, 0x92, 0x9E, 0x24, 0x12, 0x64, 0x1A, 0x12, 0xD1, 0x07, 0x8C, + 0x42, 0x5A, 0xC9, 0x05, 0x25, 0xA5, 0x50, 0x18, 0x98, 0xE8, 0x24, 0xD3, 0x42, 0x36, 0x16, 0x2D, + 0xE5, 0xFD, 0x25, 0x3A, 0xAD, 0x03, 0x40, 0x18, 0x80, 0xB3, 0x74, 0x4C, 0xE4, 0xE3, 0x63, 0x2A, + 0xCE, 0xEF, 0x48, 0x41, 0x81, 0xCB, 0xDA, 0xFE, 0x23, 0xD5, 0xFF, 0x52, 0xF7, 0x8F, 0x15, 0xE6, + 0xB2, 0xFF, 0x65, 0x6D, 0xFF, 0x98, 0xF7, 0x1F, 0x8D, 0xB1, 0xEC, 0x3F, 0x2A, 0x38, 0xFB, 0x9A, + 0xAF, 0x67, 0x06, 0x03, 0xA4, 0x02, 0x3E, 0x4E, 0xA8, 0xEC, 0x99, 0x1B, 0x5F, 0x31, 0x17, 0xDA, + 0xE5, 0x75, 0xD7, 0x25, 0xB4, 0x6B, 0x79, 0xBD, 0x86, 0x5B, 0x4E, 0x0D, 0xC9, 0xBF, 0xF6, 0xA2, + 0x6F, 0x5D, 0x43, 0x64, 0x59, 0xE9, 0xEA, 0x26, 0x3F, 0xD3, 0xD3, 0x2B, 0x16, 0x37, 0x4F, 0xC9, + 0x68, 0x23, 0xCE, 0x69, 0x6D, 0x8D, 0xCB, 0xBC, 0xA2, 0x91, 0xB9, 0x2E, 0xE0, 0xD1, 0xF1, 0xC1, + 0xD7, 0xBE, 0xE3, 0xA6, 0x19, 0xFA, 0x80, 0x32, 0x3A, 0x47, 0xB1, 0xEB, 0x1D, 0x77, 0xC8, 0x9F, + 0x71, 0xB9, 0x07, 0x43, 0x12, 0x62, 0x6F, 0x38, 0x18, 0x1E, 0x71, 0x97, 0x87, 0xC3, 0xA3, 0x03, + 0x91, 0x3C, 0xEA, 0x90, 0x56, 0x5B, 0xD2, 0x1F, 0x03, 0xBF, 0xCF, 0x5D, 0x1E, 0x0E, 0x8E, 0x0F, + 0x45, 0xF2, 0x28, 0xFE, 0x16, 0x3C, 0x0F, 0xB1, 0x17, 0x1C, 0x8E, 0x06, 0x3C, 0x79, 0x54, 0x30, + 0x3C, 0xF2, 0x79, 0xF2, 0xA8, 0xC3, 0xE3, 0x63, 0x91, 0x3D, 0xEA, 0xB8, 0x7F, 0xD4, 0x07, 0xF0, + 0x53, 0x88, 0xBD, 0xD1, 0x70, 0x30, 0x02, 0xF0, 0x96, 0xFE, 0x3A, 0x3E, 0x0A, 0x00, 0x5C, 0x51, + 0x04, 0x0E, 0x0E, 0x7C, 0xAE, 0x2C, 0xBA, 0x0C, 0xF7, 0x03, 0xF1, 0xA2, 0x7C, 0xA7, 0x5E, 0x94, + 0xF3, 0xED, 0xED, 0xB9, 0x93, 0x1F, 0x70, 0x12, 0x65, 0xF7, 0x8E, 0xB7, 0xD7, 0xD8, 0xFD, 0xF6, + 0x6A, 0xD6, 0x57, 0xCD, 0x4B, 0xB9, 0x7A, 0xA8, 0xE4, 0xB3, 0x3D, 0x44, 0x5D, 0x5B, 0x34, 0x2D, + 0x41, 0xA3, 0xF7, 0xA5, 0x57, 0x08, 0xCD, 0xB7, 0x87, 0x68, 0xB7, 0x30, 0x40, 0x54, 0x72, 0x0A, + 0xE5, 0xF8, 0xBF, 0x5C, 0x99, 0x8B, 0x6A, 0xE0, 0x9A, 0xF5, 0x55, 0xF3, 0x12, 0xCC, 0x5F, 0x33, + 0x4C, 0xD0, 0x3B, 0x2A, 0xFF, 0xEE, 0x80, 0x70, 0xA5, 0x91, 0x0D, 0xA8, 0x9C, 0x79, 0x89, 0xC5, + 0xC8, 0xDA, 0x16, 0xFA, 0x35, 0x4E, 0x72, 0x12, 0x25, 0x04, 0x9B, 0x19, 0xF6, 0x84, 0xF5, 0xFC, + 0x85, 0xA3, 0x48, 0xE0, 0x64, 0x1B, 0xFA, 0x57, 0xFB, 0x5A, 0xF6, 0x6C, 0xE3, 0x0A, 0x0F, 0x81, + 0xA6, 0x0E, 0x7B, 0x2C, 0x60, 0x09, 0xAF, 0x99, 0x95, 0x0D, 0x33, 0x5C, 0x5D, 0x02, 0x97, 0xEF, + 0x66, 0x09, 0x8F, 0x86, 0xEE, 0xF8, 0x55, 0x9B, 0x8F, 0x8F, 0x32, 0xDB, 0x9E, 0xED, 0xE1, 0xB9, + 0x03, 0xAA, 0x3F, 0x38, 0x42, 0x31, 0x39, 0xD3, 0x0F, 0xC5, 0xE9, 0xED, 0xD7, 0xA2, 0x99, 0xF6, + 0x5E, 0x2B, 0x20, 0xBB, 0xE0, 0xA8, 0x5B, 0x55, 0x70, 0x11, 0x50, 0xCC, 0xE4, 0x6D, 0x4F, 0xC5, + 0x6E, 0xD6, 0x33, 0x1D, 0x62, 0x77, 0x40, 0xCF, 0x68, 0x56, 0xC1, 0xC6, 0xC0, 0xCF, 0x76, 0x2C, + 0x7D, 0x22, 0x92, 0x73, 0x86, 0xA4, 0xE5, 0xA5, 0xBB, 0x23, 0xA6, 0x66, 0x5B, 0x37, 0x72, 0x02, + 0xE0, 0x3A, 0xC1, 0xB3, 0x74, 0xFE, 0xD5, 0x18, 0x5F, 0xF7, 0x7E, 0xB1, 0x00, 0xED, 0x82, 0xAF, + 0xDD, 0xD2, 0x85, 0x96, 0x0A, 0x2F, 0xBC, 0xA4, 0xAC, 0x84, 0x58, 0xC8, 0x6E, 0x85, 0xDE, 0xBA, + 0x77, 0x6E, 0x35, 0xDD, 0x65, 0x36, 0xAD, 0x86, 0x4E, 0x44, 0xD4, 0x41, 0x94, 0xCF, 0x5E, 0xE3, + 0xE4, 0xE3, 0xEE, 0xE8, 0xAD, 0x7A, 0x6F, 0xAD, 0xA6, 0xBB, 0x30, 0x21, 0xAB, 0xA1, 0x13, 0x11, + 0x0D, 0x6D, 0xB5, 0x26, 0x3F, 0xB1, 0x08, 0x52, 0x2E, 0x3B, 0xA5, 0x4F, 0xBD, 0x0B, 0xA3, 0x82, + 0x2B, 0xD6, 0x85, 0x73, 0xF0, 0x95, 0xCD, 0x50, 0xD9, 0xBD, 0x2E, 0xCE, 0xE8, 0x44, 0xD4, 0x4D, + 0xA8, 0x4E, 0x82, 0x28, 0x7B, 0xC3, 0x78, 0x3E, 0x8C, 0x7B, 0x8B, 0x34, 0xFB, 0x1C, 0x65, 0x3C, + 0x28, 0x38, 0xF0, 0xAA, 0x83, 0x36, 0x4E, 0xD5, 0xCA, 0xC1, 0x5C, 0xE3, 0x5F, 0x63, 0x36, 0xDF, + 0xBA, 0x4F, 0xDB, 0x55, 0x5F, 0x9E, 0xB1, 0xA5, 0x13, 0x7B, 0xEB, 0x21, 0xD8, 0xA9, 0xF5, 0x8C, + 0x94, 0x90, 0xFC, 0x8F, 0x27, 0xC2, 0xE1, 0x32, 0x4F, 0x49, 0x82, 0x72, 0x4F, 0x82, 0xDD, 0xD0, + 0x8A, 0xAC, 0xF9, 0x21, 0xFD, 0x21, 0x25, 0x24, 0xBD, 0x33, 0xC2, 0xA1, 0xE7, 0x76, 0x41, 0x9D, + 0xE7, 0x52, 0x63, 0xC2, 0x40, 0x8E, 0xD5, 0x67, 0x2A, 0x3C, 0x88, 0x78, 0x68, 0x3C, 0xF0, 0x99, + 0xAE, 0x56, 0x07, 0x76, 0x4B, 0x7F, 0x28, 0x1E, 0x94, 0x9C, 0x0A, 0xD0, 0xA8, 0x05, 0xCB, 0xE1, + 0xD5, 0x7E, 0xD5, 0x85, 0x56, 0x2B, 0x54, 0xEB, 0x85, 0x55, 0x5E, 0x70, 0x11, 0xDF, 0x94, 0x02, + 0x7E, 0xB0, 0x05, 0x1E, 0x61, 0xF8, 0xC1, 0xF4, 0xEB, 0x38, 0x4D, 0x9C, 0x01, 0x28, 0xAC, 0x04, + 0x18, 0x79, 0xBA, 0xCE, 0x66, 0x68, 0xEC, 0x17, 0xAE, 0x5D, 0xDC, 0xBB, 0x8B, 0xB2, 0x8F, 0x2C, + 0x5A, 0xC4, 0x0B, 0xCC, 0xEE, 0x05, 0xF5, 0xD0, 0xE4, 0xB2, 0xAC, 0x9C, 0xE1, 0x24, 0xAC, 0x4A, + 0x7C, 0xE5, 0x58, 0xB2, 0xC0, 0x8D, 0x7B, 0xE2, 0x9F, 0x6F, 0xB0, 0x26, 0xD9, 0x39, 0xB8, 0xE4, + 0x6D, 0xEF, 0x57, 0x5D, 0xEE, 0x79, 0xC2, 0xE0, 0xC0, 0x81, 0x2D, 0x53, 0x1F, 0x8B, 0x14, 0xE7, + 0x5B, 0x73, 0x0E, 0x93, 0xE4, 0x2D, 0xE9, 0xD9, 0x25, 0x9A, 0xBB, 0xC0, 0xE6, 0xCE, 0xBC, 0x90, + 0xEE, 0x84, 0xD8, 0xC6, 0x26, 0xA8, 0xE4, 0xC4, 0x2E, 0xC7, 0x2A, 0x34, 0xEA, 0xCA, 0xF8, 0xFB, + 0xD2, 0x25, 0x50, 0x51, 0x40, 0xC9, 0x60, 0x4D, 0x7E, 0x7F, 0xBE, 0xC2, 0x2A, 0xE0, 0x9D, 0xF1, + 0x6D, 0x6B, 0xD1, 0x5F, 0x51, 0x13, 0xBB, 0x40, 0x70, 0x3A, 0xA3, 0x03, 0x22, 0x13, 0x9D, 0xAD, + 0xBF, 0x02, 0xBD, 0x92, 0x9A, 0x9F, 0x9B, 0x0B, 0xF5, 0x24, 0x2D, 0x9A, 0x0B, 0x6E, 0x34, 0xE3, + 0x7D, 0x48, 0x4F, 0xC7, 0x8A, 0x9F, 0x63, 0x35, 0x06, 0x0B, 0xAB, 0x9A, 0xA5, 0x9F, 0x37, 0x54, + 0xA5, 0x35, 0x58, 0x55, 0x91, 0x66, 0xB4, 0xB9, 0xB6, 0xA8, 0xC4, 0x67, 0x97, 0x33, 0xB4, 0x52, + 0x83, 0x32, 0x9B, 0xE3, 0x7F, 0x32, 0xCB, 0x56, 0xD9, 0x00, 0x71, 0x0B, 0x23, 0xA1, 0x12, 0xDA, + 0xC3, 0xC9, 0x9E, 0x30, 0xE5, 0x77, 0xB7, 0xBD, 0x22, 0xD3, 0x10, 0x5D, 0x91, 0x69, 0xC1, 0x48, + 0xD0, 0x34, 0x44, 0x35, 0x69, 0x52, 0x17, 0xF2, 0x7A, 0x97, 0xF7, 0xC9, 0xCC, 0xAC, 0xAB, 0x0F, + 0xFD, 0x5E, 0x9C, 0xDE, 0xBE, 0x46, 0x9F, 0x50, 0x7C, 0x12, 0x66, 0xF4, 0x42, 0xC0, 0x7E, 0xBF, + 0x4C, 0xD6, 0x77, 0xBD, 0x5F, 0x9F, 0xBF, 0x7F, 0xD3, 0x6E, 0xEF, 0x5F, 0xAA, 0x80, 0xA7, 0x46, + 0xA3, 0xCF, 0x51, 0x96, 0x78, 0x2D, 0x05, 0x7A, 0x0F, 0xE7, 0x7B, 0xEB, 0x24, 0x43, 0x31, 0xA6, + 0xD4, 0xBC, 0x17, 0x25, 0xF3, 0xBD, 0xCF, 0x38, 0x8E, 0xF7, 0x6E, 0xD0, 0x1E, 0x0F, 0x02, 0x39, + 0xDF, 0xCB, 0xD3, 0x34, 0xE9, 0xB5, 0x00, 0xBC, 0x0C, 0x75, 0x94, 0xC4, 0x0A, 0xC6, 0x0A, 0xCD, + 0x22, 0x63, 0x67, 0xAF, 0x30, 0x40, 0xC8, 0xDF, 0x44, 0x6F, 0x58, 0x38, 0x46, 0xFE, 0x8B, 0x80, + 0xC7, 0x47, 0xCF, 0xCA, 0x20, 0x15, 0xF5, 0x7E, 0xBE, 0x78, 0x73, 0xF1, 0xF3, 0x2F, 0x3F, 0x5F, + 0x9F, 0xBF, 0x7D, 0x7D, 0xA9, 0x53, 0xF6, 0xB0, 0x4C, 0x3D, 0xBA, 0xF0, 0xFD, 0xDB, 0x5F, 0x2F, + 0x9D, 0x57, 0xBD, 0x9E, 0xD1, 0x1D, 0x28, 0x38, 0xC3, 0xA1, 0x7F, 0x84, 0xFB, 0x81, 0x9C, 0x31, + 0xBB, 0xBE, 0xAE, 0x22, 0xAB, 0xAB, 0xCC, 0x57, 0x3A, 0x38, 0xA6, 0xAB, 0x89, 0x59, 0x4D, 0xB4, + 0x7C, 0x17, 0xDD, 0xA2, 0x5C, 0x1B, 0x08, 0xBB, 0x5A, 0xC9, 0x2A, 0x85, 0x64, 0x98, 0x1F, 0x98, + 0xDD, 0x69, 0x7D, 0x03, 0x51, 0xA3, 0x28, 0x1F, 0xF2, 0x8D, 0x4D, 0x64, 0x25, 0xD5, 0x4A, 0x44, + 0x67, 0x6A, 0x6C, 0x24, 0xEA, 0x14, 0x92, 0x41, 0xBC, 0xCC, 0x67, 0x52, 0x32, 0x35, 0x2D, 0x57, + 0x1C, 0x8C, 0xB7, 0xA6, 0x85, 0x82, 0xF4, 0x62, 0x96, 0xEF, 0x08, 0xA9, 0xD4, 0x42, 0x41, 0x3A, + 0xCF, 0xF1, 0x8E, 0x90, 0x4A, 0x2D, 0x14, 0xA4, 0xB7, 0x3B, 0x8F, 0xAE, 0xD4, 0x82, 0xF9, 0x5E, + 0xAF, 0xD5, 0xE2, 0x35, 0x84, 0xE1, 0xD2, 0x8C, 0x5C, 0xC6, 0x63, 0xE1, 0xB9, 0x8D, 0x0C, 0xA9, + 0xC7, 0x2B, 0x25, 0x09, 0x2E, 0x63, 0xC0, 0x8A, 0xEA, 0xE8, 0xDD, 0x28, 0xB3, 0x2F, 0x0A, 0x76, + 0xA1, 0x29, 0xFF, 0x55, 0x0A, 0x4C, 0xF1, 0x5F, 0x96, 0x16, 0x1B, 0xA5, 0x33, 0x71, 0x2A, 0xC8, + 0x74, 0x0A, 0x8E, 0x61, 0x8D, 0xBD, 0xF2, 0x91, 0x51, 0x73, 0x06, 0xB2, 0x23, 0x63, 0xF3, 0x19, + 0x08, 0x0A, 0x57, 0x2F, 0x46, 0xB6, 0x2A, 0x13, 0xBC, 0x0E, 0xB2, 0xA2, 0x62, 0x6F, 0xF0, 0xB5, + 0x52, 0x77, 0x10, 0x6F, 0xD1, 0xE3, 0x3E, 0x4F, 0x06, 0x38, 0x11, 0xD8, 0xEC, 0x92, 0x44, 0x04, + 0xF5, 0x6E, 0x70, 0x32, 0x67, 0x43, 0x70, 0xAA, 0x70, 0x00, 0x80, 0x26, 0x5C, 0x07, 0xCD, 0x3D, + 0xB0, 0x10, 0xD5, 0xE3, 0xD6, 0x4F, 0xAD, 0x82, 0xC7, 0x02, 0xF0, 0x58, 0xC8, 0xB1, 0xC6, 0x4E, + 0x9D, 0x97, 0x1A, 0x00, 0xF7, 0x03, 0x60, 0x88, 0x4C, 0xC6, 0xCC, 0x3C, 0x88, 0x69, 0x1B, 0x33, + 0xC9, 0xC3, 0x3C, 0x82, 0xD2, 0x05, 0x3D, 0x82, 0xF4, 0xB4, 0x16, 0xF4, 0x7F, 0x25, 0x7D, 0xF5, + 0x5D, 0x01, 0x8F, 0x86, 0x07, 0xFE, 0xD7, 0x18, 0x72, 0x9A, 0x72, 0x55, 0x48, 0x2C, 0x91, 0x42, + 0x9B, 0x77, 0x5A, 0x5F, 0x99, 0xEA, 0xD9, 0xD2, 0x31, 0xAB, 0xF3, 0x4C, 0xC6, 0x16, 0x0E, 0xAF, + 0x64, 0x7C, 0x37, 0x81, 0x3E, 0xCB, 0x7D, 0x4D, 0x0F, 0x68, 0x2E, 0x95, 0x94, 0xB6, 0x2C, 0xFB, + 0xA8, 0xA4, 0x1E, 0xF6, 0x57, 0x88, 0xC2, 0x53, 0xAF, 0x04, 0x55, 0x26, 0x36, 0x86, 0xF6, 0xA4, + 0x69, 0xFA, 0x91, 0x9D, 0x01, 0xDB, 0x30, 0xBD, 0x0C, 0xC6, 0x30, 0x53, 0xD7, 0x2E, 0x15, 0xB2, + 0x94, 0x9E, 0xEC, 0xDA, 0x75, 0xC7, 0xC8, 0x4F, 0x62, 0x00, 0x10, 0xEE, 0x02, 0x04, 0x06, 0xA0, + 0xD0, 0x49, 0xD8, 0xB9, 0x30, 0xC4, 0x25, 0x27, 0x33, 0x40, 0xE4, 0x95, 0x36, 0x94, 0x37, 0xDD, + 0x08, 0x2B, 0xF8, 0x20, 0xE6, 0x8A, 0xAA, 0x29, 0xD2, 0xC0, 0x09, 0x4D, 0xC1, 0xC4, 0xB6, 0x1A, + 0x56, 0xC6, 0xF6, 0x39, 0x6D, 0x75, 0x95, 0x4F, 0x7B, 0xB3, 0x28, 0x8E, 0x85, 0x55, 0x06, 0x64, + 0x3C, 0x4E, 0x51, 0x4E, 0x79, 0x75, 0xB4, 0x28, 0x51, 0x42, 0x41, 0xA7, 0x23, 0xD0, 0xCB, 0xE6, + 0x17, 0x45, 0x99, 0x4A, 0x9C, 0x91, 0xA8, 0x44, 0xEA, 0x77, 0x69, 0x68, 0x0E, 0x40, 0x51, 0xC0, + 0xD1, 0x70, 0x30, 0xFA, 0x77, 0xF8, 0xB0, 0x7F, 0x91, 0xF0, 0x61, 0x17, 0x96, 0xBE, 0xAC, 0x27, + 0xF8, 0xA3, 0x38, 0x48, 0xDF, 0xA3, 0x55, 0x9A, 0x91, 0x0F, 0xF7, 0x2B, 0x54, 0x8D, 0x21, 0xD6, + 0x1F, 0x1D, 0x0D, 0xC5, 0x83, 0x5A, 0x10, 0x88, 0x07, 0xB5, 0xBE, 0x1F, 0x8C, 0x4A, 0x31, 0xC4, + 0x86, 0x47, 0x7D, 0xF9, 0x9E, 0x36, 0x38, 0xE4, 0xEF, 0x69, 0xFC, 0x65, 0xED, 0x3A, 0xC4, 0xDE, + 0xC1, 0x70, 0xC0, 0x9F, 0xD3, 0x46, 0x41, 0xC0, 0x5F, 0xD3, 0x06, 0x87, 0x83, 0x21, 0x7F, 0x4D, + 0xE3, 0x4F, 0x77, 0xB7, 0xB4, 0x56, 0x7F, 0xD8, 0xE7, 0xAF, 0x69, 0x07, 0x83, 0x51, 0x40, 0xA5, + 0x60, 0xEC, 0x8D, 0x8E, 0x87, 0x01, 0x80, 0x77, 0xE1, 0x43, 0xCB, 0x6B, 0x8D, 0x7D, 0xD8, 0x02, + 0xAD, 0x71, 0x00, 0x5B, 0xDF, 0xB7, 0xC6, 0x7D, 0xD8, 0xEA, 0xB4, 0xC6, 0x03, 0xD8, 0xEA, 0xB2, + 0x2F, 0xBD, 0xD6, 0xB8, 0x5F, 0xC0, 0xF3, 0x30, 0x18, 0x04, 0xFE, 0x61, 0x5F, 0xDB, 0x65, 0xDF, + 0x28, 0xF3, 0x5C, 0x74, 0xDA, 0x1F, 0x2A, 0xD3, 0xF6, 0x5E, 0x8E, 0xC8, 0xAF, 0x98, 0x9D, 0x55, + 0xF9, 0xE3, 0xE3, 0x7E, 0x30, 0x29, 0xF9, 0x56, 0x07, 0x63, 0x99, 0x4D, 0x96, 0xF4, 0x84, 0x77, + 0xEE, 0xAF, 0x38, 0x11, 0xBE, 0xCE, 0x46, 0x19, 0x8B, 0x7F, 0x83, 0xFF, 0x4B, 0x17, 0x0E, 0x8C, + 0x42, 0xDE, 0xC7, 0x3B, 0x71, 0x49, 0x9B, 0x58, 0x86, 0x80, 0xBA, 0xFC, 0x12, 0xFF, 0x17, 0x7A, + 0x87, 0xBF, 0xA0, 0x38, 0xB7, 0x2D, 0xF3, 0x58, 0xD7, 0x11, 0xCE, 0x35, 0xEC, 0x03, 0xA3, 0x24, + 0x4E, 0x3F, 0xA3, 0x4C, 0x95, 0x1C, 0x5A, 0xE8, 0xB2, 0x38, 0xEB, 0xAA, 0xEC, 0xC8, 0xD9, 0x23, + 0x53, 0x04, 0xDB, 0x26, 0x71, 0x6C, 0x3C, 0xD1, 0x17, 0x7B, 0x3C, 0x81, 0x6F, 0x94, 0x2E, 0xD6, + 0x71, 0xCC, 0x93, 0xED, 0xE9, 0x72, 0x73, 0xA6, 0x6E, 0x39, 0x78, 0x7A, 0xD0, 0x8A, 0xD2, 0x41, + 0xA5, 0xD4, 0x9E, 0x8E, 0x60, 0x58, 0x6D, 0x5E, 0x9A, 0x8F, 0x60, 0x64, 0x57, 0xB9, 0x64, 0x08, + 0x54, 0x6A, 0x1D, 0xD8, 0xB5, 0x58, 0x42, 0x8F, 0x72, 0x9D, 0x23, 0x67, 0x67, 0xC6, 0x54, 0x04, + 0xC7, 0x75, 0x7D, 0x19, 0x95, 0xFA, 0xBE, 0x5D, 0xE9, 0x62, 0x96, 0x26, 0x1F, 0x30, 0x89, 0xC5, + 0x98, 0xFB, 0xD5, 0x19, 0x31, 0x4B, 0x4D, 0xEA, 0xA1, 0x87, 0x89, 0x59, 0x66, 0xCE, 0xD6, 0x2A, + 0x5D, 0x99, 0x45, 0x55, 0xBA, 0x61, 0xB4, 0x2B, 0xEC, 0x0C, 0xF6, 0x83, 0x82, 0xF2, 0xB3, 0xFB, + 0xC9, 0xBE, 0x65, 0xF0, 0x7F, 0x85, 0x7A, 0x3F, 0xBE, 0xFC, 0x70, 0xFD, 0xEB, 0xC5, 0x9B, 0xEB, + 0xCB, 0x8B, 0xFF, 0xFD, 0xF2, 0xFA, 0xDD, 0xC5, 0x9F, 0x5F, 0xBE, 0xBE, 0x0C, 0xFD, 0x69, 0xD8, + 0x72, 0x7C, 0x6F, 0x41, 0xD9, 0xE0, 0xFC, 0xE5, 0xEB, 0xD7, 0x56, 0x8B, 0x40, 0xB4, 0x28, 0x17, + 0xB4, 0x0A, 0xEF, 0xBE, 0x81, 0x99, 0x30, 0x83, 0x81, 0x5A, 0x4E, 0xF3, 0x50, 0x88, 0xE0, 0x67, + 0x9F, 0x43, 0x5F, 0x3C, 0x98, 0xBF, 0xDC, 0x22, 0x00, 0x1A, 0xE7, 0xE4, 0x30, 0x83, 0x4B, 0x78, + 0x0D, 0x17, 0xF0, 0x53, 0x28, 0xA2, 0x99, 0xE5, 0xB3, 0x68, 0x85, 0x64, 0x0E, 0x17, 0xA6, 0x53, + 0xCA, 0xCA, 0x6F, 0xEB, 0xF6, 0xCB, 0xA5, 0xFB, 0x05, 0x20, 0xD4, 0xB1, 0xCD, 0xF4, 0xFB, 0x1C, + 0xAE, 0x3E, 0x28, 0xE6, 0xEE, 0xF8, 0x6B, 0x99, 0xFB, 0xF5, 0x64, 0x69, 0x00, 0xB5, 0x1E, 0xD5, + 0xAE, 0x65, 0x10, 0x0A, 0xFB, 0xE5, 0x6A, 0x21, 0x3E, 0x33, 0xBD, 0x5B, 0x16, 0x7E, 0x32, 0xFF, + 0x14, 0xDA, 0x3C, 0x3A, 0xEC, 0x5F, 0x70, 0x42, 0x06, 0x7D, 0xEE, 0x96, 0x33, 0xF4, 0x8F, 0x0F, + 0xB4, 0xFF, 0x59, 0x86, 0x93, 0xDB, 0x17, 0x88, 0x82, 0xE4, 0x35, 0x67, 0x3D, 0xEE, 0x90, 0xF2, + 0x21, 0xFD, 0x85, 0x2C, 0x06, 0x32, 0xEB, 0xDE, 0x9A, 0x2C, 0x8E, 0xEC, 0x5A, 0xBF, 0x90, 0xC5, + 0x91, 0x5D, 0x47, 0x46, 0x81, 0x67, 0x15, 0xD6, 0x3D, 0xFA, 0xD3, 0x50, 0xDB, 0x73, 0x61, 0x99, + 0x51, 0x6A, 0xD8, 0x92, 0x09, 0x35, 0xF1, 0x2C, 0x4D, 0xDE, 0x44, 0x77, 0xC6, 0x17, 0xA3, 0xDA, + 0x25, 0x89, 0x66, 0x1F, 0xB5, 0x04, 0x2A, 0xEB, 0x96, 0x3E, 0xCF, 0xD6, 0xD9, 0x73, 0x42, 0x58, + 0x56, 0x9C, 0x30, 0xD6, 0xF1, 0x3D, 0x3E, 0x7C, 0x78, 0x7F, 0xFD, 0xE2, 0xF9, 0x87, 0xE7, 0xDC, + 0xA3, 0x49, 0x2D, 0x2C, 0xCA, 0xA2, 0x1C, 0xC9, 0xFA, 0x2C, 0xBF, 0x26, 0x15, 0xBF, 0x37, 0xB7, + 0x53, 0x0F, 0x00, 0x3F, 0x20, 0xE7, 0xF3, 0xFD, 0xBC, 0xCE, 0xEA, 0xA0, 0xD4, 0xC8, 0x06, 0x54, + 0xB1, 0x69, 0x60, 0x25, 0xEF, 0x39, 0x5F, 0x7E, 0x9F, 0x7E, 0x76, 0x85, 0xE3, 0x6B, 0xEE, 0xA9, + 0xD2, 0xD6, 0x09, 0xB6, 0xAE, 0xDF, 0x1C, 0x91, 0x27, 0xF4, 0xA8, 0x5A, 0x95, 0x40, 0xB9, 0x7B, + 0xB9, 0x44, 0xC9, 0xFC, 0x55, 0x3A, 0x5B, 0xEF, 0x3E, 0xB6, 0x52, 0x4B, 0x07, 0xC8, 0x9A, 0x1E, + 0xEF, 0x93, 0x19, 0x57, 0x75, 0xFE, 0x10, 0xB9, 0x74, 0xDB, 0x1B, 0x7A, 0xAD, 0xB6, 0xAE, 0x01, + 0xED, 0xEE, 0xDD, 0xC5, 0xD5, 0x76, 0x46, 0xA2, 0x1E, 0x48, 0x73, 0x47, 0x25, 0x94, 0x9E, 0x07, + 0xC1, 0x3D, 0x3D, 0x9F, 0xB6, 0xEF, 0xDF, 0x6E, 0x61, 0x80, 0x70, 0x40, 0xFE, 0x10, 0xDD, 0xEC, + 0x06, 0x58, 0x35, 0xD0, 0x00, 0x4A, 0x60, 0x79, 0x76, 0x98, 0x9F, 0xD3, 0x4F, 0x2E, 0x33, 0x96, + 0x1A, 0xC8, 0xE5, 0x36, 0x16, 0x98, 0xED, 0xED, 0x93, 0x6A, 0xA0, 0x6F, 0x6B, 0x9F, 0x54, 0x6B, + 0xE8, 0x53, 0x03, 0xD7, 0xAC, 0x5F, 0xD2, 0xFD, 0x2B, 0x98, 0x8C, 0x2B, 0x72, 0xBD, 0xCF, 0xF6, + 0x80, 0x2B, 0x8D, 0x6C, 0x40, 0xE5, 0x09, 0xE7, 0x9E, 0x8F, 0x5B, 0xCF, 0xB5, 0xAE, 0x2E, 0x1B, + 0x5B, 0x00, 0xD9, 0x31, 0xC4, 0x19, 0xF6, 0xC3, 0x2A, 0x5A, 0xE7, 0x68, 0x3E, 0xDE, 0x0F, 0x44, + 0xC0, 0x19, 0xE6, 0x2A, 0xFD, 0xE7, 0xB1, 0x6F, 0xFE, 0xF9, 0x97, 0xB1, 0x0F, 0xE7, 0xEC, 0x98, + 0x99, 0x73, 0x97, 0xD7, 0xB1, 0x0F, 0xD5, 0x3B, 0x9A, 0x2F, 0x43, 0x5A, 0xE6, 0x2B, 0x34, 0xC3, + 0x51, 0x2C, 0xA2, 0xE0, 0x5C, 0xF5, 0x47, 0x07, 0xB0, 0x3F, 0x3A, 0x84, 0xFD, 0xD1, 0xD1, 0xD4, + 0xF9, 0x72, 0xC7, 0xCF, 0x46, 0x7D, 0x25, 0xCE, 0xC8, 0xFD, 0xFB, 0xF4, 0xF3, 0x87, 0x2C, 0x9A, + 0x7D, 0x14, 0xC7, 0xD9, 0x6B, 0xB7, 0xB6, 0x87, 0x7F, 0x34, 0x33, 0x54, 0x35, 0x25, 0x08, 0x72, + 0x75, 0xED, 0x7C, 0xE1, 0xE8, 0xA5, 0x49, 0x29, 0x9F, 0x96, 0x7E, 0x8B, 0xB5, 0x3A, 0xB3, 0xB3, + 0x63, 0x69, 0xC5, 0x13, 0x1F, 0x10, 0x15, 0xEF, 0xB4, 0x96, 0xEB, 0x55, 0x14, 0xC7, 0x37, 0xD1, + 0xEC, 0xA3, 0x7A, 0x9C, 0xAB, 0xBE, 0x4D, 0xCC, 0xD1, 0xCD, 0xFA, 0xD6, 0x6B, 0xFD, 0x92, 0x7C, + 0x4C, 0xD2, 0xCF, 0xC9, 0xDE, 0xF9, 0xE5, 0xC5, 0x1E, 0x9D, 0xEA, 0xF1, 0x5E, 0x0B, 0x3E, 0xE0, + 0x39, 0x4A, 0x08, 0x5E, 0x60, 0x24, 0x03, 0x01, 0x89, 0x3E, 0xD8, 0x77, 0x9D, 0xBC, 0x08, 0x40, + 0x76, 0x0D, 0xCD, 0xC7, 0xA4, 0x47, 0x52, 0x2E, 0x4E, 0x80, 0x02, 0x14, 0x0E, 0xCC, 0xB4, 0x1E, + 0x5A, 0x63, 0x86, 0xB6, 0xC0, 0xEA, 0xE5, 0xE5, 0xF9, 0xEE, 0x58, 0xD5, 0xA0, 0xF0, 0x05, 0xCD, + 0xD6, 0x04, 0x3D, 0x0D, 0x8D, 0x3F, 0xBF, 0x3C, 0xFF, 0xE5, 0xC3, 0x4B, 0x8D, 0x0A, 0xFB, 0x81, + 0xDC, 0x1D, 0xBD, 0x75, 0x8C, 0x55, 0x1B, 0xB3, 0x6E, 0xEA, 0xEA, 0x6D, 0xCD, 0x88, 0x11, 0x8C, + 0x66, 0xFC, 0x01, 0x19, 0xCE, 0x23, 0x12, 0x8D, 0xB1, 0xBB, 0x73, 0xAD, 0xA6, 0x77, 0x75, 0xDE, + 0xFA, 0xE9, 0xED, 0xDB, 0x3F, 0xB5, 0xC2, 0x30, 0x24, 0xED, 0xB6, 0x87, 0x43, 0xAC, 0x97, 0xAD, + 0x6A, 0xFB, 0x56, 0x46, 0xEC, 0xC5, 0xF9, 0xE5, 0x13, 0x08, 0x44, 0x21, 0xBD, 0x8A, 0xEE, 0xE3, + 0x34, 0x9A, 0xD7, 0xE1, 0xFD, 0x2E, 0xC3, 0x89, 0x32, 0xBB, 0xD1, 0x18, 0xB3, 0x6A, 0x2B, 0x5A, + 0x26, 0x93, 0xE8, 0x95, 0x9A, 0x36, 0x28, 0x78, 0xFF, 0x7F, 0xAD, 0x42, 0x9B, 0x35, 0x60, 0x16, + 0x79, 0x82, 0x27, 0xD9, 0x40, 0x5B, 0x41, 0xC1, 0x54, 0x1E, 0x14, 0xB9, 0x9B, 0xF3, 0x71, 0x6B, + 0xAF, 0x05, 0x5D, 0x70, 0xC5, 0xCB, 0x13, 0x5A, 0x90, 0x2D, 0xC1, 0x0A, 0x20, 0xCF, 0x4D, 0x20, + 0x9C, 0xE7, 0xB1, 0x8C, 0x9F, 0x5F, 0x85, 0xD9, 0xF3, 0x2A, 0x66, 0xEF, 0xF1, 0xED, 0x72, 0x47, + 0xD4, 0x7E, 0xA8, 0xA2, 0xF6, 0x22, 0xFD, 0x9C, 0xEC, 0x06, 0xE4, 0xBC, 0x0A, 0xE4, 0x15, 0xD7, + 0x36, 0xEE, 0x06, 0xE7, 0x45, 0x15, 0xCE, 0x0F, 0xD1, 0xEC, 0xE3, 0xEE, 0x80, 0x5E, 0x56, 0x01, + 0xBD, 0x41, 0x5F, 0x88, 0x78, 0x62, 0xDB, 0x01, 0xD0, 0xAB, 0x2A, 0xA0, 0x77, 0x19, 0x9A, 0xA1, + 0x39, 0x4E, 0x6E, 0x77, 0x87, 0xF6, 0x63, 0x15, 0x1A, 0x25, 0xD2, 0xE7, 0x37, 0x79, 0x1A, 0xAF, + 0xC9, 0x8E, 0xC0, 0x7E, 0x72, 0xA0, 0x26, 0xCE, 0xCB, 0xDD, 0x00, 0x5D, 0xD4, 0xAE, 0xDE, 0x87, + 0xE8, 0x66, 0x37, 0x50, 0xFF, 0x7F, 0x13, 0x14, 0xBB, 0x70, 0x5D, 0x24, 0xF4, 0x8E, 0x1E, 0x47, + 0xF7, 0x3C, 0xCF, 0xDF, 0x36, 0xB0, 0x56, 0x19, 0x5A, 0xE0, 0x2F, 0xE3, 0xD6, 0x99, 0x22, 0xF5, + 0x0D, 0x60, 0xFD, 0x5D, 0x50, 0xFC, 0x93, 0x03, 0x16, 0x5F, 0xC9, 0xA7, 0xE3, 0xD7, 0x04, 0x73, + 0x27, 0xE4, 0x5E, 0x57, 0xB9, 0x98, 0x78, 0xE7, 0xDE, 0x05, 0xCA, 0xCF, 0x26, 0x94, 0x39, 0x0B, + 0x3E, 0xF4, 0x04, 0x28, 0xEF, 0xAA, 0x50, 0x76, 0xE1, 0xA8, 0x02, 0xCA, 0x65, 0x95, 0x4B, 0x6D, + 0xCD, 0xFA, 0x04, 0x88, 0x0F, 0x55, 0x10, 0xBB, 0xB3, 0xA8, 0x3F, 0x57, 0x96, 0xE8, 0x09, 0x83, + 0xF9, 0xDF, 0xF5, 0xFC, 0x69, 0xE7, 0xAD, 0xF2, 0xBB, 0x05, 0x6B, 0x19, 0xD1, 0xCD, 0xFB, 0x34, + 0x46, 0x10, 0x99, 0x90, 0x96, 0x92, 0x07, 0xBC, 0x17, 0x9E, 0x47, 0xBB, 0xC1, 0xBA, 0x31, 0x61, + 0x71, 0x67, 0x6B, 0xC5, 0xEF, 0x54, 0x66, 0x9A, 0xDD, 0x40, 0xCE, 0xAC, 0xE5, 0x43, 0xC9, 0xFC, + 0x05, 0xA2, 0x12, 0xC7, 0x73, 0x42, 0x32, 0x7C, 0xB3, 0x26, 0x28, 0x7F, 0x97, 0xE1, 0xBB, 0x28, + 0xBB, 0xDF, 0x12, 0xAA, 0xDC, 0x7D, 0xA7, 0x6A, 0xF7, 0x6D, 0xEC, 0xE0, 0x12, 0xCD, 0xD2, 0x64, + 0xBE, 0x7D, 0x17, 0x02, 0xEE, 0xDC, 0x84, 0x1B, 0xE3, 0x04, 0x3D, 0x79, 0x85, 0x90, 0x09, 0xE9, + 0xD3, 0xD7, 0xAD, 0xD0, 0xC2, 0x5A, 0xED, 0xFF, 0x7C, 0x1A, 0xCB, 0xBF, 0x35, 0x81, 0x90, 0xE8, + 0xE6, 0x9C, 0x05, 0xBB, 0xDD, 0x09, 0xC4, 0xD2, 0x9E, 0x75, 0xC2, 0x2C, 0x01, 0x76, 0x5B, 0x42, + 0xCD, 0x40, 0x5D, 0xC0, 0x44, 0xA6, 0xEC, 0xDD, 0xB0, 0x8A, 0x6D, 0xFA, 0xFD, 0x5A, 0xBC, 0xDC, + 0xE0, 0x9E, 0x84, 0xD9, 0x5D, 0x79, 0xBF, 0x6B, 0xFA, 0xDC, 0x0D, 0x50, 0x62, 0xF3, 0x65, 0x4A, + 0xEA, 0x97, 0x24, 0x22, 0xEB, 0x6D, 0xC1, 0x54, 0x47, 0x59, 0x0B, 0x71, 0xB7, 0x81, 0x96, 0x24, + 0xD5, 0x7D, 0x05, 0x7F, 0x65, 0xAD, 0x6E, 0xBA, 0xE0, 0x3A, 0xC2, 0xAF, 0x95, 0x7F, 0xFF, 0x5A, + 0xA2, 0x99, 0x73, 0xA1, 0x4B, 0xB8, 0x8F, 0x77, 0x5C, 0x99, 0xAC, 0x04, 0x88, 0x2B, 0x60, 0xDE, + 0xA3, 0xDB, 0x9D, 0xB7, 0x55, 0x6E, 0x41, 0x8A, 0x3E, 0x21, 0x99, 0xE2, 0x78, 0x17, 0x20, 0xC4, + 0x04, 0xC2, 0x75, 0xE2, 0x6F, 0x95, 0x85, 0xE3, 0x0E, 0x70, 0xD6, 0x25, 0xDA, 0x65, 0xD1, 0x83, + 0x77, 0xC1, 0xA7, 0x34, 0xF3, 0x7F, 0x54, 0x33, 0x5F, 0x38, 0xEE, 0x5A, 0x69, 0xBC, 0xBE, 0xDB, + 0x1A, 0xC3, 0x5A, 0xC8, 0xFF, 0xED, 0x90, 0x39, 0xBE, 0x02, 0xF2, 0x1F, 0x5B, 0x7F, 0xAC, 0xA1, + 0x96, 0x18, 0xCD, 0xC8, 0xBB, 0x2C, 0x25, 0x68, 0x46, 0xD0, 0xB6, 0x77, 0x8B, 0x12, 0xD6, 0xDF, + 0xB9, 0xE9, 0x3B, 0xE3, 0x2A, 0x59, 0xCE, 0x76, 0xB6, 0x15, 0xFF, 0x8C, 0x3D, 0xF9, 0xA4, 0x5E, + 0xAA, 0x82, 0x6B, 0x45, 0x07, 0xE2, 0x25, 0xBD, 0x73, 0xBF, 0xF7, 0xC3, 0xCB, 0xD7, 0x46, 0x4E, + 0x94, 0x1B, 0x14, 0xC7, 0xDE, 0xB6, 0x4D, 0x5F, 0xBF, 0x32, 0x5A, 0xC6, 0xD2, 0x80, 0x6B, 0xDB, + 0xD6, 0xFF, 0xF9, 0xE1, 0x6B, 0x5A, 0xBF, 0xFA, 0xAA, 0xBE, 0xCF, 0xDF, 0x1B, 0xAD, 0x67, 0x51, + 0x96, 0xE1, 0xE8, 0x16, 0xBD, 0xE7, 0xDE, 0xF0, 0x5B, 0x4F, 0xDC, 0xA5, 0x39, 0x6F, 0xD1, 0xEC, + 0x63, 0xBE, 0x8A, 0x66, 0x68, 0xEB, 0xE6, 0x3F, 0x99, 0xC3, 0x27, 0xD1, 0xCD, 0xD6, 0x0D, 0x2F, + 0xDF, 0x1A, 0x0D, 0x59, 0xC0, 0xC5, 0xB7, 0xDC, 0x19, 0x64, 0xBB, 0xD6, 0x17, 0xE5, 0xD6, 0x17, + 0xDB, 0x0E, 0x39, 0xE8, 0x5D, 0xBC, 0x79, 0x61, 0xB4, 0x66, 0xE1, 0x1C, 0xB7, 0x6E, 0xFB, 0xC6, + 0xA2, 0xB3, 0x44, 0xDE, 0xBD, 0xB7, 0x6D, 0xFE, 0xD3, 0x87, 0x4B, 0x7B, 0xBE, 0x2E, 0x91, 0x63, + 0xD0, 0x0E, 0xCB, 0x50, 0x1F, 0x72, 0x97, 0x05, 0xE3, 0x93, 0xA7, 0xCC, 0xD0, 0x72, 0x44, 0x98, + 0xFA, 0x5B, 0x45, 0xDB, 0xCF, 0xF9, 0xC3, 0xFC, 0x9B, 0xE8, 0x8E, 0x7D, 0x63, 0x9B, 0x75, 0x73, + 0x1F, 0x81, 0xBB, 0x0F, 0x07, 0xC4, 0x6D, 0xA0, 0xF5, 0x9B, 0xA1, 0x49, 0x84, 0xB7, 0x01, 0x35, + 0x6C, 0x06, 0xF5, 0x36, 0xE3, 0x2F, 0x43, 0x2C, 0xC6, 0x24, 0x9A, 0xCB, 0x68, 0xEC, 0xDB, 0x40, + 0x3E, 0x6A, 0x86, 0xFC, 0xD3, 0xFD, 0x0A, 0x65, 0x31, 0x4E, 0x3E, 0x6E, 0x09, 0x2E, 0xA8, 0x59, + 0xA6, 0x32, 0xA6, 0xAF, 0x6E, 0x77, 0x41, 0x32, 0xD8, 0xB0, 0x30, 0x12, 0xEA, 0x0F, 0xBB, 0x41, + 0xDD, 0xB0, 0x40, 0x12, 0x2A, 0x3F, 0x5A, 0x77, 0x82, 0xEC, 0x37, 0x2D, 0x98, 0x38, 0xB1, 0x9F, + 0xB0, 0x58, 0x41, 0xE3, 0xF4, 0x0A, 0xB8, 0xBB, 0x4E, 0x6D, 0xD3, 0xDC, 0x0A, 0x90, 0x3B, 0xCE, + 0x6B, 0xE3, 0xC4, 0x5A, 0xF2, 0xCA, 0x46, 0xB0, 0x86, 0xE1, 0xBB, 0x94, 0x7E, 0x0E, 0xA5, 0xC1, + 0x6F, 0x59, 0x16, 0xDB, 0x05, 0xC8, 0x91, 0x05, 0xC4, 0x96, 0xA1, 0x76, 0x81, 0xF3, 0xC2, 0x82, + 0x53, 0xC3, 0x49, 0x1B, 0xDA, 0xBF, 0xB4, 0xDA, 0xD7, 0x73, 0xD3, 0x06, 0x10, 0x3F, 0x59, 0x20, + 0x36, 0x71, 0x54, 0x07, 0x80, 0x9F, 0x4B, 0x73, 0xC1, 0x92, 0x6A, 0x5F, 0xEC, 0x3C, 0x94, 0xD0, + 0x02, 0xF3, 0x11, 0xDD, 0xAF, 0xA2, 0xF9, 0xF3, 0xD5, 0x2A, 0xC6, 0x33, 0xE6, 0xF2, 0xCB, 0xED, + 0xC9, 0x77, 0x80, 0x77, 0xEA, 0x80, 0xF7, 0x66, 0x7D, 0x87, 0x32, 0x3C, 0xDB, 0x19, 0xD6, 0xCC, + 0x82, 0xB5, 0x58, 0xD3, 0x4B, 0x40, 0xBE, 0xE3, 0x34, 0x25, 0x36, 0xDD, 0x21, 0xC2, 0xFD, 0x80, + 0xBC, 0xFE, 0x2E, 0x40, 0xD2, 0x1A, 0x20, 0x83, 0x5D, 0x80, 0x3C, 0x7E, 0x0B, 0x20, 0xC5, 0xB7, + 0x18, 0xCE, 0x7F, 0xD7, 0x00, 0xA9, 0x57, 0xB7, 0x9A, 0x40, 0x4A, 0x02, 0xF1, 0x1F, 0xEC, 0xA7, + 0x19, 0x03, 0x2C, 0x95, 0xE9, 0x5F, 0xF0, 0x54, 0x31, 0xC2, 0x85, 0x7D, 0xBB, 0x95, 0xAB, 0xED, + 0xE0, 0xC7, 0xAD, 0x3A, 0x30, 0x42, 0x1C, 0xA3, 0x3D, 0x9C, 0xEC, 0xA5, 0xBD, 0xF3, 0x9F, 0x9E, + 0xBF, 0xBF, 0x7C, 0xF9, 0xE1, 0x12, 0xEC, 0xDA, 0xB5, 0x27, 0xBB, 0x46, 0xD5, 0x8E, 0x65, 0x8F, + 0x2D, 0xAF, 0xD5, 0xA9, 0xBF, 0xAF, 0x34, 0x00, 0x07, 0xDB, 0x00, 0x07, 0x4F, 0x04, 0xFE, 0xFD, + 0x36, 0xC0, 0xBF, 0x7F, 0x22, 0xF0, 0xCE, 0x36, 0xC0, 0x3B, 0x4F, 0x04, 0xDE, 0xDD, 0x06, 0x78, + 0xF7, 0x89, 0xC0, 0x7B, 0xDB, 0x00, 0xEF, 0x3D, 0x11, 0xF8, 0xB3, 0x6D, 0x80, 0x3F, 0xE3, 0xC0, + 0x27, 0xBB, 0x02, 0xFF, 0x0F, 0xB5, 0x0B, 0xEC, 0x43, 0x90, 0x9B, 0xF6, 0x3E, 0x8F, 0xF1, 0x6D, + 0x72, 0x87, 0x12, 0xF2, 0x2E, 0x22, 0x04, 0xD5, 0x5D, 0xA3, 0xB2, 0x2C, 0xCD, 0xAA, 0x52, 0xB8, + 0xF9, 0xEA, 0x8C, 0x78, 0x1C, 0xC5, 0x77, 0x51, 0x96, 0xE3, 0xE4, 0x76, 0x8F, 0xFD, 0x39, 0xDE, + 0x6B, 0x41, 0x04, 0x60, 0xFD, 0x94, 0x18, 0xCE, 0x69, 0xF5, 0x77, 0x72, 0x7A, 0xDF, 0xA7, 0xE2, + 0xC5, 0xAA, 0x67, 0x54, 0xB7, 0x9C, 0x97, 0xC5, 0x15, 0x9A, 0x6B, 0xBA, 0xE4, 0x1B, 0x36, 0x77, + 0x5E, 0x2E, 0x6E, 0x11, 0x91, 0x96, 0x82, 0x95, 0xCC, 0x9F, 0xDA, 0xE8, 0xB0, 0xB8, 0x5E, 0x65, + 0x28, 0x47, 0xD9, 0x27, 0x6E, 0xE7, 0xA2, 0x1D, 0x1E, 0x0C, 0xB4, 0x59, 0x49, 0x8F, 0x1B, 0xC0, + 0x84, 0xFB, 0x7E, 0xC5, 0x38, 0xA6, 0x67, 0x5A, 0xC4, 0x28, 0x73, 0x53, 0x77, 0xF9, 0x5F, 0xC2, + 0xAA, 0x71, 0x4D, 0xCF, 0xB2, 0x99, 0x51, 0x46, 0xA8, 0x66, 0xDF, 0x42, 0x43, 0x1C, 0xE6, 0x05, + 0x9B, 0xFA, 0x38, 0xFD, 0xFC, 0x1E, 0xE5, 0x69, 0xFC, 0x09, 0x27, 0xB7, 0xCF, 0x73, 0xE6, 0x27, + 0xDA, 0xE8, 0xCC, 0xFA, 0xC9, 0xE5, 0xCC, 0xFA, 0x2E, 0x4B, 0xEF, 0x70, 0x8E, 0x7A, 0x19, 0xBD, + 0x04, 0x5F, 0x21, 0x36, 0xD5, 0xE2, 0x9B, 0x9A, 0x65, 0x76, 0x7B, 0xB9, 0x43, 0xA9, 0x8A, 0x71, + 0xE0, 0xB5, 0xFE, 0xE3, 0xF2, 0xF5, 0xDB, 0x5F, 0xAF, 0x3F, 0x5C, 0xFC, 0xFC, 0xF2, 0xED, 0x2F, + 0x1F, 0x5A, 0x00, 0xC0, 0x11, 0xA2, 0xC7, 0xD1, 0x14, 0xF4, 0x78, 0x4A, 0x28, 0x66, 0x9F, 0x81, + 0x17, 0xE5, 0x8A, 0x3C, 0xA1, 0x14, 0x8B, 0xBE, 0x89, 0x98, 0xD7, 0x41, 0x1A, 0x4B, 0xCF, 0xD9, + 0x88, 0x8E, 0x60, 0x8F, 0x53, 0xC8, 0x1E, 0xF7, 0x97, 0xCB, 0xF6, 0x48, 0xF4, 0x91, 0x92, 0x53, + 0x9C, 0x26, 0xB7, 0xF4, 0xAF, 0x65, 0x94, 0xEC, 0x8D, 0x7C, 0xDF, 0xDF, 0xBB, 0xCB, 0x5B, 0xA0, + 0x00, 0x80, 0x87, 0xE2, 0x5F, 0x67, 0x19, 0x4A, 0xA8, 0x20, 0xF5, 0xF1, 0x62, 0xDE, 0xB0, 0xC8, + 0x2A, 0x93, 0x5C, 0x6F, 0x9D, 0xC5, 0x17, 0xF3, 0x42, 0x7B, 0xB9, 0xB3, 0x68, 0xC6, 0x18, 0x4A, + 0x9B, 0x44, 0xD3, 0x5E, 0xA7, 0xF7, 0x05, 0x66, 0xAE, 0xCF, 0xF7, 0x30, 0x09, 0xA5, 0xDF, 0x44, + 0x1A, 0xD6, 0x90, 0xC9, 0x04, 0x2F, 0xBC, 0x94, 0xB9, 0x23, 0xE0, 0xD0, 0xDA, 0x00, 0xBC, 0x6B, + 0xE3, 0xD3, 0x0F, 0x86, 0xF5, 0x51, 0x2D, 0x4D, 0x50, 0x92, 0xB6, 0x73, 0xB0, 0x38, 0x89, 0x00, + 0x03, 0x88, 0x27, 0x79, 0x15, 0x27, 0x93, 0x3E, 0xD5, 0xA0, 0x6A, 0xE8, 0xD3, 0x41, 0x7C, 0x82, + 0xF0, 0x03, 0x28, 0xBD, 0x68, 0x4E, 0xCF, 0xDB, 0x6D, 0x2F, 0x71, 0x8C, 0x5D, 0x90, 0x69, 0xE7, + 0x9C, 0x25, 0xDB, 0xDC, 0x9E, 0x20, 0x5F, 0xBC, 0xFC, 0xE1, 0x97, 0x1F, 0xA5, 0xAB, 0x4C, 0xD5, + 0xA2, 0x65, 0x25, 0x78, 0xCB, 0x3C, 0x22, 0x51, 0xAB, 0xE3, 0xC9, 0xE8, 0xB2, 0xCA, 0x33, 0x08, + 0x9D, 0xFD, 0xBE, 0xD7, 0xFA, 0xEE, 0x01, 0x15, 0xAD, 0xDF, 0xC7, 0xEC, 0x17, 0x4F, 0x64, 0xB0, + 0xCA, 0x52, 0x92, 0xD2, 0x2A, 0xBD, 0xBB, 0x68, 0xC5, 0x1D, 0xB3, 0x10, 0x53, 0xBF, 0x71, 0x4E, + 0xD1, 0x5B, 0x64, 0xE9, 0x1D, 0x65, 0xB2, 0xE7, 0xF2, 0x79, 0xA1, 0xF7, 0x7F, 0x53, 0x9C, 0x78, + 0xAD, 0x16, 0x28, 0x5A, 0xBF, 0x03, 0xE8, 0xE8, 0x06, 0x31, 0x9F, 0x33, 0x42, 0xAB, 0x50, 0x98, + 0x8C, 0xD6, 0x11, 0x7B, 0x09, 0xA0, 0x30, 0x9E, 0x13, 0xCF, 0x07, 0x00, 0x8C, 0x91, 0xC5, 0xF4, + 0x04, 0xD9, 0x88, 0x9C, 0x00, 0xC8, 0xCE, 0xB0, 0xE2, 0xAA, 0x72, 0xAE, 0x1C, 0xC3, 0x8C, 0xC2, + 0x8A, 0x19, 0xB8, 0xCE, 0x54, 0x25, 0x3D, 0xB1, 0xCE, 0x29, 0xB7, 0x4D, 0x1F, 0x1F, 0x79, 0xDB, + 0x92, 0x9D, 0x1C, 0xCF, 0x85, 0xC8, 0x02, 0x51, 0x78, 0xC0, 0x58, 0x48, 0xC3, 0x47, 0x2F, 0x99, + 0x10, 0x85, 0xDE, 0x84, 0x74, 0xC2, 0x73, 0x1D, 0x27, 0x92, 0x74, 0xCE, 0x55, 0xD1, 0x19, 0xE9, + 0x9C, 0x8F, 0x91, 0x76, 0xFF, 0x72, 0x4C, 0x13, 0xC7, 0xC0, 0x32, 0x4E, 0x17, 0xF4, 0xEC, 0xA1, + 0x5E, 0xBE, 0xBE, 0xE1, 0x25, 0x1E, 0x81, 0x89, 0x63, 0xA6, 0x64, 0xE6, 0x25, 0xC3, 0x66, 0xDD, + 0x6A, 0x1C, 0xF1, 0xE4, 0x14, 0xEE, 0xB6, 0x93, 0xED, 0x77, 0x5C, 0x5A, 0xDA, 0x52, 0xF6, 0x39, + 0x90, 0xC3, 0x0C, 0xA6, 0x90, 0x98, 0x56, 0x56, 0xEE, 0xFD, 0xC6, 0x73, 0x89, 0xE0, 0x85, 0xB7, + 0x9F, 0xEA, 0x50, 0x96, 0x3B, 0xCE, 0xC9, 0x6E, 0x93, 0xF0, 0x75, 0xC3, 0x2E, 0x73, 0x92, 0xEA, + 0xB0, 0x09, 0xF4, 0xB7, 0x18, 0xB6, 0x8B, 0x61, 0x86, 0x61, 0xA8, 0x1C, 0xDE, 0x6C, 0x9E, 0x19, + 0x86, 0x61, 0x26, 0x29, 0xD3, 0x32, 0xE8, 0x65, 0x7E, 0x8A, 0x15, 0x33, 0x7D, 0xD3, 0xD8, 0x5D, + 0xE7, 0x58, 0xAC, 0xD0, 0x34, 0x4B, 0xB7, 0xE2, 0xB6, 0x0B, 0xED, 0xA1, 0x64, 0x0E, 0x0A, 0xD3, + 0x10, 0x8D, 0xB1, 0xFA, 0x1C, 0x66, 0xCA, 0xE5, 0x4D, 0x1C, 0x13, 0xB6, 0xBB, 0xB7, 0xF8, 0x13, + 0x4A, 0xCE, 0x5E, 0xEF, 0x93, 0xCE, 0xA5, 0xA8, 0xF7, 0x28, 0x9A, 0xA3, 0x8C, 0x5E, 0x53, 0x61, + 0xE4, 0xB4, 0x2E, 0x9D, 0xA5, 0x71, 0x0E, 0x97, 0x2A, 0x9B, 0xB8, 0xF6, 0x1F, 0x9F, 0xA3, 0x99, + 0x78, 0x9B, 0xA3, 0xAD, 0xF3, 0xDE, 0xE7, 0x2C, 0x5A, 0x45, 0x22, 0x9D, 0xB8, 0xA3, 0xFA, 0x1D, + 0xAB, 0xC4, 0x5F, 0x6A, 0x58, 0x77, 0xD2, 0x86, 0xD9, 0x38, 0xE7, 0x98, 0x97, 0xCD, 0xDA, 0x75, + 0x68, 0xC5, 0x38, 0x41, 0x3C, 0x93, 0x8D, 0x6B, 0x75, 0x6E, 0xA2, 0x1C, 0x75, 0x5C, 0x05, 0x52, + 0xE6, 0x2C, 0x4F, 0xEE, 0x5D, 0x94, 0x7D, 0x34, 0xE3, 0xD9, 0x94, 0x5A, 0x39, 0x2C, 0x6F, 0x7B, + 0x5F, 0xDA, 0x6D, 0xDC, 0x25, 0xA7, 0x7E, 0xBB, 0xDD, 0x0F, 0xC3, 0x70, 0xCD, 0x3D, 0xA6, 0xE6, + 0x64, 0xE9, 0x82, 0xF0, 0xA5, 0x1B, 0x80, 0x76, 0x7B, 0xCD, 0x5E, 0x04, 0x51, 0x1C, 0xBF, 0xA2, + 0x7C, 0x3A, 0x9D, 0xA3, 0x77, 0x29, 0x5D, 0x4D, 0x77, 0x7D, 0x16, 0xEC, 0x7B, 0xDE, 0x5B, 0xDC, + 0xC2, 0x79, 0xEF, 0x86, 0xFE, 0x47, 0x1E, 0xF9, 0xDA, 0x63, 0x77, 0x11, 0x92, 0xC9, 0xE2, 0x04, + 0x4F, 0x3A, 0x9D, 0x05, 0x3B, 0x99, 0xF3, 0x10, 0x5D, 0x2D, 0xA6, 0xEA, 0x3C, 0xB4, 0x3D, 0x73, + 0x7A, 0x9F, 0x67, 0x2C, 0x4F, 0x81, 0x97, 0x03, 0x98, 0x9F, 0x04, 0xFD, 0xC3, 0x76, 0x3B, 0xD1, + 0xCE, 0xF0, 0xC9, 0x95, 0xEB, 0x08, 0xC9, 0xC1, 0x74, 0x82, 0xDA, 0x6D, 0x0A, 0xB8, 0x74, 0x26, + 0xB0, 0x4C, 0xD9, 0x72, 0x67, 0x18, 0x56, 0xF8, 0x8C, 0xB6, 0x59, 0xC2, 0x4C, 0xCE, 0x18, 0xAC, + 0x91, 0x02, 0x2F, 0x57, 0xE2, 0x73, 0x55, 0xD8, 0x51, 0xD0, 0x2C, 0x07, 0xA4, 0x5E, 0x34, 0x9F, + 0xBF, 0xC6, 0x09, 0x62, 0xA1, 0x28, 0x3E, 0x7A, 0x75, 0x8D, 0x5D, 0x0B, 0xD4, 0x40, 0x05, 0x30, + 0x7B, 0x7C, 0xDC, 0x77, 0xCD, 0xBB, 0x91, 0x0C, 0xCF, 0x2E, 0xE8, 0x64, 0xDD, 0xE0, 0x34, 0x8C, + 0x00, 0x5E, 0x78, 0x4B, 0x1E, 0xD2, 0x65, 0xE2, 0xAA, 0x76, 0x12, 0x4D, 0xC0, 0x0E, 0xCB, 0xDC, + 0xE9, 0x34, 0x2C, 0xB3, 0x93, 0x21, 0xF9, 0xCE, 0x91, 0xCA, 0xE4, 0x50, 0x55, 0x26, 0xE5, 0xF8, + 0x6C, 0x46, 0x5C, 0xEA, 0x04, 0x67, 0x4E, 0x8A, 0x57, 0x09, 0xA8, 0x9C, 0x81, 0x51, 0x78, 0x91, + 0xE5, 0xBB, 0xE4, 0xF1, 0x97, 0x8A, 0xB1, 0x13, 0xDA, 0xA9, 0x93, 0x91, 0x64, 0xE9, 0x67, 0xED, + 0x32, 0x5E, 0x42, 0xBC, 0xAE, 0x7E, 0x37, 0x70, 0x2E, 0xF5, 0x53, 0xB9, 0x41, 0x0F, 0xE7, 0x22, + 0xC8, 0x02, 0x8B, 0x5B, 0xF3, 0x4D, 0x39, 0x8D, 0x3A, 0x47, 0x9D, 0xEB, 0x18, 0x75, 0x03, 0x48, + 0xF9, 0x46, 0x06, 0x66, 0x69, 0x42, 0x70, 0xB2, 0x46, 0xF4, 0xC8, 0x8B, 0xDB, 0x6D, 0x6F, 0x2D, + 0x5F, 0xAF, 0x51, 0x1C, 0xE7, 0xCE, 0xC6, 0x30, 0x73, 0xCD, 0xC1, 0x2D, 0x22, 0x6F, 0xD6, 0x71, + 0x4C, 0x9B, 0x79, 0x73, 0x00, 0xE7, 0x00, 0x96, 0xF8, 0x52, 0xD4, 0xC4, 0x84, 0x28, 0x3E, 0xD7, + 0x22, 0x33, 0xD3, 0x4B, 0x96, 0x9E, 0xE9, 0xC5, 0x4B, 0xEB, 0xC3, 0xAF, 0x17, 0x2F, 0x3E, 0xFC, + 0xE4, 0xA6, 0x54, 0x00, 0x77, 0x23, 0x79, 0x7A, 0x26, 0x3B, 0x01, 0xC1, 0x4C, 0x64, 0x4E, 0x9B, + 0x74, 0xBB, 0xD9, 0xEE, 0x1B, 0xC9, 0x77, 0x43, 0xE5, 0x0B, 0xB1, 0x99, 0x41, 0x9F, 0xAD, 0x29, + 0xB3, 0xA1, 0xFD, 0xAC, 0x68, 0x3F, 0x1F, 0x52, 0x36, 0x95, 0x35, 0xDC, 0x39, 0x07, 0xE3, 0xED, + 0xAB, 0xF7, 0x61, 0x0E, 0x0A, 0x71, 0x58, 0x78, 0xEB, 0x5E, 0x9C, 0x46, 0xF3, 0x26, 0xD8, 0xFC, + 0xB3, 0x74, 0x5F, 0xE4, 0xEB, 0x68, 0x7F, 0xD3, 0x63, 0x01, 0x52, 0x08, 0x31, 0x8B, 0x18, 0xF3, + 0x06, 0xA7, 0x07, 0xA3, 0xD1, 0x60, 0x74, 0x66, 0x0B, 0x51, 0xCA, 0x6E, 0x4E, 0xE2, 0x1D, 0xFA, + 0xE3, 0x12, 0x00, 0x9C, 0x9F, 0xA7, 0x77, 0x37, 0x38, 0x41, 0x73, 0x0F, 0x6C, 0x6C, 0xED, 0xE8, + 0x9C, 0x99, 0x30, 0x02, 0xFB, 0xC0, 0x18, 0xEF, 0x08, 0x87, 0x6E, 0x0A, 0x94, 0x10, 0xF7, 0xC1, + 0x7B, 0x12, 0xA9, 0xA3, 0xD7, 0xDF, 0x7C, 0xF4, 0x82, 0x76, 0x7B, 0x7F, 0xDD, 0x5B, 0x46, 0xF9, + 0x39, 0x87, 0x59, 0x57, 0x69, 0x07, 0x6A, 0xAB, 0x67, 0xDA, 0x35, 0xB2, 0xDB, 0x06, 0xF1, 0x62, + 0x43, 0x28, 0xA3, 0x16, 0x61, 0xCA, 0x86, 0x1E, 0xD3, 0x22, 0x3D, 0x3E, 0xA2, 0x1E, 0xB7, 0xCC, + 0xA0, 0xBF, 0x2C, 0x55, 0xD3, 0x99, 0x53, 0x33, 0x55, 0x82, 0x39, 0xDE, 0x5C, 0x89, 0x5E, 0x02, + 0xF7, 0x6F, 0x3C, 0xD4, 0xE3, 0xBE, 0x35, 0x57, 0xBE, 0xF4, 0x6D, 0xDD, 0x14, 0xCF, 0x48, 0xFC, + 0x45, 0x69, 0x92, 0x87, 0xEA, 0xD8, 0x2A, 0xD8, 0x53, 0xBD, 0x26, 0x0D, 0x55, 0xB5, 0x65, 0x04, + 0x6C, 0x19, 0x8C, 0xAA, 0x5E, 0xAB, 0xB8, 0x7D, 0xC8, 0xA7, 0xFA, 0x87, 0x42, 0x54, 0x7D, 0x26, + 0xA4, 0x98, 0x71, 0xDB, 0x95, 0x72, 0x00, 0x3E, 0xD3, 0xC3, 0x56, 0x5C, 0x0F, 0xF6, 0xFD, 0x42, + 0x5B, 0x8C, 0xD8, 0xF5, 0x9F, 0x26, 0x9A, 0xD6, 0x2F, 0xCD, 0x2C, 0x4D, 0x3E, 0xA1, 0x8C, 0xBC, + 0x4C, 0x63, 0xF7, 0x61, 0xFB, 0x45, 0x47, 0x67, 0xF9, 0xC7, 0x13, 0x2A, 0x54, 0xDA, 0xE2, 0xFF, + 0x61, 0x81, 0xE2, 0x8B, 0xBB, 0x07, 0x7A, 0xF7, 0x71, 0xDE, 0x07, 0xBF, 0xA8, 0xB1, 0x3D, 0x71, + 0xF9, 0xB4, 0xDF, 0xA6, 0xA6, 0x90, 0xB2, 0x55, 0x50, 0x29, 0x13, 0x71, 0x59, 0x30, 0xDC, 0xF7, + 0x0B, 0xC3, 0x06, 0x48, 0x44, 0x9B, 0xD4, 0x41, 0x8C, 0x9A, 0xAE, 0x6A, 0xE2, 0xE5, 0xF4, 0x57, + 0x75, 0x63, 0xB3, 0xAF, 0xD4, 0x19, 0xA2, 0xD2, 0xFC, 0x8C, 0xC8, 0x57, 0x66, 0xF7, 0x8C, 0xF9, + 0xB5, 0x33, 0xB3, 0xEF, 0x4F, 0x94, 0x1C, 0x54, 0x82, 0x55, 0x37, 0xCB, 0x75, 0x7D, 0x00, 0x77, + 0x17, 0x13, 0x29, 0x6C, 0xF9, 0x6E, 0xF2, 0xFC, 0xE2, 0xBE, 0xC5, 0x3B, 0x9C, 0x1C, 0x75, 0xD4, + 0x52, 0x77, 0x93, 0x93, 0x4D, 0xD4, 0xDF, 0x6E, 0x7B, 0xE5, 0x10, 0x9F, 0xDF, 0x44, 0x9E, 0xB4, + 0x82, 0x83, 0x9E, 0xF1, 0x9F, 0x63, 0xA4, 0x25, 0x58, 0xA0, 0x72, 0x90, 0x7F, 0x6B, 0xC9, 0x38, + 0x70, 0xF2, 0x01, 0x45, 0xF1, 0x25, 0x42, 0xAC, 0x5B, 0xD1, 0xAE, 0xCC, 0x8A, 0xF7, 0x4D, 0x67, + 0x65, 0x82, 0xE8, 0xD1, 0xDE, 0x7C, 0xFA, 0xA3, 0x2D, 0x4E, 0x7F, 0x37, 0x59, 0x15, 0xCD, 0xDB, + 0x60, 0xDF, 0x2F, 0x98, 0xD9, 0x5C, 0xDD, 0xA5, 0xB1, 0x9E, 0x89, 0x88, 0xFD, 0xB5, 0xEF, 0x37, + 0xCD, 0xC9, 0x97, 0x49, 0xD3, 0x86, 0x77, 0x7C, 0x4C, 0xD0, 0x17, 0x72, 0x49, 0xD2, 0x95, 0xB7, + 0xF9, 0x54, 0x28, 0x2B, 0x7B, 0xEC, 0xBB, 0xFC, 0x87, 0xE8, 0xC6, 0x54, 0x53, 0x95, 0xA6, 0x85, + 0x59, 0xA5, 0x15, 0xDA, 0xEE, 0xAF, 0xF4, 0x4C, 0x61, 0xEB, 0x9F, 0xCC, 0x97, 0x75, 0xD5, 0xEC, + 0xA2, 0xC2, 0xCD, 0x6A, 0x5B, 0xF9, 0xAC, 0x55, 0x79, 0xEE, 0x51, 0x03, 0x99, 0x39, 0xF7, 0xC1, + 0x17, 0x9D, 0xCC, 0x08, 0x41, 0x23, 0xC7, 0x94, 0x93, 0x1C, 0xDC, 0xE7, 0xE1, 0x16, 0x2A, 0xAF, + 0x34, 0xC3, 0xB7, 0x38, 0x39, 0x53, 0x5D, 0x6D, 0x60, 0x15, 0x1A, 0x91, 0x26, 0x3E, 0xE4, 0x44, + 0x06, 0x80, 0x71, 0xA9, 0x17, 0xD7, 0xD9, 0xB6, 0x61, 0xA4, 0x2A, 0xD2, 0xF8, 0xCE, 0x02, 0xEB, + 0xB5, 0xB2, 0x6D, 0x37, 0xE3, 0xCE, 0x3E, 0xED, 0xEC, 0xDB, 0x62, 0x42, 0xDD, 0x72, 0x0B, 0x6A, + 0x5A, 0x26, 0xF7, 0x5C, 0x76, 0x88, 0x5B, 0x45, 0x51, 0x0F, 0x4C, 0x62, 0x59, 0x73, 0x06, 0xEE, + 0x3C, 0x71, 0x77, 0xA9, 0xB6, 0xC0, 0xD7, 0x33, 0x57, 0x03, 0x5D, 0xCF, 0xB2, 0xF3, 0xD2, 0xEB, + 0xC6, 0xB9, 0x43, 0x40, 0x61, 0xF8, 0xF3, 0x2A, 0x1D, 0xBE, 0x93, 0x89, 0x37, 0x4D, 0x96, 0x62, + 0x3F, 0xA7, 0xA1, 0x2F, 0xEE, 0x16, 0x06, 0xF6, 0x3E, 0xEC, 0x6A, 0x0A, 0x84, 0xC6, 0x65, 0xE1, + 0xF1, 0x31, 0x50, 0x62, 0x9B, 0x5D, 0xDF, 0x2B, 0xD7, 0x62, 0x52, 0x8E, 0xE9, 0xDF, 0xDB, 0x84, + 0xAC, 0xB9, 0x73, 0x5C, 0x78, 0xDF, 0x6F, 0xC2, 0x77, 0x47, 0x74, 0x4B, 0x75, 0x34, 0xAE, 0xDA, + 0x8D, 0xD8, 0xE6, 0x61, 0xE6, 0xD2, 0x5A, 0x6D, 0xA1, 0x6F, 0xB4, 0x36, 0x9C, 0x87, 0x6B, 0x9B, + 0x57, 0x66, 0xCA, 0x82, 0x60, 0x78, 0x0D, 0x5B, 0x10, 0xAC, 0x99, 0x74, 0x1F, 0xCE, 0xBE, 0x86, + 0x52, 0x76, 0x19, 0x76, 0x80, 0x62, 0xF4, 0xB3, 0x11, 0x50, 0xC9, 0x5B, 0xD8, 0x1E, 0x94, 0xA6, + 0xE0, 0xF2, 0x90, 0xBA, 0x6E, 0xB1, 0xC2, 0x18, 0xA7, 0xE1, 0x46, 0x56, 0x07, 0x54, 0xBD, 0xFB, + 0x85, 0xFD, 0x33, 0xDD, 0x41, 0x20, 0x3A, 0x18, 0xFB, 0xB0, 0xDA, 0x2B, 0xEF, 0xA0, 0xE2, 0xDB, + 0xF8, 0x2D, 0xD0, 0x76, 0xF9, 0x39, 0xEE, 0x46, 0x22, 0x55, 0x8F, 0xBE, 0x3A, 0xBC, 0x9C, 0x7A, + 0x89, 0x9A, 0xD1, 0xBA, 0xBC, 0xFB, 0x6A, 0xF1, 0x72, 0x12, 0xBE, 0xE5, 0xD3, 0xE7, 0xA0, 0x14, + 0xA3, 0x54, 0x48, 0x45, 0xD2, 0x7B, 0xCF, 0xC8, 0x2D, 0xAF, 0xA0, 0xCA, 0x8D, 0xCA, 0x84, 0xF5, + 0x33, 0xEE, 0x52, 0xE3, 0x12, 0x72, 0x48, 0x74, 0x93, 0x5F, 0xB9, 0x06, 0x3A, 0x1D, 0x0F, 0x44, + 0x08, 0x89, 0x9A, 0x56, 0xE1, 0x43, 0x51, 0xDD, 0xB0, 0xDC, 0x1D, 0xF6, 0x6B, 0x84, 0x35, 0xFE, + 0xAE, 0x6C, 0xCF, 0x0F, 0x4F, 0xCC, 0x48, 0xBA, 0xDD, 0x89, 0xF3, 0x6E, 0xD2, 0x2C, 0xA7, 0x4D, + 0x24, 0xE8, 0xC2, 0xE5, 0xB9, 0xFB, 0x0F, 0x80, 0xEA, 0x2A, 0x43, 0x9F, 0xCA, 0xA8, 0x56, 0x3D, + 0x95, 0x9A, 0x16, 0x39, 0xB0, 0x56, 0xCA, 0x34, 0x62, 0xB9, 0xB9, 0x7D, 0x0C, 0x47, 0x83, 0x83, + 0xA3, 0x43, 0xFF, 0x38, 0xE8, 0x03, 0xD8, 0xDF, 0x67, 0x15, 0xFD, 0x7D, 0x16, 0xF8, 0xD9, 0x59, + 0xBF, 0x1D, 0x76, 0x65, 0x83, 0x01, 0x97, 0x0B, 0x85, 0x63, 0x3B, 0xC7, 0x56, 0xB8, 0xB7, 0xF3, + 0xAC, 0xFD, 0xFB, 0x01, 0xCC, 0x58, 0x84, 0x77, 0xFB, 0x79, 0x74, 0xD7, 0x5B, 0x07, 0x02, 0x93, + 0xA4, 0x97, 0xA1, 0x55, 0x1C, 0xCD, 0x90, 0x50, 0xC9, 0x43, 0xBC, 0x49, 0xFF, 0xEE, 0xD6, 0x65, + 0x40, 0xE7, 0x67, 0x98, 0x01, 0x98, 0xD3, 0x4B, 0xA3, 0x75, 0xE5, 0x02, 0x4C, 0xE4, 0x45, 0xC4, + 0x1E, 0x98, 0x31, 0x1E, 0xFC, 0xF4, 0xF1, 0x60, 0x96, 0x75, 0xD8, 0x55, 0x65, 0x9B, 0x31, 0x00, + 0xA7, 0x12, 0x47, 0x64, 0xF3, 0x60, 0x46, 0x19, 0x3F, 0x47, 0xD9, 0x47, 0x94, 0x39, 0xDF, 0x2E, + 0x24, 0x0E, 0x10, 0x5B, 0xA3, 0x2D, 0x2A, 0xF1, 0x13, 0xF8, 0x50, 0x99, 0x31, 0x93, 0x0C, 0x71, + 0xBA, 0xA3, 0xFE, 0xC0, 0x20, 0x45, 0x11, 0x1B, 0xD5, 0x1F, 0x53, 0xFA, 0x77, 0x4E, 0xDC, 0xFD, + 0x46, 0x71, 0x0E, 0x5B, 0xCB, 0x67, 0x51, 0x1C, 0x76, 0x6B, 0xCA, 0xBE, 0x38, 0x27, 0x8A, 0x3D, + 0x9F, 0xD7, 0x69, 0x29, 0x20, 0x01, 0x13, 0x7C, 0x52, 0x27, 0xCF, 0x4F, 0x70, 0xA7, 0x03, 0xD4, + 0x2C, 0x58, 0xB4, 0x81, 0x69, 0xCB, 0xCD, 0x43, 0x98, 0xDC, 0x64, 0x28, 0xFA, 0x28, 0x42, 0x86, + 0xFE, 0xAD, 0x66, 0x03, 0xBA, 0x6F, 0x55, 0x9D, 0x00, 0xEE, 0xFB, 0xB0, 0x46, 0xA5, 0xDF, 0x09, + 0x9A, 0x14, 0x6E, 0x2E, 0x4A, 0xD2, 0xA4, 0x8E, 0x3B, 0x81, 0xAD, 0xAE, 0x00, 0x13, 0xAC, 0x59, + 0xDC, 0x93, 0x66, 0xCA, 0xB7, 0x66, 0xAA, 0x6F, 0xCD, 0x54, 0x75, 0x5D, 0x36, 0xCF, 0x56, 0xF7, + 0x9B, 0xE3, 0x34, 0x18, 0x6F, 0x54, 0xA6, 0x88, 0x00, 0xD1, 0xB5, 0xD4, 0x84, 0xD8, 0x73, 0x54, + 0x6D, 0x73, 0x92, 0xE1, 0x3B, 0x66, 0x41, 0x57, 0x23, 0x03, 0xB2, 0xAD, 0x1C, 0x36, 0xDD, 0x60, + 0x59, 0x8D, 0x2E, 0x82, 0x35, 0xFA, 0xE5, 0x39, 0xCE, 0x57, 0xCD, 0xED, 0x69, 0x0D, 0xB3, 0xBD, + 0x9D, 0xD1, 0xC8, 0x67, 0x4F, 0x01, 0xE2, 0x4C, 0xB2, 0x03, 0x9C, 0x70, 0xEE, 0xF1, 0xED, 0xF8, + 0x46, 0x1D, 0xAD, 0x37, 0xEC, 0x9D, 0x6F, 0xC1, 0x0A, 0xAC, 0xDD, 0xBA, 0x13, 0x0E, 0xF5, 0x5B, + 0x30, 0x28, 0x01, 0xEE, 0x3F, 0x0D, 0xB0, 0x63, 0x24, 0x6C, 0x77, 0x17, 0x5F, 0xF5, 0x96, 0xB1, + 0xEF, 0x17, 0x76, 0x80, 0x99, 0x9A, 0xEB, 0xB1, 0x5B, 0xBA, 0x71, 0x4B, 0x4B, 0x0D, 0x4A, 0x5E, + 0x7E, 0x97, 0x94, 0x2F, 0xA8, 0x25, 0x3D, 0x6F, 0xD3, 0xCD, 0xB8, 0xAC, 0xBE, 0x73, 0x73, 0xD1, + 0x5A, 0xAD, 0xA5, 0x32, 0xCF, 0x75, 0xE9, 0x6C, 0xEA, 0xAF, 0xE4, 0x42, 0x69, 0xE4, 0x0E, 0xFA, + 0xC7, 0x1B, 0x3B, 0xBB, 0x63, 0xDB, 0x30, 0xEF, 0x6C, 0x10, 0xFF, 0xF8, 0xAE, 0x17, 0x29, 0x08, + 0xB2, 0x6E, 0x00, 0x9B, 0x4C, 0x2D, 0x44, 0xB5, 0x1A, 0x5E, 0x7F, 0x8B, 0xC8, 0x0F, 0x71, 0x94, + 0x7C, 0x34, 0xC8, 0xA8, 0xF2, 0xAE, 0x33, 0xD9, 0x48, 0x28, 0x95, 0x24, 0x63, 0x9B, 0xF7, 0x99, + 0x95, 0x4C, 0xAC, 0xE1, 0xE2, 0x6A, 0xC7, 0x1F, 0xFA, 0xE7, 0x24, 0x32, 0x86, 0x7E, 0xCE, 0xD6, + 0xFC, 0xAB, 0xC8, 0xAD, 0xA9, 0x71, 0x03, 0xB9, 0x6D, 0x47, 0x67, 0x78, 0x1B, 0x2A, 0xCB, 0xFF, + 0x1F, 0xA5, 0x32, 0x3B, 0xE2, 0x5F, 0x1D, 0x95, 0x35, 0x68, 0xBC, 0x9E, 0xFC, 0x28, 0x22, 0x47, + 0x4D, 0xCF, 0xF7, 0xCD, 0xE6, 0x44, 0x25, 0x4D, 0xC4, 0x37, 0xBC, 0xDB, 0x3C, 0x51, 0x4B, 0x0A, + 0xF4, 0x1E, 0xFD, 0xBB, 0xCF, 0x9E, 0x40, 0xE3, 0xFF, 0xB5, 0xD9, 0x33, 0xA2, 0x9A, 0x3D, 0xEC, + 0xAE, 0x0A, 0xB0, 0xB6, 0xDF, 0x2E, 0xB3, 0xA7, 0x1F, 0x2D, 0xB6, 0xD8, 0xD7, 0xBB, 0x03, 0x16, + 0x2C, 0xE9, 0xEF, 0xC6, 0x0E, 0x1A, 0xDF, 0x64, 0x6C, 0xB6, 0xA0, 0xD6, 0x40, 0x6A, 0xB6, 0xFF, + 0xC7, 0x57, 0x41, 0x4C, 0xD6, 0xDF, 0x64, 0x21, 0xE8, 0x14, 0x6C, 0x5E, 0x05, 0x47, 0x1C, 0xFB, + 0xBF, 0xCF, 0x1A, 0x88, 0xE8, 0xA8, 0x35, 0xFA, 0xB4, 0xFF, 0x89, 0xC3, 0xDB, 0xB9, 0xF2, 0x3C, + 0x75, 0x53, 0x13, 0x98, 0x09, 0xDA, 0x68, 0x6F, 0x30, 0xE9, 0x74, 0xD0, 0x37, 0x51, 0x0A, 0x99, + 0x9C, 0xCE, 0x87, 0xE4, 0xDB, 0x72, 0xB2, 0x92, 0xBE, 0xE7, 0xEF, 0x40, 0x03, 0x32, 0x0E, 0xED, + 0xBF, 0x89, 0xA0, 0x89, 0x08, 0x4C, 0x61, 0xE1, 0x9F, 0x8A, 0x08, 0xCA, 0x21, 0xC1, 0xFE, 0x4D, + 0x06, 0xDB, 0x92, 0x81, 0x5B, 0x3B, 0xF1, 0xCF, 0x43, 0x19, 0xE5, 0x90, 0x6E, 0xFF, 0xA6, 0x8C, + 0x6D, 0x4F, 0x89, 0x7F, 0x76, 0xCA, 0xB0, 0x42, 0xF2, 0xFE, 0xDD, 0x6E, 0x20, 0xF6, 0xE3, 0x93, + 0x73, 0xCA, 0x1D, 0x1F, 0x3B, 0x15, 0x13, 0x82, 0x7F, 0x90, 0x9B, 0x49, 0x43, 0x00, 0x5F, 0x23, + 0xE5, 0x66, 0xAD, 0xA7, 0xC0, 0xA6, 0x2D, 0x03, 0x71, 0xC5, 0xB3, 0x98, 0x80, 0x72, 0xA2, 0x4C, + 0xB6, 0x1B, 0xF0, 0x15, 0x9A, 0x86, 0x1B, 0x7A, 0xB3, 0x84, 0x55, 0xEE, 0x7C, 0x89, 0xA1, 0x0F, + 0x65, 0x96, 0x4C, 0x2E, 0x5E, 0x34, 0x86, 0x0F, 0x56, 0x79, 0x2C, 0x35, 0x96, 0xA7, 0xBE, 0x7A, + 0xDE, 0xC4, 0xB9, 0xD7, 0xFA, 0x42, 0x50, 0x76, 0xD7, 0x52, 0x8E, 0x1C, 0xF4, 0x53, 0xF6, 0xE5, + 0x13, 0xE9, 0x0A, 0xFF, 0x3D, 0xBB, 0x84, 0xDB, 0xED, 0xB5, 0xA4, 0x63, 0x86, 0x69, 0x3B, 0x45, + 0x32, 0x7C, 0x7B, 0x8B, 0xD8, 0x0A, 0xB1, 0xE4, 0x28, 0x3C, 0xDA, 0xDE, 0xCB, 0xCB, 0xF3, 0x4E, + 0xEB, 0xEA, 0x2C, 0x98, 0xF4, 0x67, 0x2D, 0x69, 0xE6, 0x42, 0x01, 0xC5, 0x38, 0x59, 0x7F, 0x69, + 0x29, 0xCB, 0xC7, 0xAD, 0x01, 0x1D, 0xCC, 0x5A, 0xA0, 0x76, 0xD8, 0x66, 0x50, 0xE3, 0xAD, 0x07, + 0xBE, 0xE3, 0x50, 0x4E, 0xFD, 0x49, 0xFF, 0xF0, 0x60, 0xE2, 0xDB, 0xC3, 0xB1, 0x67, 0x6C, 0x57, + 0x90, 0x47, 0xA3, 0xC9, 0xF1, 0xA8, 0x0C, 0x52, 0xCC, 0xD0, 0x36, 0xB0, 0x8C, 0x31, 0x76, 0x5A, + 0x36, 0x14, 0xB9, 0x60, 0xBB, 0x4E, 0xF4, 0xE9, 0xD1, 0x60, 0x32, 0xF4, 0x7D, 0x7F, 0xC0, 0xD0, + 0xE2, 0x8F, 0xDD, 0x38, 0x37, 0xE6, 0xD5, 0x67, 0x09, 0x94, 0x19, 0xCC, 0x7A, 0x33, 0x4F, 0x3A, + 0xC3, 0x6F, 0xA2, 0x3B, 0xD4, 0x69, 0xB5, 0x00, 0x8F, 0xF1, 0xF5, 0x76, 0xC1, 0x32, 0x8D, 0xAB, + 0x18, 0xC4, 0x0F, 0x76, 0x4E, 0x5B, 0x64, 0x66, 0xB1, 0x95, 0xB9, 0x25, 0xE5, 0xE8, 0x88, 0x7C, + 0x11, 0x19, 0x8E, 0xAB, 0x83, 0x29, 0xFB, 0xF3, 0x86, 0xFB, 0xBE, 0xF5, 0xCE, 0x20, 0x5F, 0x51, + 0xDC, 0x89, 0xEF, 0x0D, 0x37, 0x85, 0x90, 0x31, 0x09, 0x65, 0x6B, 0x50, 0x8A, 0x6E, 0xFC, 0x24, + 0x7C, 0x03, 0x07, 0xBE, 0x65, 0x53, 0xC3, 0x48, 0x07, 0xFC, 0xE2, 0xBC, 0xFD, 0x4F, 0xE8, 0x3E, + 0x2F, 0x0F, 0x42, 0xC2, 0xA9, 0x5A, 0xAB, 0xCA, 0xE0, 0x36, 0x3E, 0x4C, 0xD5, 0xAD, 0x57, 0xC4, + 0x5C, 0x52, 0x86, 0x8E, 0xF5, 0xAD, 0x82, 0x27, 0xB5, 0xEA, 0x3F, 0xA9, 0xD5, 0xC0, 0xD1, 0xCA, + 0x7E, 0x5A, 0xDC, 0x44, 0x55, 0x96, 0xB7, 0x8F, 0x99, 0xD5, 0x51, 0xBD, 0x27, 0x3A, 0xF3, 0xEF, + 0x07, 0x2A, 0x35, 0x5F, 0x55, 0x97, 0xEC, 0xF0, 0x98, 0xCF, 0x91, 0xC8, 0xFA, 0x0B, 0x2C, 0xF4, + 0x0E, 0xB6, 0x58, 0x4B, 0x6E, 0x36, 0xAA, 0x43, 0xDB, 0x68, 0xB3, 0x29, 0x1F, 0xDA, 0xEF, 0xA8, + 0x87, 0x5B, 0x40, 0xD3, 0x8E, 0xEC, 0x25, 0x72, 0x08, 0xFA, 0x1B, 0x68, 0x9A, 0xDB, 0xF4, 0xC4, + 0x38, 0xF9, 0x58, 0x6A, 0x39, 0x1C, 0x6D, 0xD1, 0x6F, 0xC5, 0x2B, 0xA3, 0x04, 0xE4, 0x40, 0x4E, + 0x45, 0x35, 0xC0, 0xC8, 0x25, 0xCA, 0x70, 0x14, 0xEF, 0xAD, 0xD2, 0x8C, 0xEC, 0x89, 0x98, 0x42, + 0x68, 0xBE, 0x67, 0x90, 0xF8, 0x1E, 0x8F, 0x4A, 0xD7, 0x6B, 0x6D, 0x63, 0x85, 0x6B, 0xB4, 0xFB, + 0x13, 0x6B, 0xA6, 0x67, 0xB6, 0x26, 0xF5, 0x1C, 0x5F, 0x37, 0x13, 0xD9, 0x63, 0x63, 0xC0, 0x56, + 0x62, 0x79, 0x2E, 0x23, 0xBC, 0xCB, 0x52, 0x92, 0xCE, 0xD2, 0x38, 0x6C, 0xFD, 0x39, 0xF0, 0x5B, + 0xD6, 0x24, 0xA3, 0xC1, 0xB6, 0x4D, 0xFF, 0xF3, 0x43, 0xDF, 0x2F, 0x35, 0xF6, 0xFD, 0xFE, 0xB6, + 0xAD, 0x5F, 0xBC, 0x7F, 0xFE, 0x63, 0xB9, 0xF1, 0xD6, 0x5D, 0x3F, 0x7F, 0xF3, 0x97, 0x72, 0x5B, + 0x17, 0x93, 0x2C, 0xCF, 0x6C, 0xAE, 0x72, 0x08, 0x3A, 0x66, 0x54, 0xA5, 0x11, 0xAC, 0xCE, 0x66, + 0xE0, 0xFB, 0xA3, 0xDA, 0xC5, 0x7F, 0xF1, 0xF2, 0xFC, 0xF2, 0xE5, 0x07, 0x56, 0x67, 0x2F, 0x49, + 0xC9, 0x5E, 0xBE, 0x5E, 0x51, 0x42, 0x40, 0xF3, 0x3D, 0x2F, 0x47, 0x68, 0xEF, 0x3F, 0xFA, 0x23, + 0xFF, 0x10, 0xB4, 0xCA, 0xF0, 0x0E, 0x9A, 0x87, 0xFA, 0x32, 0x99, 0xA5, 0x54, 0x34, 0x0A, 0x5B, + 0x97, 0x3F, 0xBE, 0x2F, 0x0D, 0x35, 0xD8, 0x02, 0x97, 0x60, 0x07, 0x5C, 0x82, 0x5D, 0x70, 0x91, + 0x19, 0x5D, 0x2D, 0x3E, 0xED, 0xDA, 0x5E, 0x38, 0xE7, 0x3C, 0xE0, 0x27, 0x3C, 0x9F, 0xA3, 0x24, + 0xDC, 0x0F, 0xEC, 0x4E, 0x87, 0x47, 0xBC, 0x8D, 0x19, 0x96, 0xB3, 0x54, 0xE3, 0xD8, 0x51, 0x83, + 0x6F, 0xE7, 0xC3, 0xB1, 0xAC, 0x23, 0x19, 0x8A, 0x3B, 0xD3, 0x1A, 0xC3, 0x3F, 0x22, 0xE8, 0x79, + 0x2C, 0xEC, 0x3F, 0x9A, 0xC5, 0x6E, 0x17, 0xFA, 0x17, 0x09, 0x26, 0x38, 0x8A, 0xF1, 0x7F, 0x21, + 0xD7, 0x36, 0xAC, 0x04, 0x1A, 0x71, 0x3F, 0xD8, 0xDB, 0xAE, 0x6F, 0x5B, 0x6F, 0xE2, 0xFE, 0x76, + 0x54, 0x7D, 0xC3, 0xAE, 0x03, 0x04, 0xCD, 0xDF, 0x45, 0x39, 0xFF, 0x66, 0x9D, 0xE9, 0x66, 0x0A, + 0x84, 0xBF, 0xA1, 0xF8, 0x11, 0x3C, 0x55, 0xFC, 0x08, 0x1C, 0xA8, 0xFE, 0xFD, 0x04, 0x90, 0xE0, + 0x7F, 0xE4, 0x6C, 0x3E, 0xAA, 0xA7, 0x93, 0xBF, 0xCD, 0xD1, 0x1C, 0x7C, 0xF3, 0xA3, 0x39, 0x78, + 0xF2, 0xD1, 0x1C, 0x7C, 0x8B, 0xA3, 0x39, 0xD8, 0xF6, 0x68, 0x66, 0x34, 0x82, 0x93, 0xDB, 0xBD, + 0x9B, 0x68, 0xF6, 0x71, 0x8F, 0xA4, 0x7B, 0x49, 0x9A, 0xDD, 0x45, 0xF1, 0xD7, 0x9E, 0xC8, 0xC1, + 0xEE, 0x27, 0xB2, 0x3A, 0x5F, 0xF5, 0x59, 0xB9, 0xF3, 0xC1, 0xF7, 0xE6, 0xED, 0x9B, 0x97, 0x5F, + 0x79, 0xF2, 0x05, 0xBB, 0x9C, 0x6C, 0xEF, 0x2F, 0x9F, 0x70, 0xB2, 0xED, 0x7C, 0xAE, 0x08, 0xF9, + 0x78, 0xA7, 0x73, 0x8E, 0x63, 0xB6, 0xFD, 0x39, 0xB7, 0xD5, 0x21, 0xE5, 0xBB, 0x0F, 0xA9, 0x52, + 0xD8, 0xE7, 0xCA, 0x39, 0xF5, 0xB4, 0x53, 0xE9, 0x0D, 0x23, 0x44, 0x71, 0x30, 0x01, 0x48, 0x21, + 0x85, 0x61, 0x68, 0x70, 0x33, 0x71, 0x89, 0x2D, 0xF5, 0xFE, 0xCF, 0x77, 0x58, 0x59, 0x27, 0x80, + 0x99, 0xD4, 0x82, 0x94, 0x75, 0xA8, 0x0D, 0x90, 0xE1, 0x83, 0xBD, 0x57, 0xC6, 0x39, 0xB4, 0xC9, + 0x6C, 0x9C, 0x15, 0xA1, 0x9B, 0x1E, 0x55, 0xB4, 0x2E, 0x03, 0x3C, 0x7C, 0x10, 0xCB, 0x35, 0x8E, + 0xE0, 0x2C, 0x8D, 0xF3, 0xF1, 0xB2, 0x70, 0x59, 0xE6, 0xC8, 0x5E, 0xC7, 0x33, 0x18, 0xC5, 0x64, + 0x1C, 0x17, 0x61, 0xA4, 0x22, 0x6B, 0xD5, 0x9E, 0x1A, 0xF0, 0x3A, 0x44, 0xE1, 0x29, 0x3A, 0x0B, + 0xC6, 0x7D, 0xB8, 0x76, 0x19, 0xF1, 0x2F, 0xC2, 0x35, 0xFC, 0x14, 0x92, 0x33, 0x16, 0x52, 0xE6, + 0x6C, 0x30, 0x1E, 0xB2, 0x7F, 0xAF, 0xBD, 0xB4, 0x72, 0xEE, 0x82, 0x71, 0xC0, 0x2B, 0x0D, 0xC7, + 0x7D, 0x5F, 0xD4, 0x9A, 0x1B, 0xC7, 0x2B, 0x18, 0xFB, 0xE3, 0x40, 0x7C, 0xC7, 0xEE, 0x33, 0x0F, + 0x30, 0xEF, 0x8E, 0xF5, 0xD9, 0xBC, 0xFE, 0x30, 0x3B, 0x3B, 0xA2, 0xB0, 0x97, 0x67, 0xFD, 0x71, + 0x30, 0xE8, 0xB3, 0x5F, 0xC1, 0xD8, 0x1F, 0xFB, 0xE3, 0x03, 0x05, 0x99, 0x9F, 0x33, 0x60, 0x7C, + 0xA8, 0xBE, 0xE8, 0xB3, 0x02, 0x8C, 0x8F, 0xC4, 0x38, 0x8E, 0x45, 0x29, 0xBB, 0x75, 0x84, 0x61, + 0x98, 0x2B, 0xF4, 0x19, 0xD6, 0xFA, 0x90, 0x00, 0xE3, 0xFE, 0x48, 0x7C, 0xDF, 0x4F, 0x4B, 0xBB, + 0x14, 0x8C, 0x87, 0x23, 0xD5, 0x4B, 0xD5, 0x95, 0x7E, 0x7C, 0x70, 0xE0, 0x1A, 0x2F, 0xE7, 0xDB, + 0x60, 0x1C, 0xA0, 0x81, 0x44, 0x82, 0xDF, 0x5F, 0x04, 0x1A, 0xBE, 0x2F, 0x11, 0xE1, 0x37, 0x13, + 0xF5, 0x59, 0x55, 0xA7, 0x77, 0x0E, 0xF5, 0x75, 0xA8, 0xFA, 0x50, 0x9C, 0x95, 0x7D, 0x1F, 0x89, + 0xC5, 0xA0, 0x7C, 0x50, 0x36, 0xA4, 0x12, 0x3C, 0x8B, 0x3D, 0x34, 0xA6, 0xFC, 0x4A, 0x55, 0x08, + 0xCC, 0x0A, 0x52, 0xAC, 0x96, 0xF5, 0x86, 0x7C, 0xCA, 0x82, 0xF1, 0x90, 0xCD, 0xE8, 0xE3, 0x23, + 0xE5, 0x2A, 0xEA, 0x97, 0x9C, 0xC7, 0x59, 0x18, 0x86, 0x31, 0x18, 0xF7, 0x4D, 0x7C, 0xAA, 0x1B, + 0x0C, 0x8C, 0x7D, 0x98, 0x56, 0xB5, 0x5F, 0xBF, 0x7F, 0xF7, 0x20, 0x15, 0x60, 0xC5, 0xD5, 0x77, + 0x0F, 0xE4, 0xAC, 0xD5, 0x1A, 0xB7, 0xCE, 0x5A, 0xC5, 0x77, 0x0F, 0x8B, 0x62, 0xF2, 0xDD, 0xC3, + 0xA7, 0xE2, 0xBB, 0xFB, 0xDF, 0x01, 0xDC, 0xF7, 0x27, 0x9F, 0xA2, 0x6C, 0x6F, 0x01, 0x3F, 0x15, + 0xD7, 0xEB, 0xD5, 0x9C, 0x0A, 0xD3, 0x84, 0xC8, 0x70, 0xFC, 0xDC, 0xF7, 0x03, 0x66, 0x4A, 0x4B, + 0xC6, 0x62, 0xE7, 0x9C, 0x79, 0xE8, 0x31, 0x1C, 0xF9, 0x83, 0x41, 0x70, 0x30, 0x3C, 0x82, 0xA8, + 0x1D, 0x76, 0x83, 0x83, 0xC3, 0xC3, 0xC3, 0x7E, 0x70, 0x00, 0xD1, 0x63, 0xB8, 0xE8, 0x29, 0x05, + 0x26, 0x73, 0x33, 0x61, 0x21, 0xD0, 0x28, 0xB8, 0xF7, 0x3F, 0xFE, 0xE0, 0x5D, 0x31, 0x70, 0x53, + 0x00, 0xC6, 0x23, 0xE1, 0xC7, 0x42, 0x9B, 0x33, 0x58, 0xC7, 0xFE, 0x90, 0x36, 0x1F, 0x0C, 0x46, + 0xA3, 0xE1, 0x70, 0xD0, 0x7F, 0xEC, 0x8F, 0x46, 0x6D, 0x0C, 0x20, 0x2A, 0xAE, 0xD1, 0x17, 0x92, + 0x45, 0x33, 0x62, 0xE0, 0x24, 0xD9, 0x46, 0x1E, 0x5E, 0xF9, 0xD0, 0x87, 0x2C, 0xBC, 0x9B, 0x0F, + 0xFD, 0x29, 0x33, 0xD2, 0xCB, 0x42, 0x9F, 0x85, 0x60, 0x9D, 0xA7, 0x2C, 0x8A, 0xDB, 0x55, 0xD2, + 0xC9, 0xA6, 0x06, 0xD7, 0xED, 0x24, 0x53, 0xC8, 0x5C, 0xD8, 0x2F, 0xD7, 0x37, 0xEF, 0xD8, 0x37, + 0x8F, 0x74, 0x12, 0xA0, 0x39, 0x11, 0xEA, 0xDD, 0x22, 0x62, 0x17, 0x32, 0xB8, 0x29, 0x87, 0x49, + 0x11, 0xCF, 0xAF, 0x82, 0x69, 0xBB, 0xED, 0x65, 0x61, 0x00, 0x20, 0xED, 0x20, 0xED, 0x04, 0xB4, + 0x13, 0x7C, 0x95, 0x4E, 0x8B, 0xCF, 0x4B, 0x1C, 0x23, 0xAF, 0xD3, 0x49, 0x4F, 0xB0, 0x8A, 0xE5, + 0x99, 0x76, 0x12, 0x5A, 0xE3, 0x44, 0x5A, 0x91, 0x0B, 0xC6, 0x5A, 0xE0, 0x85, 0xA7, 0xC1, 0x25, + 0x9D, 0xEC, 0x34, 0xEC, 0x3F, 0x3E, 0xF6, 0xED, 0x2F, 0x23, 0xC0, 0x99, 0xB0, 0xD1, 0xA7, 0xEA, + 0x23, 0xE9, 0x10, 0x23, 0x62, 0x68, 0x62, 0xF5, 0xA0, 0x75, 0xF4, 0xFD, 0x09, 0x52, 0xDF, 0x99, + 0xAA, 0xBE, 0x1B, 0xB0, 0x2E, 0x10, 0x85, 0x47, 0xFF, 0x09, 0x7D, 0x20, 0xBD, 0x42, 0x0C, 0x3B, + 0xED, 0xC1, 0xD1, 0x18, 0xF7, 0x16, 0xB7, 0x32, 0xFC, 0x5D, 0x89, 0x36, 0x68, 0x11, 0xA4, 0x38, + 0xC1, 0xFC, 0x6A, 0x40, 0xFF, 0x33, 0xA4, 0xFF, 0x19, 0x4D, 0xAD, 0x33, 0x63, 0x48, 0x41, 0xDC, + 0xD4, 0x83, 0xB8, 0xD9, 0x0C, 0x62, 0x44, 0x41, 0xC8, 0x80, 0x40, 0xA1, 0xFE, 0xD9, 0x9B, 0xC5, + 0x69, 0x82, 0x3C, 0x00, 0x8D, 0x4F, 0xEB, 0x64, 0xCE, 0x72, 0x94, 0x20, 0x33, 0x71, 0x79, 0xB5, + 0xD7, 0x9A, 0xFA, 0x4E, 0x54, 0xE4, 0x0B, 0x59, 0x52, 0x5C, 0xAF, 0xB2, 0x74, 0x86, 0xF2, 0xFC, + 0x17, 0xD9, 0x48, 0x38, 0x1C, 0x6B, 0xE4, 0x48, 0x15, 0x39, 0x6F, 0xFF, 0xBF, 0xD1, 0xE3, 0x23, + 0x3A, 0x1D, 0x01, 0x4A, 0xEA, 0x94, 0x5C, 0x88, 0xA3, 0x7B, 0x96, 0xD0, 0x2C, 0x44, 0x90, 0xF4, + 0x16, 0xB7, 0x8F, 0x61, 0xFF, 0xE0, 0x68, 0x38, 0x18, 0x0D, 0x47, 0x07, 0xCC, 0x98, 0x1D, 0xB1, + 0x47, 0xAB, 0xC5, 0x6D, 0x3B, 0xEC, 0xCA, 0x82, 0x43, 0x0A, 0x85, 0x0F, 0xEB, 0xA5, 0x80, 0xE5, + 0x01, 0x85, 0xDF, 0xE5, 0x8F, 0xEF, 0x7D, 0x7A, 0xAF, 0x42, 0x74, 0xED, 0x1C, 0x26, 0x43, 0x74, + 0xDD, 0x10, 0x5D, 0x14, 0x57, 0xD9, 0x0D, 0x2D, 0x53, 0x03, 0x42, 0xD5, 0x01, 0xA1, 0x5A, 0xF4, + 0x7D, 0x67, 0x19, 0x9B, 0xD9, 0x76, 0xD8, 0x3D, 0x38, 0x0C, 0xFC, 0xA3, 0xA3, 0x83, 0x21, 0x44, + 0x55, 0xCC, 0x2B, 0x99, 0xF2, 0xE8, 0xBE, 0x0D, 0x98, 0xA8, 0x24, 0x49, 0xDB, 0x37, 0x05, 0x27, + 0x7F, 0x5A, 0x0E, 0x51, 0xAA, 0x07, 0x2E, 0xCE, 0x79, 0xED, 0xE6, 0xC6, 0x38, 0x9C, 0x7E, 0xDB, + 0x12, 0xBB, 0x80, 0x7B, 0x42, 0x49, 0x26, 0x52, 0x69, 0xA4, 0x36, 0x4F, 0x16, 0xFA, 0x93, 0xEC, + 0x84, 0x4C, 0xB2, 0x4E, 0x07, 0x60, 0x8D, 0x41, 0x36, 0x85, 0xF8, 0x34, 0x1C, 0xF8, 0xED, 0x36, + 0x3E, 0x09, 0x07, 0x87, 0x67, 0x5E, 0xCE, 0x57, 0x48, 0x31, 0xB2, 0x9C, 0xAD, 0xA4, 0x64, 0x8B, + 0x8F, 0xB8, 0x3B, 0xF0, 0xC1, 0x18, 0x9F, 0x86, 0x43, 0xDE, 0x64, 0xC8, 0x9A, 0xDC, 0x94, 0x9A, + 0xDC, 0xD8, 0x4D, 0x86, 0xBC, 0xC9, 0x31, 0x6F, 0x72, 0xBC, 0xA1, 0x97, 0xFE, 0xF0, 0x11, 0x77, + 0x8F, 0x79, 0x93, 0xC0, 0xE7, 0x6D, 0x02, 0x7F, 0x43, 0x3F, 0xAC, 0x51, 0xE0, 0xFB, 0x60, 0x4C, + 0x27, 0x18, 0x9F, 0x55, 0xE7, 0x93, 0x9E, 0x7A, 0xAC, 0x48, 0xF4, 0x35, 0x18, 0xF6, 0x83, 0xC3, + 0xC3, 0xFE, 0x11, 0x93, 0x29, 0xE8, 0x57, 0x0A, 0x4C, 0x2E, 0x2E, 0x93, 0x63, 0x30, 0xC7, 0xD3, + 0xA4, 0x63, 0x0B, 0xAC, 0xB1, 0x7F, 0x6C, 0x2E, 0x9C, 0x81, 0xB3, 0x12, 0xEB, 0xCD, 0xC0, 0x95, + 0x3F, 0x1D, 0x07, 0x30, 0x17, 0xE7, 0x85, 0xC4, 0x42, 0x79, 0x39, 0x32, 0x71, 0x44, 0x7E, 0x55, + 0x58, 0x1C, 0x99, 0x08, 0xFB, 0x87, 0x83, 0xC3, 0x61, 0x70, 0xD4, 0x1F, 0x32, 0xE1, 0x44, 0x7E, + 0xEE, 0x07, 0xC3, 0xC3, 0xE1, 0xD1, 0xE0, 0x60, 0x78, 0x34, 0xEE, 0x1B, 0x03, 0xD1, 0xC3, 0xEB, + 0x07, 0xD5, 0x09, 0xD1, 0x98, 0xF7, 0x61, 0x0E, 0xC6, 0xFD, 0xBE, 0x1E, 0x2D, 0x3D, 0x03, 0x45, + 0xDB, 0x63, 0x28, 0x66, 0x5C, 0x7D, 0x00, 0xE3, 0xBE, 0x9E, 0x2D, 0xBD, 0x17, 0x46, 0xE3, 0xFE, + 0xD0, 0x82, 0xA0, 0xF6, 0x77, 0xDD, 0x84, 0xF9, 0x6C, 0x26, 0xFA, 0x7A, 0x2A, 0x4C, 0x07, 0xCE, + 0x71, 0xFF, 0xD0, 0xFC, 0xAE, 0x3B, 0x39, 0x32, 0x3F, 0xAB, 0xF9, 0x18, 0x8D, 0xFB, 0xC7, 0x46, + 0x81, 0x9A, 0x90, 0xC3, 0xF1, 0xE0, 0xD8, 0xC2, 0x4A, 0xED, 0x5C, 0x8B, 0xA6, 0x47, 0x6D, 0x37, + 0x6B, 0x01, 0xE3, 0xA1, 0x6A, 0x7E, 0x53, 0x6A, 0x7E, 0xB3, 0xA9, 0xF9, 0xCD, 0x2D, 0x18, 0x0F, + 0x18, 0xBA, 0x8F, 0x8F, 0x43, 0xF1, 0xEF, 0x88, 0xA3, 0x9F, 0x75, 0xC4, 0x2E, 0x2D, 0x09, 0x03, + 0x19, 0x5D, 0x89, 0x91, 0xEA, 0x52, 0xB1, 0xAE, 0xBC, 0xCA, 0xBA, 0xF2, 0xDA, 0x83, 0xA2, 0x1B, + 0xC0, 0xBC, 0xC2, 0x96, 0x98, 0xB8, 0xF7, 0x15, 0x33, 0x01, 0x9F, 0x38, 0x01, 0x75, 0x57, 0x62, + 0x99, 0xB6, 0xFF, 0xF2, 0xC7, 0xF7, 0x7B, 0x91, 0xE4, 0x96, 0xE3, 0xBD, 0x3F, 0xCC, 0x7B, 0x2D, + 0x88, 0x0D, 0x77, 0xE2, 0x52, 0xBA, 0xD0, 0x87, 0xB2, 0x12, 0x4D, 0x9D, 0xEF, 0xAE, 0xFB, 0x72, + 0xB3, 0x10, 0xE9, 0x27, 0xBF, 0x97, 0x14, 0x54, 0x0D, 0x5E, 0x73, 0xF7, 0x9D, 0x00, 0x3A, 0xCD, + 0x38, 0xBE, 0x74, 0x82, 0xC9, 0xAE, 0x3D, 0x7F, 0xF7, 0x80, 0xA8, 0xCC, 0x4A, 0x8A, 0xF7, 0xBF, + 0x1B, 0x5E, 0x6A, 0xEE, 0x3C, 0xA6, 0xF4, 0xF4, 0x38, 0x28, 0x9D, 0x17, 0x0F, 0xFF, 0x53, 0x88, + 0x9E, 0xB9, 0x31, 0x35, 0x33, 0xA2, 0x96, 0x22, 0xF5, 0x34, 0xA9, 0xD4, 0xB7, 0xB9, 0xA3, 0xD7, + 0x9B, 0xDE, 0x7C, 0x48, 0x57, 0xEE, 0x00, 0xB7, 0xA6, 0x65, 0x4E, 0x83, 0x3B, 0x0A, 0xAC, 0x9C, + 0x8B, 0x4E, 0x99, 0x41, 0xEE, 0xAF, 0xEA, 0x78, 0x32, 0x9E, 0x5A, 0xC9, 0xFD, 0x86, 0x6A, 0x17, + 0xDA, 0xF8, 0x45, 0x9F, 0xD0, 0xFC, 0xCF, 0x35, 0xB8, 0xD3, 0xB2, 0xBF, 0xD4, 0xFA, 0xEE, 0xD4, + 0x36, 0x39, 0x37, 0x3C, 0xDF, 0x95, 0x50, 0x3B, 0xB3, 0x3E, 0x6E, 0xD5, 0xF6, 0xC6, 0xD5, 0xF6, + 0xA6, 0xA1, 0x2D, 0x1F, 0x75, 0x73, 0x34, 0xF1, 0x5D, 0xF4, 0xBC, 0xFC, 0x15, 0xDF, 0xCE, 0x84, + 0xEB, 0x0A, 0x18, 0xF0, 0xF8, 0x18, 0x28, 0x57, 0x6F, 0xA5, 0x36, 0xB7, 0x9E, 0xDD, 0x1B, 0x75, + 0xB9, 0x5C, 0xA8, 0x6B, 0xDD, 0xC4, 0xE9, 0xEC, 0x63, 0xAB, 0xE4, 0x2A, 0x6B, 0x3E, 0x1A, 0x6C, + 0x03, 0x44, 0xB1, 0x5B, 0x0B, 0xD0, 0x68, 0x6C, 0x69, 0xB9, 0xB7, 0xC2, 0x26, 0xCA, 0x5A, 0x85, + 0xD2, 0x18, 0xFD, 0xA1, 0x1F, 0x86, 0x81, 0x6D, 0xFF, 0xBE, 0x85, 0x7A, 0x1A, 0x8B, 0x19, 0x2C, + 0xA5, 0x00, 0xAE, 0x9B, 0x42, 0x2E, 0x29, 0xF2, 0x4E, 0x54, 0x7C, 0x94, 0x93, 0xFE, 0xE3, 0xA3, + 0x67, 0xC8, 0x83, 0xC1, 0x14, 0x9C, 0xD6, 0xED, 0xA3, 0xC7, 0x47, 0x76, 0x8A, 0xD0, 0x0B, 0x40, + 0xBD, 0xCF, 0x33, 0x80, 0xF8, 0xB4, 0x26, 0xFE, 0x86, 0xDE, 0xCB, 0xC4, 0x1D, 0x2C, 0xC5, 0xDA, + 0xCD, 0xB8, 0xEB, 0x7E, 0x09, 0x60, 0x16, 0x2F, 0xE5, 0x4C, 0xC3, 0xCC, 0x40, 0xEC, 0x6B, 0x22, + 0x93, 0xBA, 0xAC, 0xC7, 0x44, 0x04, 0x99, 0xE0, 0xCC, 0x98, 0x9D, 0xB1, 0x3F, 0xA9, 0x3D, 0x86, + 0x82, 0xE1, 0x58, 0x84, 0xAA, 0x28, 0x31, 0xBB, 0x5F, 0x59, 0x57, 0xB9, 0xE8, 0x8B, 0x67, 0x60, + 0xE4, 0x3C, 0xEF, 0xBE, 0xF7, 0xE3, 0xCB, 0x0F, 0xD7, 0xBF, 0x5E, 0xBC, 0xB9, 0xBE, 0xBC, 0xF8, + 0xDF, 0x2F, 0x85, 0x6A, 0xC5, 0xD6, 0xDA, 0x2A, 0xAA, 0xDA, 0x16, 0x1A, 0x8B, 0xCA, 0x5C, 0x0B, + 0xEE, 0xC8, 0xA5, 0xF0, 0xDD, 0xCA, 0x06, 0xC9, 0x3A, 0x1D, 0x8E, 0xE8, 0xC9, 0x50, 0x43, 0x02, + 0x45, 0x4D, 0xD9, 0x2C, 0x8D, 0xF3, 0x82, 0xD8, 0x07, 0x6F, 0xBF, 0x3F, 0xF6, 0xF9, 0x9C, 0xF5, + 0xAD, 0xF0, 0x1E, 0x7C, 0x75, 0x58, 0x3E, 0x51, 0x91, 0x71, 0x65, 0x9D, 0x2F, 0xAB, 0x65, 0x92, + 0xE9, 0x56, 0xAA, 0xCB, 0xB5, 0x53, 0xB1, 0x27, 0x2B, 0x35, 0x58, 0xBC, 0x39, 0x0F, 0x00, 0x28, + 0xFA, 0x0F, 0xAC, 0xFE, 0xB1, 0xC8, 0x8B, 0x5A, 0xE9, 0x5C, 0x16, 0xC8, 0x9E, 0xED, 0x8A, 0x95, + 0x6E, 0xED, 0x62, 0xD9, 0xA7, 0x35, 0x03, 0x83, 0xD2, 0x0C, 0x34, 0x8E, 0x48, 0xC0, 0x55, 0xB9, + 0x56, 0xEB, 0x66, 0x2B, 0x5D, 0x55, 0x87, 0x56, 0x8F, 0xB0, 0x86, 0xAA, 0xF2, 0xC1, 0x3A, 0xA7, + 0x81, 0x41, 0x35, 0x64, 0x01, 0x33, 0x69, 0x78, 0x43, 0x10, 0x52, 0x71, 0x0A, 0xBA, 0x04, 0x93, + 0x27, 0x1C, 0x8C, 0x6E, 0xCF, 0xE9, 0xFF, 0x27, 0x4F, 0x4B, 0xFE, 0x90, 0x6C, 0xE5, 0x3A, 0x6F, + 0x8C, 0xE5, 0x5A, 0x3B, 0xB7, 0x8F, 0x8F, 0xEE, 0x38, 0x7E, 0x8D, 0x61, 0x14, 0xF8, 0x3C, 0x3B, + 0x23, 0xA6, 0x31, 0x01, 0x44, 0x85, 0x57, 0x98, 0xB9, 0xE6, 0x70, 0xD3, 0x54, 0x3B, 0xDA, 0xDE, + 0x6C, 0xD7, 0x56, 0xCD, 0xAA, 0x7B, 0xD6, 0x04, 0x0C, 0x73, 0x96, 0x37, 0xAD, 0x82, 0x8E, 0x32, + 0xD4, 0x04, 0xB1, 0xB6, 0x79, 0x6D, 0xA8, 0x3F, 0x7E, 0xFE, 0xCA, 0xAC, 0xC7, 0xF6, 0xD2, 0x19, + 0x7B, 0x52, 0xC5, 0x10, 0x4C, 0x13, 0xF6, 0xF7, 0xF9, 0x32, 0x4A, 0x6E, 0x45, 0x46, 0x18, 0x24, + 0xA1, 0x18, 0x99, 0x98, 0x6D, 0x40, 0x72, 0x0F, 0x86, 0x48, 0xD4, 0xAC, 0x49, 0x8D, 0xAC, 0xCE, + 0xFD, 0xAB, 0x29, 0xA4, 0x27, 0xBA, 0x48, 0xE0, 0x34, 0x69, 0x71, 0x0D, 0xEA, 0x04, 0x2B, 0xEE, + 0x34, 0xD1, 0xB7, 0x08, 0x2C, 0x79, 0x12, 0xCC, 0xF5, 0xEF, 0x09, 0x5E, 0x78, 0xCF, 0xFE, 0xCF, + 0x6F, 0xF3, 0xCE, 0x77, 0xCF, 0x7A, 0xE8, 0x0B, 0x9A, 0x79, 0xC8, 0x50, 0x2A, 0x33, 0x93, 0xE8, + 0x8B, 0x84, 0xCA, 0xFF, 0xB4, 0x9E, 0x7F, 0x12, 0xE2, 0x76, 0x1B, 0x9F, 0xF4, 0x47, 0x07, 0x00, + 0x2F, 0xBC, 0xD6, 0x19, 0x7F, 0x79, 0x20, 0x9C, 0x67, 0x3E, 0x90, 0xFB, 0x15, 0x1A, 0xFB, 0x90, + 0x59, 0x98, 0x8E, 0x71, 0x01, 0x58, 0x3C, 0x5E, 0xD5, 0xBB, 0xE7, 0xC3, 0x4B, 0x9E, 0xBF, 0x87, + 0x0D, 0x02, 0x78, 0x39, 0x98, 0xD0, 0xC3, 0xC8, 0x6C, 0x1C, 0xC8, 0xC6, 0x70, 0x46, 0xEB, 0x8C, + 0x51, 0x01, 0x8A, 0x42, 0x99, 0xFB, 0x97, 0x92, 0x4C, 0xA5, 0x09, 0x03, 0x24, 0x62, 0x94, 0xCA, + 0xA9, 0x35, 0x33, 0x3E, 0x1B, 0xD2, 0x91, 0x31, 0x41, 0x82, 0xA5, 0x79, 0x44, 0x89, 0x45, 0x54, + 0xCA, 0x21, 0x57, 0xC1, 0x54, 0x5A, 0xF9, 0x66, 0x28, 0x22, 0x48, 0x03, 0x22, 0x4C, 0xC4, 0xA0, + 0xE2, 0xD2, 0x78, 0x9F, 0xFE, 0x96, 0x08, 0x2C, 0x70, 0x82, 0xF3, 0xA5, 0xAE, 0x07, 0x40, 0x51, + 0x69, 0x6B, 0x84, 0x77, 0xAC, 0xCF, 0x76, 0x52, 0x01, 0x34, 0xD1, 0x5A, 0x7D, 0x81, 0xF8, 0xB8, + 0x05, 0x84, 0x2F, 0x3F, 0x2F, 0xCA, 0x42, 0xDC, 0x5B, 0xE0, 0x64, 0xCE, 0xF3, 0xDC, 0xF2, 0x8C, + 0x5D, 0x2C, 0x71, 0x50, 0xFE, 0x2B, 0x26, 0x4B, 0xAF, 0x85, 0xE7, 0x61, 0x4B, 0xFB, 0xBA, 0x76, + 0xE9, 0xA9, 0x90, 0xB1, 0x24, 0x2E, 0xF8, 0x2A, 0x9B, 0xF6, 0x72, 0xE6, 0xF1, 0x39, 0x50, 0xD1, + 0x84, 0x5D, 0x9B, 0x5F, 0x2B, 0x88, 0x6B, 0x8B, 0xCA, 0x97, 0xA8, 0xDA, 0xDC, 0x74, 0xF2, 0xE9, + 0xD1, 0xCE, 0xEA, 0x22, 0x43, 0xAA, 0xB3, 0xA4, 0x2E, 0x0F, 0x78, 0x3E, 0xCE, 0xE1, 0x3A, 0xC3, + 0x63, 0x52, 0xB8, 0x00, 0x96, 0x15, 0x1D, 0xCC, 0x16, 0xBA, 0x32, 0x71, 0x9B, 0x93, 0xE5, 0x7D, + 0x93, 0xE1, 0xF8, 0xDB, 0x22, 0x68, 0xEC, 0xE0, 0xCB, 0x15, 0x9A, 0xE1, 0x28, 0x56, 0xEF, 0x41, + 0xE6, 0xD3, 0x4D, 0x69, 0xFB, 0x6A, 0x27, 0x05, 0xFD, 0x18, 0xB3, 0xEF, 0x11, 0x19, 0x1D, 0x29, + 0x37, 0x20, 0xE9, 0x97, 0x93, 0x4E, 0x07, 0xC1, 0x4E, 0x87, 0xE8, 0x8D, 0x89, 0xAF, 0xD0, 0x14, + 0x38, 0xB6, 0xCA, 0x95, 0xBD, 0x51, 0x1D, 0x30, 0xAF, 0xC8, 0xB4, 0x98, 0x5A, 0xDB, 0x37, 0xAF, + 0x6E, 0x5F, 0x06, 0x7E, 0x92, 0x3B, 0x77, 0xE3, 0x95, 0xBD, 0x9D, 0xDD, 0x5D, 0x88, 0x3D, 0x9E, + 0x17, 0x53, 0x60, 0x99, 0x7A, 0x57, 0x73, 0xAC, 0x57, 0xC2, 0x1F, 0xD6, 0xCC, 0xA9, 0x0F, 0x0A, + 0x67, 0x36, 0xF5, 0x6D, 0xDB, 0x07, 0x56, 0x7B, 0x3B, 0xC5, 0xF7, 0xB6, 0x30, 0xFA, 0xA0, 0x70, + 0x27, 0x48, 0x67, 0xD7, 0x16, 0x04, 0x4A, 0x69, 0x01, 0xAA, 0x93, 0xD6, 0x2F, 0xA6, 0x96, 0xF6, + 0xDF, 0xCD, 0xE1, 0xAB, 0x24, 0xC2, 0xDD, 0x59, 0x4A, 0xCC, 0x9C, 0x2D, 0x92, 0x7E, 0x77, 0x54, + 0xFC, 0x9C, 0x2F, 0x9E, 0x7F, 0x12, 0xE6, 0xED, 0x76, 0x4E, 0xF9, 0x79, 0x89, 0x11, 0xF7, 0xC5, + 0xCA, 0xE5, 0x05, 0xD8, 0x81, 0xFD, 0x56, 0x32, 0xB8, 0x97, 0x93, 0x20, 0x38, 0x46, 0x2B, 0x3A, + 0xEA, 0x8F, 0x0E, 0xF8, 0xB8, 0x8B, 0x4A, 0xCE, 0xF6, 0x5D, 0x80, 0x1C, 0xDA, 0x40, 0x9A, 0x96, + 0xB0, 0x19, 0xD0, 0x91, 0x00, 0xA4, 0x53, 0x9A, 0x6F, 0x08, 0xBC, 0xCF, 0x3E, 0x8B, 0x04, 0xEA, + 0xB4, 0x61, 0x4D, 0x02, 0xF1, 0x87, 0x4A, 0xC2, 0xCB, 0x7F, 0x44, 0x9B, 0x6D, 0x3D, 0x00, 0x2B, + 0x63, 0xF9, 0x46, 0xE4, 0xFF, 0x9E, 0x56, 0x6D, 0x50, 0x05, 0xA5, 0x2C, 0x67, 0xC2, 0xDE, 0x3E, + 0xC8, 0x78, 0x6D, 0x8D, 0x46, 0xC7, 0x0E, 0xD5, 0xB1, 0xAC, 0xA5, 0x49, 0xAD, 0xBF, 0xAF, 0xDF, + 0x03, 0x45, 0x00, 0x6B, 0x37, 0x8E, 0x70, 0xDF, 0x07, 0x63, 0xAF, 0xF5, 0x8C, 0x32, 0x6E, 0xC4, + 0x94, 0x38, 0x1B, 0x71, 0xB9, 0xBB, 0xA2, 0x15, 0xA7, 0x50, 0xA7, 0xF5, 0xBE, 0x42, 0x57, 0xC1, + 0x74, 0xFA, 0xF8, 0xE8, 0xC4, 0x11, 0x14, 0x82, 0x3A, 0x1F, 0x76, 0x4E, 0xEB, 0xF0, 0xAF, 0x96, + 0x05, 0xA4, 0x26, 0xC6, 0xFF, 0x65, 0x95, 0x98, 0x2C, 0xD0, 0xF5, 0x91, 0x6A, 0xE9, 0xB6, 0x63, + 0x5C, 0x89, 0x99, 0x05, 0x5D, 0x88, 0x75, 0xA8, 0x4B, 0x87, 0x51, 0x13, 0x79, 0xBE, 0x61, 0xB2, + 0x3F, 0xA4, 0xAB, 0xC6, 0xC7, 0x82, 0x4D, 0x51, 0xB3, 0xB5, 0x13, 0xB1, 0xA3, 0x50, 0x44, 0x09, + 0xA1, 0xD7, 0x85, 0x97, 0x31, 0xBA, 0x43, 0x09, 0x69, 0x88, 0xEA, 0xE9, 0xBC, 0xAF, 0xA3, 0xE6, + 0xF8, 0x23, 0xBB, 0xBA, 0xC6, 0x3E, 0x35, 0xF0, 0x4B, 0x83, 0xBF, 0xEA, 0xB7, 0x72, 0x18, 0xE6, + 0x69, 0xC6, 0x1A, 0x29, 0xBE, 0xE2, 0x3B, 0xAC, 0x64, 0x9F, 0xC5, 0x3A, 0x8E, 0xF9, 0x73, 0x4B, + 0x5D, 0x0A, 0x22, 0xF3, 0xED, 0xC1, 0x69, 0x89, 0x0D, 0xA5, 0xB9, 0xBA, 0x27, 0x6F, 0x1D, 0xBB, + 0xBD, 0x83, 0x58, 0x73, 0x76, 0x91, 0x10, 0x94, 0x25, 0x51, 0xDC, 0xD4, 0xAE, 0x28, 0x4F, 0xB3, + 0x8D, 0xB9, 0x13, 0x5E, 0xE9, 0x85, 0xB1, 0xB9, 0xA6, 0x7A, 0x21, 0x1F, 0xB4, 0x1B, 0x74, 0x32, + 0xCE, 0xD6, 0x85, 0xE6, 0xED, 0x95, 0xF7, 0xAB, 0xBA, 0x43, 0x00, 0xC9, 0x60, 0x21, 0xCE, 0x5C, + 0xF2, 0x3A, 0x55, 0x26, 0xFA, 0xBC, 0xB7, 0xEE, 0x9D, 0xA3, 0x38, 0x66, 0x86, 0x17, 0x48, 0xE6, + 0x2A, 0x0B, 0x83, 0x93, 0x93, 0x7E, 0xFF, 0xB1, 0xF5, 0xB2, 0x65, 0xA7, 0x3E, 0x83, 0xA8, 0x56, + 0x21, 0x85, 0x36, 0xA8, 0x9B, 0x4A, 0xB6, 0xF1, 0xB6, 0xE3, 0x41, 0x1D, 0x2F, 0x9B, 0xD0, 0x9B, + 0x40, 0x93, 0xA7, 0x7F, 0xFD, 0xEE, 0xEA, 0x10, 0x77, 0xE2, 0x70, 0x23, 0xD6, 0x2A, 0x13, 0xFB, + 0xBD, 0x9C, 0x47, 0x10, 0x46, 0x00, 0xE6, 0xA5, 0xA8, 0xC5, 0x1B, 0xFD, 0xF3, 0x9F, 0xC7, 0x31, + 0xDF, 0x6C, 0xD5, 0x1C, 0x07, 0xBE, 0x08, 0x82, 0x5E, 0x97, 0x04, 0xBF, 0x34, 0x28, 0x97, 0x2D, + 0xB3, 0xC2, 0xBF, 0xF6, 0x41, 0x40, 0xBD, 0x8C, 0xA8, 0xD4, 0xFF, 0x5B, 0x6B, 0xC3, 0xBF, 0x7B, + 0x40, 0x85, 0xF1, 0xE7, 0x6F, 0xBF, 0xFD, 0xCE, 0x93, 0x5E, 0x7A, 0x7F, 0x6C, 0xFD, 0xF5, 0x8F, + 0x2C, 0x2B, 0xCF, 0xEF, 0xEF, 0x82, 0xEF, 0xB2, 0xEF, 0xAA, 0xDB, 0xAF, 0x87, 0x73, 0x1D, 0x2E, + 0x1B, 0x9C, 0x05, 0x63, 0xBF, 0x68, 0xFD, 0xF5, 0xF7, 0xF1, 0x1F, 0x5B, 0x2B, 0xDE, 0xEE, 0x8F, + 0xB4, 0xDD, 0x41, 0x30, 0x09, 0x5A, 0xAB, 0x3F, 0x8E, 0x5B, 0x59, 0xCB, 0x04, 0x86, 0x8D, 0xEC, + 0x15, 0x41, 0x31, 0xD1, 0x1F, 0xE4, 0x31, 0x5B, 0x64, 0xBF, 0x8F, 0x5B, 0x77, 0xBC, 0x4D, 0x8B, + 0xB6, 0xF1, 0xEF, 0x5A, 0xE3, 0xD6, 0xDE, 0x5F, 0x2D, 0x28, 0x0F, 0xEC, 0x5D, 0x6C, 0xDC, 0x87, + 0xEA, 0x69, 0x6B, 0x3C, 0x84, 0x37, 0x51, 0x36, 0x3E, 0x28, 0xAE, 0xAC, 0x37, 0xAB, 0x69, 0xD7, + 0xB3, 0x9E, 0x9F, 0x28, 0xB2, 0xA0, 0xD8, 0xFB, 0xEB, 0xEF, 0xE3, 0xD6, 0x3B, 0xFF, 0xBB, 0xAC, + 0x05, 0x8A, 0x12, 0xD3, 0xDC, 0x90, 0xFF, 0xA3, 0x54, 0xB3, 0x28, 0x48, 0xEF, 0x22, 0x59, 0xAD, + 0x89, 0x48, 0x9B, 0x16, 0xBE, 0x64, 0xBA, 0x8D, 0xD7, 0xE1, 0x2C, 0x8E, 0xF2, 0x9C, 0xAF, 0x70, + 0xB6, 0x9E, 0x11, 0x2E, 0xB5, 0x3B, 0x16, 0x5A, 0x2A, 0xD9, 0xCC, 0xF4, 0xDF, 0x85, 0xF9, 0x07, + 0x6F, 0xC4, 0x14, 0x22, 0x0D, 0x84, 0x22, 0x8F, 0x12, 0x94, 0xCC, 0x1B, 0x6B, 0x15, 0x3A, 0xA4, + 0x01, 0x02, 0x0F, 0xE8, 0x44, 0x03, 0x3F, 0x33, 0xFA, 0x41, 0x63, 0x74, 0x2A, 0xC1, 0x49, 0xD9, + 0x83, 0x42, 0x46, 0xEE, 0xD9, 0x42, 0xEC, 0xE9, 0xEC, 0x73, 0x88, 0x20, 0x0A, 0x09, 0x24, 0xE1, + 0x67, 0x00, 0x4D, 0xC8, 0x12, 0x82, 0x80, 0x0D, 0x20, 0x71, 0x02, 0x27, 0x1C, 0xB8, 0xDE, 0x50, + 0x7C, 0xE4, 0xA5, 0x0E, 0x1B, 0x4D, 0xEA, 0x8B, 0x62, 0xF2, 0x3A, 0xCC, 0xBD, 0x2B, 0xBA, 0xF7, + 0x3E, 0xF5, 0x2E, 0x7E, 0x30, 0xEB, 0x80, 0x29, 0x7C, 0x0D, 0x0A, 0x78, 0x34, 0x1C, 0x8E, 0x19, + 0xD6, 0xE1, 0xE9, 0xC3, 0x62, 0x9D, 0xCC, 0xD8, 0x45, 0x04, 0x4B, 0x3F, 0x28, 0x71, 0x53, 0xDD, + 0x4B, 0x17, 0x7B, 0x08, 0x90, 0xDE, 0x1C, 0xE7, 0xAB, 0x34, 0x47, 0x1E, 0x98, 0x48, 0xC9, 0x37, + 0xF4, 0x8B, 0xB7, 0x37, 0xFF, 0x17, 0xCD, 0x48, 0x6F, 0x8E, 0x16, 0x38, 0x41, 0xEF, 0xB2, 0x74, + 0x85, 0xD8, 0x59, 0x0B, 0x5B, 0xD7, 0xD7, 0x28, 0xFF, 0x39, 0x9D, 0xAF, 0x63, 0xD4, 0x82, 0x0F, + 0x9F, 0xA2, 0x78, 0x8D, 0xC6, 0xFB, 0x7E, 0x01, 0x20, 0xA1, 0xAC, 0xE6, 0x05, 0x07, 0xC5, 0x22, + 0x38, 0xF0, 0xDF, 0xD1, 0x4D, 0x8C, 0x42, 0xD5, 0x07, 0x2B, 0x08, 0x49, 0x8F, 0xA4, 0x56, 0xA9, + 0xF1, 0x07, 0xD7, 0x6F, 0x41, 0xEB, 0x5B, 0x95, 0xCA, 0x34, 0xED, 0xCA, 0x4A, 0x39, 0xBD, 0x77, + 0x0B, 0x9D, 0x6C, 0x2E, 0xD0, 0x60, 0xB1, 0x47, 0xD4, 0xE8, 0x1E, 0xAA, 0xA5, 0xFE, 0x44, 0x4F, + 0x07, 0xA2, 0xD3, 0x51, 0x81, 0x0A, 0x90, 0x31, 0x3D, 0x95, 0x52, 0x3D, 0x5D, 0x52, 0x35, 0x56, + 0x39, 0xB8, 0xCC, 0xDA, 0xEC, 0xBE, 0x8E, 0x00, 0x44, 0xC5, 0x3A, 0x31, 0x1B, 0xD8, 0xC1, 0x48, + 0xCC, 0x16, 0xDA, 0xF9, 0x7F, 0xC2, 0x54, 0x82, 0xEA, 0xF9, 0xD2, 0xAC, 0x24, 0xE3, 0xC1, 0x41, + 0x4A, 0x1A, 0xB0, 0x34, 0xB9, 0x72, 0xF5, 0x35, 0x62, 0x0F, 0x62, 0x40, 0x63, 0xC4, 0x6A, 0x5B, + 0x2B, 0x83, 0x1B, 0x97, 0xB1, 0x01, 0x96, 0x07, 0xC2, 0x53, 0x4A, 0x5F, 0x45, 0x51, 0xC0, 0x60, + 0xE4, 0x8F, 0x14, 0xF5, 0x3D, 0x81, 0x8E, 0x5E, 0xA5, 0xEB, 0xEC, 0x4F, 0xE8, 0xFE, 0xE7, 0x68, + 0x15, 0x92, 0xDE, 0x87, 0xCF, 0xA9, 0xF8, 0xCD, 0x29, 0x63, 0xC2, 0x88, 0x61, 0x0F, 0xBB, 0xC9, + 0x81, 0x0A, 0x4D, 0x0F, 0x45, 0xC1, 0xEE, 0x74, 0xDC, 0x82, 0x5B, 0x17, 0x5C, 0xA1, 0xA9, 0x7A, + 0x41, 0x14, 0x7F, 0xB3, 0x84, 0x13, 0xD6, 0x97, 0x2B, 0x32, 0x0D, 0x71, 0x71, 0xCB, 0xDB, 0x97, + 0x97, 0x92, 0x57, 0x39, 0x2B, 0x37, 0x18, 0x73, 0xCC, 0x38, 0x3F, 0xAB, 0xE0, 0x52, 0x98, 0x63, + 0xC0, 0xF6, 0xF0, 0x1A, 0x08, 0x9B, 0xB6, 0xA6, 0x42, 0x0B, 0x56, 0x83, 0xC9, 0x61, 0x06, 0x13, + 0xB3, 0xBC, 0x27, 0xD1, 0x94, 0x77, 0x4F, 0xF6, 0x51, 0x56, 0x67, 0x8D, 0xCD, 0xD1, 0xA9, 0xEA, + 0xAC, 0x0A, 0x87, 0x26, 0x47, 0x0A, 0x31, 0xCC, 0x79, 0xF2, 0xC1, 0x4C, 0x5A, 0x3A, 0xC8, 0x74, + 0x78, 0xD2, 0xC0, 0xD9, 0x02, 0x61, 0xA6, 0xB5, 0xCB, 0x64, 0x5A, 0xBB, 0x8C, 0x0B, 0x1B, 0x30, + 0x07, 0x8E, 0xA9, 0xE8, 0x89, 0x4F, 0x94, 0x40, 0x0E, 0x82, 0x60, 0xF8, 0x35, 0x04, 0x82, 0xF3, + 0xF3, 0x65, 0x96, 0xDE, 0xA1, 0xB7, 0x97, 0x21, 0xFD, 0xE3, 0x35, 0x4E, 0xD6, 0x5F, 0xD8, 0x2F, + 0xF1, 0xFA, 0xCE, 0x7E, 0x5F, 0xAC, 0x96, 0x69, 0x82, 0xC4, 0xCF, 0x68, 0xCE, 0x7E, 0xFC, 0x1C, + 0xCD, 0x42, 0x46, 0xE0, 0x97, 0xD1, 0x22, 0xCA, 0xF0, 0x7F, 0xA2, 0x2C, 0xC7, 0x69, 0xC2, 0x8A, + 0xF8, 0x17, 0x0E, 0x0F, 0xDD, 0x46, 0xB3, 0xFB, 0x97, 0xF3, 0x5B, 0xDE, 0xFA, 0x15, 0xCE, 0xD0, + 0x22, 0xE5, 0x1D, 0xBC, 0x49, 0xE7, 0x06, 0x8B, 0x12, 0x7F, 0x33, 0xC3, 0x13, 0x8A, 0xFD, 0xBC, + 0x15, 0x86, 0xE4, 0x7E, 0x85, 0xD2, 0xC5, 0x5E, 0x12, 0x7D, 0xC2, 0xB7, 0x11, 0x49, 0x33, 0x1D, + 0x06, 0x58, 0x54, 0x3F, 0x6B, 0x25, 0xE9, 0x1C, 0xB5, 0xC6, 0xAA, 0x46, 0x6F, 0x9D, 0xA3, 0xEC, + 0xF9, 0x2D, 0x4A, 0x98, 0x1C, 0x57, 0x5B, 0x6B, 0x15, 0x47, 0x64, 0x91, 0x66, 0x77, 0x13, 0x13, + 0x27, 0xDC, 0xC3, 0xC9, 0x2C, 0x5E, 0xCF, 0x51, 0xEE, 0xB5, 0xC4, 0xB7, 0x16, 0x9F, 0x21, 0x63, + 0x10, 0x66, 0x25, 0xFA, 0x41, 0xD4, 0x10, 0x23, 0x7E, 0xF6, 0x7F, 0x3C, 0xEF, 0x6C, 0x7F, 0xC6, + 0x26, 0xF4, 0x31, 0x4A, 0xE6, 0x59, 0x8A, 0xE7, 0xA0, 0x07, 0xBE, 0xCF, 0x59, 0xF1, 0x33, 0xDC, + 0x23, 0x28, 0x27, 0x2C, 0x75, 0x40, 0x75, 0xE2, 0x14, 0x43, 0x10, 0x41, 0x80, 0x14, 0x54, 0xA9, + 0x35, 0xD5, 0x99, 0xF2, 0x70, 0xEF, 0x2E, 0x22, 0xB3, 0xA5, 0xF7, 0x4C, 0xB4, 0xFD, 0xED, 0x99, + 0xF7, 0xDB, 0xBC, 0x03, 0x9E, 0x81, 0x12, 0xBD, 0xA1, 0xC7, 0x47, 0x6D, 0xFE, 0x72, 0xE6, 0x8F, + 0xF5, 0x8B, 0xD6, 0x55, 0x30, 0x05, 0x05, 0x94, 0xCB, 0x78, 0xD5, 0xFA, 0x39, 0x9A, 0xE1, 0x84, + 0xA4, 0xF9, 0xB2, 0x05, 0xE9, 0x6F, 0x7A, 0x89, 0x88, 0xF9, 0xCF, 0x77, 0xEF, 0xCE, 0xF9, 0x8F, + 0x83, 0xA3, 0x3F, 0xB5, 0xA6, 0x7A, 0xF4, 0x39, 0x1F, 0x38, 0x23, 0x87, 0x16, 0x7E, 0x17, 0xCD, + 0xD9, 0x73, 0x18, 0x34, 0xA8, 0xA5, 0x85, 0xDF, 0xD1, 0x7F, 0xF5, 0x77, 0x49, 0x51, 0x57, 0x2D, + 0xF1, 0xAB, 0x05, 0xE9, 0xAF, 0xE0, 0x80, 0xFF, 0x3B, 0xE8, 0xF3, 0x7F, 0xCF, 0x5F, 0x3A, 0xFA, + 0xE1, 0x74, 0xA9, 0x99, 0x78, 0xEB, 0x35, 0x8F, 0x4D, 0x73, 0x1A, 0xFA, 0x36, 0x11, 0x3F, 0xFB, + 0xED, 0xE6, 0x3C, 0x7B, 0x7B, 0xF9, 0xDB, 0xCD, 0x33, 0x39, 0xD9, 0x74, 0x8F, 0xF8, 0x07, 0x5F, + 0xB3, 0x47, 0x2E, 0x99, 0x1F, 0xE3, 0x6B, 0x9C, 0x13, 0xC9, 0x38, 0x99, 0x89, 0x11, 0xBD, 0x84, + 0x98, 0x65, 0x0D, 0x02, 0xDC, 0x2D, 0x22, 0x7F, 0x42, 0xF7, 0x3A, 0xC5, 0x1A, 0x3B, 0x20, 0xAE, + 0xA6, 0xA5, 0xBD, 0xCD, 0x3E, 0xEB, 0x73, 0x90, 0xBB, 0x94, 0x51, 0x20, 0xCC, 0xBC, 0xA1, 0x52, + 0xE5, 0x4C, 0x59, 0x27, 0xE5, 0x28, 0xCA, 0x54, 0x9C, 0x7F, 0xDE, 0x17, 0x3D, 0x1B, 0x7D, 0x58, + 0x6D, 0x64, 0xA4, 0x7B, 0x65, 0x5F, 0x8D, 0x38, 0xE6, 0x48, 0x6B, 0x99, 0x58, 0x91, 0x38, 0x62, + 0x45, 0x78, 0x38, 0xA1, 0xC5, 0x37, 0xA2, 0xF5, 0x1B, 0x50, 0xA5, 0x55, 0x51, 0x50, 0x0A, 0x06, + 0xA6, 0x70, 0x99, 0xE0, 0x85, 0xA7, 0xB8, 0x1C, 0xD1, 0xD5, 0xF1, 0xA2, 0x32, 0x88, 0x5A, 0xB4, + 0x99, 0x0F, 0x0C, 0xB6, 0xDA, 0x5A, 0xBD, 0x18, 0xAD, 0xAE, 0xF0, 0x14, 0xEC, 0x5B, 0x1D, 0x71, + 0xD7, 0x22, 0xBB, 0x0A, 0xDD, 0x22, 0xF6, 0x9B, 0x44, 0x69, 0x4E, 0x78, 0xEA, 0x27, 0xE9, 0xBA, + 0x23, 0xF3, 0x92, 0x98, 0x78, 0x49, 0x19, 0xC2, 0x8D, 0x02, 0x1B, 0xAB, 0xD4, 0x71, 0x04, 0xC5, + 0xF7, 0xBC, 0xD6, 0x05, 0x41, 0x59, 0x44, 0xD4, 0xBB, 0x88, 0x7B, 0x71, 0x0D, 0xDB, 0x33, 0x31, + 0x31, 0xA8, 0x76, 0x62, 0xF6, 0x3D, 0x7C, 0xE2, 0x3F, 0x3E, 0xE2, 0x53, 0xD7, 0xCA, 0x6C, 0xC4, + 0x10, 0x01, 0x30, 0x4F, 0x1F, 0xEE, 0x31, 0x8A, 0xE7, 0x7B, 0x76, 0xE9, 0xD7, 0x8D, 0x1C, 0x81, + 0x62, 0x91, 0x66, 0x2F, 0xA3, 0xD9, 0xF2, 0x87, 0x7B, 0x46, 0x04, 0x54, 0x08, 0xF8, 0x87, 0x19, + 0x2F, 0x29, 0x97, 0x7C, 0xF5, 0x60, 0x19, 0xCB, 0xC8, 0x2B, 0x4A, 0x52, 0x06, 0x45, 0x96, 0x15, + 0x7A, 0x70, 0x4C, 0xA2, 0xA2, 0xE4, 0x7F, 0x42, 0x14, 0x0D, 0xF2, 0x57, 0x6E, 0x6E, 0xCB, 0xB2, + 0x88, 0xD3, 0x34, 0xF3, 0x3C, 0xD2, 0xC1, 0xE0, 0x59, 0x1F, 0xA8, 0x97, 0xEF, 0x5A, 0x3C, 0xF2, + 0x29, 0xDB, 0x64, 0xD9, 0x69, 0x89, 0xA4, 0x8D, 0x0E, 0x73, 0x96, 0x85, 0x65, 0xE1, 0x65, 0x27, + 0x75, 0x75, 0xF2, 0x4E, 0x00, 0xB1, 0x30, 0xA3, 0xC8, 0x75, 0x3E, 0x63, 0x57, 0x77, 0xDD, 0x80, + 0x0F, 0x7C, 0x02, 0xF2, 0x6E, 0x57, 0x1E, 0x3C, 0x39, 0x15, 0x49, 0x0E, 0xFB, 0x7D, 0xCE, 0x6E, + 0x21, 0x7E, 0x22, 0xC3, 0x7D, 0x81, 0x6E, 0xD2, 0x75, 0x32, 0x43, 0xF3, 0x8B, 0x79, 0x8C, 0x3E, + 0x44, 0xF9, 0xC7, 0x90, 0xF4, 0xE4, 0xCF, 0xFF, 0xB5, 0x46, 0x6B, 0x2A, 0x4C, 0xBC, 0xCB, 0x70, + 0x9A, 0x61, 0x72, 0xAF, 0xBF, 0x49, 0xA1, 0x56, 0xBC, 0xF7, 0x61, 0x8F, 0xCA, 0x46, 0x40, 0x08, + 0xB9, 0x99, 0x53, 0x34, 0x24, 0x51, 0xFE, 0xD1, 0xBC, 0xED, 0x84, 0x7E, 0x81, 0x92, 0xBF, 0x52, + 0x68, 0x9A, 0x77, 0xB3, 0x3A, 0xEA, 0xBE, 0x21, 0x26, 0x8C, 0xA5, 0x85, 0x01, 0xC5, 0x22, 0xA6, + 0x9F, 0xF9, 0x4D, 0x50, 0x5C, 0x69, 0x24, 0xF9, 0xF0, 0x66, 0xE2, 0x79, 0x12, 0x18, 0xDF, 0x84, + 0x96, 0x1C, 0x4F, 0x3D, 0x1D, 0xD7, 0xAE, 0xD3, 0x99, 0xE8, 0x3B, 0xBD, 0x57, 0x96, 0xF9, 0xF0, + 0x3C, 0x46, 0xE7, 0x51, 0x1C, 0xDF, 0x44, 0xB3, 0x8F, 0xDA, 0xC2, 0x27, 0x4A, 0x66, 0x28, 0x96, + 0x9F, 0xBD, 0x6A, 0x4D, 0x65, 0xB8, 0x67, 0x7C, 0x0B, 0x6D, 0x93, 0x07, 0xAC, 0x1E, 0xF3, 0x4D, + 0x6C, 0x43, 0xBF, 0x90, 0x03, 0x74, 0x20, 0xA0, 0x2D, 0x07, 0x4D, 0xB8, 0x52, 0xBD, 0xCB, 0xF4, + 0x56, 0x25, 0xA4, 0x84, 0x53, 0x4C, 0xEF, 0x06, 0x27, 0x73, 0xF6, 0x09, 0x00, 0xED, 0xFB, 0xA6, + 0xE7, 0xD9, 0x81, 0xA7, 0x48, 0x40, 0xE1, 0x43, 0x8A, 0x68, 0x1E, 0xA2, 0x1E, 0xC1, 0x77, 0xE8, + 0x3D, 0xBA, 0x8B, 0x70, 0x82, 0x93, 0x5B, 0x0F, 0xC0, 0x2C, 0xF4, 0x27, 0x1B, 0xE7, 0x9E, 0x31, + 0xFE, 0xF0, 0x45, 0x44, 0x50, 0x2F, 0x49, 0x3F, 0x2B, 0xB5, 0x5B, 0xC3, 0x62, 0x40, 0xA2, 0xED, + 0xC9, 0x02, 0xA8, 0x5B, 0x76, 0x09, 0x80, 0xD8, 0x30, 0x35, 0x83, 0x98, 0xA2, 0x50, 0x45, 0x2B, + 0xE8, 0x8D, 0xBE, 0xC7, 0xA7, 0x99, 0xDC, 0x64, 0x79, 0x97, 0x9C, 0x74, 0xFB, 0x7E, 0xBB, 0x4D, + 0x49, 0x30, 0x8D, 0x51, 0xEF, 0x73, 0x94, 0x25, 0xDE, 0xEF, 0x14, 0x81, 0x3D, 0x46, 0x6C, 0x7B, + 0xE8, 0xCB, 0x0C, 0xA1, 0x39, 0x9A, 0xEF, 0x45, 0x71, 0x9C, 0x12, 0x82, 0xE6, 0x7B, 0x73, 0x14, + 0xCD, 0x63, 0x9C, 0xA0, 0xBD, 0x9B, 0xFB, 0xBD, 0xEF, 0x1E, 0x58, 0x97, 0xD1, 0x4D, 0xEE, 0xB1, + 0x1F, 0xCC, 0xAB, 0xDA, 0xCB, 0xBB, 0x04, 0x80, 0xE2, 0x2E, 0xFF, 0x1D, 0x40, 0x36, 0x5B, 0x16, + 0x65, 0x4E, 0xF2, 0x30, 0x2B, 0x2C, 0x92, 0x2A, 0xF8, 0x3E, 0x48, 0xF6, 0xB8, 0x39, 0x07, 0xDD, + 0x11, 0x95, 0xF5, 0xD2, 0x17, 0x6E, 0x66, 0xED, 0x75, 0x87, 0xD2, 0x35, 0xF1, 0x3C, 0x7A, 0x1F, + 0x95, 0xEF, 0x0A, 0xDC, 0xC4, 0xE7, 0x85, 0x40, 0xCE, 0x0B, 0x0E, 0x00, 0x5B, 0xCC, 0x12, 0x31, + 0xD2, 0x7B, 0x38, 0xED, 0x56, 0x82, 0x40, 0xCA, 0x38, 0x48, 0xB5, 0x34, 0xAE, 0xEA, 0x7A, 0x7E, + 0x3B, 0x48, 0x30, 0x92, 0x07, 0x6B, 0x46, 0xD9, 0x8D, 0xD8, 0x4C, 0xE4, 0xDB, 0xD5, 0x4D, 0x00, + 0xBB, 0x15, 0x56, 0x99, 0x41, 0x02, 0xCB, 0x2C, 0x63, 0x3F, 0x17, 0xF7, 0x81, 0x76, 0xBB, 0x25, + 0x06, 0x7E, 0x61, 0x90, 0x5C, 0x0B, 0x27, 0x7B, 0xDC, 0x94, 0xED, 0x8C, 0xCF, 0xD4, 0x56, 0xF3, + 0xE4, 0x00, 0xC4, 0x47, 0x5B, 0x9D, 0x10, 0xF6, 0xA5, 0x5C, 0xB1, 0x18, 0x27, 0x4E, 0x7E, 0x57, + 0x7F, 0x9B, 0xFD, 0x2B, 0x1F, 0x1E, 0xFA, 0xBC, 0x57, 0x1A, 0x60, 0x21, 0x5E, 0x5F, 0x8D, 0x6A, + 0x72, 0xF1, 0xA1, 0xF9, 0x4D, 0x33, 0x38, 0xC5, 0xBE, 0xCC, 0x62, 0xF1, 0x8D, 0x32, 0xF2, 0xE3, + 0xFE, 0x51, 0xFF, 0xEB, 0x18, 0x39, 0xB7, 0x0B, 0x12, 0xE2, 0xFE, 0xCF, 0xE9, 0x1C, 0x09, 0x4D, + 0xF9, 0x25, 0x89, 0x88, 0x8B, 0x61, 0x0F, 0x07, 0x60, 0xB2, 0xA9, 0x95, 0xA9, 0x39, 0xD1, 0x36, + 0x6E, 0x37, 0x65, 0x45, 0xBD, 0xD6, 0x60, 0xF2, 0xD0, 0xBD, 0xEA, 0x4F, 0x2A, 0x41, 0xE0, 0x90, + 0x5F, 0x91, 0x88, 0xBC, 0x6F, 0x13, 0xD1, 0x46, 0x24, 0xD0, 0x66, 0xBB, 0x7A, 0x7B, 0x90, 0x60, + 0x92, 0xB5, 0xDB, 0xB8, 0xDD, 0xF6, 0x32, 0xE3, 0x31, 0x00, 0x5F, 0xE5, 0xEC, 0x71, 0x9A, 0x3D, + 0x19, 0x5D, 0x9F, 0xBF, 0x7D, 0xF1, 0xF2, 0xFA, 0xE2, 0xCD, 0x8B, 0x97, 0x7F, 0x9E, 0xEE, 0x87, + 0x61, 0xDE, 0x7B, 0xF3, 0xCB, 0xEB, 0xD7, 0xDC, 0x82, 0x9D, 0x96, 0xB4, 0xDB, 0xCD, 0xB5, 0x7F, + 0xFD, 0xE9, 0xE2, 0xC3, 0xCB, 0xCB, 0x77, 0xCF, 0xCF, 0x5F, 0xEA, 0x36, 0xA0, 0x28, 0xE0, 0xE0, + 0x70, 0xF0, 0x55, 0xB7, 0x7F, 0x69, 0xB1, 0xF5, 0x9C, 0x90, 0x8C, 0x5E, 0x98, 0xAD, 0x38, 0x00, + 0x5B, 0x68, 0x89, 0x16, 0xB7, 0xF2, 0x04, 0xB9, 0x51, 0xBF, 0x94, 0xB1, 0x19, 0xA5, 0xD1, 0xBC, + 0xC8, 0x49, 0x44, 0xF0, 0x6C, 0x8F, 0xA4, 0x2A, 0xA2, 0x80, 0xDA, 0x3D, 0x57, 0xE8, 0xF4, 0xF4, + 0x34, 0x38, 0x68, 0xF7, 0x47, 0x23, 0x48, 0x7F, 0x1E, 0xB1, 0x5F, 0xFD, 0xD1, 0xA8, 0x8D, 0xA6, + 0xB2, 0x9D, 0x15, 0x8B, 0x40, 0xB5, 0xF4, 0x58, 0xA5, 0x2B, 0x7F, 0x0A, 0x4E, 0x4E, 0x82, 0x83, + 0x47, 0xF1, 0x67, 0x40, 0xFF, 0x3C, 0x7A, 0xE4, 0x7F, 0xF4, 0xE9, 0xED, 0x8A, 0x3D, 0xD3, 0x59, + 0x0F, 0x57, 0xD2, 0x31, 0x64, 0x4F, 0x3F, 0x4A, 0x59, 0xEF, 0x50, 0xB6, 0x3B, 0xB5, 0x35, 0x20, + 0xED, 0x51, 0x5D, 0xE0, 0xFC, 0x22, 0x61, 0xCF, 0xD9, 0x5A, 0xDC, 0x93, 0x4F, 0x7A, 0x6D, 0x01, + 0xB3, 0xC0, 0xF9, 0x0F, 0x69, 0x3C, 0xD7, 0x15, 0x94, 0xA7, 0xAA, 0x51, 0x43, 0x3B, 0x8A, 0xDA, + 0x62, 0xE3, 0x32, 0xCA, 0xAD, 0xA5, 0xF1, 0x80, 0x48, 0x0B, 0x6A, 0xE1, 0x63, 0xBB, 0x73, 0x9F, + 0x05, 0x63, 0xE5, 0xBF, 0x6B, 0x22, 0x61, 0x1B, 0x07, 0x2A, 0x47, 0x5C, 0xA3, 0xCA, 0x45, 0xF2, + 0x09, 0xE7, 0xF8, 0x26, 0x36, 0xB0, 0xD0, 0x4E, 0xB8, 0x66, 0x3D, 0x12, 0xC5, 0x78, 0x56, 0x37, + 0xE4, 0x1B, 0x5A, 0xE5, 0x05, 0xBE, 0xAB, 0x1D, 0x31, 0xAB, 0x70, 0x49, 0x32, 0xFC, 0x11, 0x91, + 0x65, 0x96, 0xAE, 0x6F, 0x97, 0xBA, 0xAA, 0xF6, 0xEE, 0x35, 0xFA, 0x33, 0x5E, 0x8C, 0x6A, 0xD0, + 0xBF, 0xB9, 0x2D, 0x6E, 0x91, 0x34, 0x96, 0xB3, 0xED, 0x74, 0x64, 0xB4, 0x0B, 0x05, 0xEF, 0x16, + 0x49, 0xAB, 0xB8, 0xA6, 0x8A, 0x0C, 0xC9, 0x57, 0xB7, 0x94, 0xDA, 0x2A, 0x35, 0xC2, 0xD0, 0x2B, + 0x43, 0x05, 0x74, 0x86, 0xB7, 0xAC, 0x7D, 0xC3, 0x6A, 0xBF, 0xBA, 0x7D, 0x17, 0xC5, 0x88, 0x10, + 0x73, 0xB2, 0x85, 0x07, 0xB9, 0x0B, 0xFE, 0xE3, 0xA3, 0x0C, 0xAF, 0x51, 0xDB, 0xFB, 0xF6, 0xF0, + 0x6E, 0x1A, 0xE1, 0x49, 0xFC, 0x84, 0x79, 0x8E, 0x67, 0x06, 0xDA, 0xAD, 0xE9, 0x7A, 0x8B, 0xAA, + 0x1C, 0xAA, 0x66, 0x2C, 0x8E, 0x16, 0x72, 0x1B, 0xF2, 0xA0, 0x01, 0xD5, 0x85, 0xF5, 0x94, 0x4B, + 0x6C, 0x05, 0x0B, 0xE1, 0x90, 0x24, 0x06, 0xCC, 0xDD, 0xD3, 0xE4, 0x00, 0xC7, 0x92, 0xB6, 0x46, + 0x23, 0x59, 0x5F, 0xB8, 0xB1, 0x09, 0x28, 0x63, 0x7B, 0xBE, 0x74, 0xAD, 0x39, 0x47, 0x72, 0x2C, + 0x0D, 0x88, 0x0B, 0x83, 0x78, 0xEA, 0x90, 0xB9, 0xD9, 0x11, 0x99, 0x9B, 0xAD, 0x90, 0xB9, 0x71, + 0x21, 0x53, 0xE5, 0x0E, 0x6A, 0x1B, 0xD9, 0x0C, 0xE0, 0xE6, 0xB6, 0x28, 0x5B, 0xE6, 0x3E, 0xD8, + 0x2C, 0x04, 0xE7, 0x2F, 0xEF, 0x56, 0xE4, 0xDE, 0x13, 0x41, 0x9E, 0x6F, 0x2C, 0xA7, 0xF6, 0xB1, + 0xF8, 0x66, 0x04, 0x06, 0xA0, 0x13, 0xF1, 0x8B, 0xE5, 0x8A, 0xCD, 0xF5, 0x95, 0x95, 0x8E, 0xDB, + 0xED, 0xFF, 0xAE, 0x61, 0x56, 0xDC, 0x84, 0xD6, 0x39, 0x87, 0x75, 0x95, 0x77, 0x9A, 0xD8, 0x1A, + 0x20, 0xDB, 0xCC, 0x76, 0x5D, 0x53, 0x7B, 0x09, 0x38, 0x8B, 0x36, 0xC9, 0xB3, 0xA8, 0x2D, 0xA8, + 0x4C, 0x97, 0xCD, 0x7B, 0x76, 0x9D, 0xB6, 0xB3, 0xAD, 0xE6, 0x6B, 0x5C, 0xC2, 0x83, 0xF7, 0x69, + 0x1E, 0x37, 0xEA, 0x44, 0xFD, 0x7A, 0x4C, 0x2A, 0x1B, 0xBE, 0x6E, 0x11, 0x39, 0x56, 0x8A, 0xB9, + 0x56, 0xD0, 0xA9, 0xB0, 0xB1, 0x9D, 0x51, 0xAA, 0xE5, 0x7B, 0x75, 0x28, 0x35, 0x30, 0xC3, 0xCD, + 0xA3, 0x50, 0xF8, 0x56, 0x46, 0x52, 0xE1, 0x71, 0x3B, 0x8F, 0xA4, 0xCA, 0x46, 0x37, 0xE3, 0xA3, + 0x7A, 0xB5, 0x88, 0x8E, 0xFB, 0x1B, 0xD7, 0x61, 0xB2, 0xB8, 0x3D, 0xAB, 0xE0, 0x76, 0xD6, 0x24, + 0x64, 0x8C, 0x83, 0xB1, 0x4F, 0x2F, 0x5C, 0xB6, 0xA0, 0x88, 0x85, 0x8C, 0x58, 0xD2, 0x7E, 0x53, + 0x89, 0x30, 0xF4, 0xE5, 0xF5, 0x02, 0x7D, 0x21, 0x4A, 0xDD, 0x60, 0x7B, 0x12, 0xD0, 0x12, 0x64, + 0x95, 0x10, 0x3A, 0x06, 0x7A, 0x03, 0x2B, 0xAB, 0xD3, 0x58, 0xF1, 0x59, 0x77, 0x78, 0x70, 0x7C, + 0x78, 0xD0, 0xF7, 0x87, 0xC7, 0x6D, 0x05, 0x81, 0xDF, 0xDE, 0x6D, 0x6C, 0x4F, 0x4E, 0xFA, 0xD2, + 0xAB, 0x14, 0x7D, 0x21, 0xF4, 0x82, 0xC4, 0x60, 0x22, 0x13, 0x25, 0xC4, 0xBA, 0x5A, 0xD7, 0xCC, + 0x97, 0xD9, 0xEB, 0x68, 0xEC, 0xC9, 0x7E, 0x8F, 0x74, 0xBF, 0xE0, 0xF4, 0xB4, 0x7F, 0xC0, 0x40, + 0x97, 0x60, 0x98, 0xBD, 0xB4, 0x43, 0x8D, 0xB2, 0x1E, 0xF4, 0x63, 0xC8, 0x30, 0x6C, 0x2B, 0xA8, + 0x36, 0x2A, 0x92, 0xBD, 0xDA, 0xD2, 0xD6, 0xA0, 0x6D, 0x0F, 0xA8, 0x54, 0xBD, 0xD4, 0x6B, 0xD9, + 0xD0, 0x8C, 0x76, 0xAA, 0x00, 0x89, 0xA1, 0xD3, 0xC1, 0x39, 0x47, 0xCC, 0xE1, 0xB3, 0x62, 0x05, + 0x96, 0xAF, 0x0F, 0x52, 0xB2, 0xB5, 0x7C, 0x71, 0xA2, 0xB2, 0xBE, 0xA7, 0x3A, 0x31, 0x17, 0x93, + 0xEE, 0x0F, 0x71, 0xC8, 0x54, 0xCE, 0x7C, 0x7B, 0xCA, 0x8C, 0xF3, 0x5F, 0x20, 0x50, 0x94, 0xAF, + 0x28, 0x79, 0x01, 0x8F, 0xFD, 0xE3, 0xAF, 0xBC, 0x95, 0x0A, 0x2B, 0x0F, 0x66, 0x57, 0x25, 0x95, + 0xF1, 0xA1, 0xFC, 0x1C, 0x92, 0xDE, 0xCF, 0xCF, 0xFF, 0x7C, 0xFD, 0xC3, 0x2F, 0xAF, 0x5E, 0xBD, + 0x7C, 0xCF, 0xDC, 0x8B, 0x1D, 0xF7, 0xD4, 0xC1, 0xF0, 0x98, 0xDE, 0x11, 0xB1, 0x77, 0x34, 0x1C, + 0x1C, 0x02, 0x98, 0x84, 0xD8, 0x1B, 0x05, 0x01, 0x80, 0xA9, 0xB8, 0xC4, 0xC2, 0x28, 0xC4, 0xDE, + 0xF0, 0x60, 0x30, 0x04, 0x70, 0x49, 0x7F, 0x1D, 0x1D, 0x0C, 0x00, 0x9C, 0x85, 0xD8, 0x3B, 0x0C, + 0x82, 0x03, 0x00, 0xE3, 0x10, 0x7B, 0xF4, 0xEA, 0x06, 0xE0, 0x9C, 0x7E, 0xEB, 0xF7, 0x0F, 0xE8, + 0xB5, 0xB7, 0xDC, 0xED, 0xB0, 0x7F, 0x3C, 0x3C, 0x3E, 0x38, 0xEC, 0x1F, 0x8F, 0x14, 0xCE, 0xAE, + 0x37, 0x26, 0xF3, 0x6D, 0x7E, 0x19, 0xE5, 0xDC, 0x34, 0x9C, 0x29, 0xD1, 0x90, 0xD3, 0x37, 0x3C, + 0x24, 0x2E, 0x83, 0x98, 0x50, 0xA4, 0xF4, 0xE7, 0x49, 0xA9, 0xC5, 0xCE, 0xE4, 0x19, 0xAE, 0xE5, + 0x1F, 0xF2, 0x87, 0xB2, 0xF8, 0x27, 0xD1, 0x4D, 0x1E, 0x3E, 0x14, 0xFC, 0x0F, 0xE1, 0xCC, 0xEA, + 0x1B, 0x7F, 0xFD, 0xD9, 0xFA, 0xCB, 0xF0, 0x7C, 0x0C, 0xB3, 0x4D, 0xC6, 0x98, 0x96, 0x6B, 0xE9, + 0xAC, 0x6C, 0xD2, 0xCD, 0xEB, 0xDC, 0xF1, 0x2C, 0xFB, 0x5A, 0x7D, 0x9B, 0x88, 0x4C, 0x2E, 0x61, + 0xA2, 0xAC, 0x13, 0x79, 0x2C, 0xBB, 0x65, 0xC4, 0x0D, 0x34, 0xAF, 0x7C, 0x98, 0x9A, 0x37, 0xEF, + 0x9F, 0x9E, 0xBF, 0xB7, 0x3E, 0xFC, 0x7A, 0xF1, 0xE2, 0xC3, 0x4F, 0x76, 0x95, 0xB7, 0x2F, 0x5E, + 0x4E, 0x95, 0xF3, 0xF5, 0x12, 0x13, 0x94, 0xAF, 0x44, 0x2A, 0x9A, 0xE6, 0x5E, 0x2A, 0x37, 0x76, + 0xDE, 0x57, 0xF9, 0xB3, 0xEC, 0xD1, 0x75, 0xC1, 0x57, 0xFD, 0xE2, 0xFC, 0x3C, 0x46, 0x11, 0xA5, + 0x56, 0xED, 0x0E, 0x70, 0x87, 0xEE, 0xD2, 0xEC, 0x9E, 0x7E, 0x4F, 0xD6, 0xAB, 0xFF, 0xA5, 0x74, + 0x42, 0x73, 0x5B, 0x27, 0xE4, 0xAA, 0xFC, 0x2E, 0xCD, 0x31, 0xA5, 0x07, 0xED, 0xC8, 0x95, 0xC6, + 0xEE, 0x14, 0xB7, 0x2C, 0xA9, 0xB5, 0xD0, 0xEC, 0x32, 0x53, 0x00, 0x47, 0x1D, 0x9D, 0xFE, 0x9D, + 0xE9, 0x49, 0xF8, 0xA5, 0xBF, 0x77, 0x8E, 0xB3, 0xD9, 0x3A, 0x8E, 0xB2, 0xD7, 0x38, 0x27, 0xFA, + 0x91, 0xEE, 0x3C, 0xCD, 0x32, 0x34, 0x93, 0x79, 0xDF, 0x99, 0x76, 0xD6, 0xD3, 0xE0, 0xA5, 0x8D, + 0x72, 0x25, 0x12, 0x8A, 0x23, 0xF6, 0x89, 0x19, 0xED, 0x24, 0x47, 0x64, 0xBD, 0xFA, 0x10, 0xDD, + 0x5C, 0x92, 0x74, 0x95, 0xF3, 0xD3, 0x4F, 0xA5, 0xF4, 0x31, 0x92, 0xB0, 0x48, 0x5B, 0x7C, 0x49, + 0x24, 0xF4, 0xFA, 0x8F, 0xB4, 0xFB, 0xAE, 0xFA, 0x7C, 0x43, 0x3F, 0xDF, 0x54, 0x3E, 0x3B, 0x22, + 0xAC, 0x81, 0xB1, 0x03, 0xA4, 0xEF, 0x80, 0x57, 0xF9, 0x66, 0xA9, 0x48, 0x62, 0x9B, 0xC5, 0x81, + 0x52, 0x65, 0x3A, 0x9E, 0x5F, 0x2D, 0xC2, 0x73, 0x8D, 0xCA, 0x26, 0xCD, 0xD2, 0xD8, 0x4A, 0x85, + 0xF6, 0x08, 0x4B, 0x85, 0x4D, 0xE3, 0xAC, 0x76, 0xE2, 0xD7, 0xF6, 0x50, 0x53, 0xB2, 0xCD, 0xC8, + 0xED, 0x26, 0x85, 0x65, 0xDD, 0x6E, 0x5A, 0x12, 0x51, 0x10, 0x99, 0x60, 0x8C, 0x86, 0xE9, 0x7B, + 0x1D, 0x0D, 0xDB, 0x74, 0x01, 0x09, 0xA3, 0x94, 0x3D, 0x8B, 0x63, 0x96, 0x4F, 0x41, 0xAB, 0x50, + 0x3C, 0x86, 0x71, 0x75, 0xE0, 0x5D, 0xF4, 0x85, 0x13, 0xF0, 0xA9, 0x26, 0x48, 0x06, 0x4F, 0xC7, + 0xFD, 0xFD, 0x4F, 0x8C, 0x3E, 0xAF, 0x52, 0xF6, 0x8A, 0x62, 0x79, 0x27, 0x18, 0xD6, 0xC7, 0xF7, + 0x5D, 0xCD, 0x73, 0x95, 0x5E, 0xEA, 0x34, 0xF4, 0xDB, 0x6D, 0x61, 0x0D, 0xC9, 0xE1, 0xD6, 0xED, + 0x1D, 0x2B, 0x5F, 0x94, 0x85, 0xAB, 0x7C, 0x79, 0x40, 0xDA, 0x99, 0xB6, 0xE3, 0x3A, 0x0B, 0xCC, + 0x38, 0x21, 0xB9, 0x6A, 0x2D, 0x51, 0xC1, 0xA7, 0x95, 0x43, 0xE9, 0xAC, 0xF2, 0x65, 0x8C, 0x8B, + 0x05, 0x8E, 0x63, 0x39, 0xDA, 0xF7, 0xE9, 0xE7, 0xBC, 0x6C, 0x2A, 0xC0, 0xA7, 0x4C, 0xBC, 0xCF, + 0x3E, 0x28, 0x33, 0x00, 0xC4, 0x02, 0x2C, 0x3A, 0x8E, 0x02, 0x99, 0x78, 0x5C, 0x4F, 0x41, 0x39, + 0x4D, 0x2C, 0x87, 0xA8, 0xA3, 0x55, 0xD8, 0x34, 0x02, 0xD8, 0x6B, 0x87, 0xF1, 0x82, 0xB6, 0xCB, + 0xA1, 0xF6, 0x8F, 0xC2, 0xC6, 0x44, 0x58, 0xFA, 0xAA, 0xD9, 0xB7, 0x49, 0xC7, 0xB5, 0x93, 0x97, + 0x87, 0x52, 0x5E, 0x49, 0xC2, 0x66, 0xC4, 0xD9, 0x8B, 0x70, 0x72, 0xEA, 0xA2, 0x6D, 0xF9, 0xD6, + 0x58, 0xFA, 0x1C, 0x26, 0x00, 0x56, 0xD6, 0xF5, 0xD4, 0x37, 0x7C, 0x7A, 0xE8, 0xA6, 0x3B, 0x41, + 0xC0, 0x61, 0xAE, 0x6F, 0x36, 0xE1, 0x09, 0x03, 0x3A, 0x61, 0xC7, 0x28, 0x61, 0xA9, 0xE2, 0x40, + 0x4F, 0x0D, 0x1E, 0xEB, 0x40, 0xAE, 0xDA, 0x63, 0x28, 0xFD, 0x9C, 0x9F, 0x10, 0x05, 0x3D, 0x37, + 0xE9, 0x24, 0x3F, 0x21, 0x93, 0xBC, 0xD3, 0x01, 0x95, 0xCE, 0x4E, 0x48, 0x47, 0xAF, 0xBE, 0x7A, + 0x44, 0xDD, 0x14, 0x35, 0x87, 0xBD, 0x3E, 0x9C, 0x95, 0x49, 0xAE, 0xC2, 0x78, 0x28, 0x9E, 0xE2, + 0x26, 0xC6, 0xE0, 0xAB, 0x97, 0x73, 0x0B, 0x83, 0xEA, 0xF6, 0xEF, 0xA4, 0xCA, 0x47, 0x8C, 0x27, + 0x8D, 0xEF, 0xC2, 0x54, 0xBA, 0x9B, 0x31, 0x9A, 0x55, 0x80, 0xD8, 0x5F, 0xDD, 0xAE, 0xE8, 0x64, + 0x23, 0x2E, 0xDC, 0x7F, 0x79, 0xAF, 0x9C, 0x3C, 0x91, 0x4D, 0x11, 0x3A, 0x25, 0x13, 0xD4, 0xED, + 0x56, 0xA7, 0xE8, 0xD4, 0x35, 0x45, 0x76, 0x85, 0xCA, 0x00, 0x02, 0x6B, 0x72, 0xD2, 0x95, 0x27, + 0x0F, 0x0B, 0x5E, 0xCB, 0x1C, 0x4B, 0xA7, 0x03, 0x38, 0xAD, 0x9D, 0xB8, 0x88, 0xAA, 0xC4, 0x24, + 0xCD, 0x6E, 0xBB, 0xC9, 0x84, 0xCD, 0xA8, 0x89, 0x10, 0xC9, 0xF0, 0xDD, 0x25, 0x7B, 0xEA, 0x94, + 0x6F, 0xF2, 0x7C, 0x5B, 0xDB, 0x61, 0x40, 0xF8, 0xA4, 0xEA, 0x00, 0x1F, 0x9C, 0x0F, 0x94, 0xEA, + 0xB0, 0x99, 0xD5, 0x75, 0x84, 0x1C, 0x6B, 0x57, 0x12, 0x11, 0x44, 0x10, 0x0B, 0xCB, 0xE4, 0xDE, + 0x13, 0x85, 0x60, 0x23, 0xBC, 0x21, 0x4E, 0x78, 0xC3, 0x2F, 0x10, 0x29, 0x8B, 0xAB, 0xFB, 0x52, + 0xD9, 0x3D, 0x24, 0xB4, 0x2C, 0x95, 0x23, 0xBB, 0xEF, 0x84, 0x29, 0xB0, 0xC4, 0x67, 0xBB, 0x3E, + 0xFF, 0x68, 0x00, 0x34, 0x58, 0x4C, 0x21, 0x77, 0x87, 0xCD, 0x65, 0x54, 0x68, 0x29, 0x9C, 0xBF, + 0x47, 0x8B, 0x38, 0xFD, 0xFC, 0x32, 0x89, 0x6E, 0x62, 0xA4, 0xAC, 0xE8, 0xAF, 0x33, 0xF6, 0x95, + 0x71, 0x19, 0x43, 0x1A, 0x3C, 0x45, 0xE0, 0x1B, 0x6D, 0x5E, 0x43, 0xC2, 0x44, 0x96, 0x28, 0x59, + 0x2B, 0xC6, 0xAA, 0x37, 0xCB, 0xFC, 0xB4, 0x17, 0x7C, 0x5F, 0xE9, 0x57, 0x61, 0xDE, 0x2C, 0xD3, + 0x3A, 0xE0, 0xCA, 0x77, 0x4F, 0xF6, 0x9E, 0x2D, 0x44, 0x85, 0x88, 0xCC, 0x96, 0x68, 0xFE, 0xB3, + 0x59, 0xD9, 0xE3, 0x2F, 0xDA, 0xEE, 0xA2, 0x07, 0xBE, 0x9B, 0xF6, 0xFD, 0x49, 0x03, 0x12, 0xA7, + 0x55, 0x12, 0xDE, 0x88, 0x35, 0x0A, 0xF7, 0x03, 0x79, 0xEC, 0x59, 0x26, 0x0D, 0xCE, 0x06, 0x8E, + 0xE5, 0x00, 0x94, 0x00, 0x3A, 0x61, 0x79, 0x35, 0xEA, 0x61, 0x74, 0x3A, 0x80, 0x4D, 0x75, 0xB2, + 0x5E, 0xF1, 0x41, 0xD2, 0xAB, 0xD7, 0x69, 0xE0, 0xFB, 0x3A, 0x42, 0x98, 0x14, 0x22, 0x98, 0x60, + 0x53, 0x26, 0xA1, 0x0D, 0xB2, 0xD2, 0xFE, 0x0E, 0x0C, 0xB6, 0x30, 0xC9, 0xF0, 0x41, 0x93, 0xCC, + 0xBE, 0x90, 0x11, 0x4E, 0xF5, 0xA7, 0x33, 0x93, 0x6C, 0x5F, 0x47, 0xD9, 0x2D, 0xE2, 0xF1, 0x24, + 0xC6, 0xE6, 0xF7, 0xCB, 0xBB, 0x28, 0x8E, 0x45, 0x01, 0x28, 0xAA, 0x95, 0xD5, 0x79, 0xEA, 0xF9, + 0x30, 0xEA, 0x99, 0xC5, 0x3F, 0x22, 0xE6, 0xF0, 0x9E, 0x7F, 0x48, 0xDF, 0xA3, 0xBB, 0xF4, 0x13, + 0x02, 0x06, 0xCF, 0x31, 0xF6, 0x07, 0x44, 0xB0, 0xC2, 0x0A, 0xAB, 0x42, 0xA6, 0xEB, 0x70, 0x66, + 0x1C, 0x10, 0x1B, 0x67, 0xA6, 0x11, 0x62, 0xC2, 0x46, 0xE5, 0x9C, 0xD9, 0x4B, 0xBC, 0x41, 0x9F, + 0x5F, 0x47, 0xF7, 0xE9, 0x9A, 0x58, 0x98, 0x60, 0x30, 0xA9, 0xD4, 0x7F, 0xBE, 0x5A, 0xC5, 0xF7, + 0xEE, 0xEA, 0x79, 0x2F, 0xE6, 0x1F, 0x61, 0x75, 0xF6, 0x9E, 0xCF, 0xFF, 0xEF, 0x3A, 0x27, 0x4A, + 0x56, 0x65, 0x66, 0x62, 0xBD, 0x59, 0xBA, 0x4E, 0x08, 0x9F, 0x81, 0x39, 0x28, 0x8A, 0x4D, 0x0D, + 0x8C, 0xE0, 0xEE, 0xDB, 0x4B, 0x28, 0x49, 0x88, 0x39, 0x9D, 0x27, 0xDD, 0xEE, 0xDE, 0xA9, 0x3F, + 0x01, 0x4A, 0x5C, 0x64, 0xB3, 0x2A, 0x8F, 0x45, 0x7D, 0x02, 0x4A, 0x27, 0x52, 0xFB, 0x54, 0xB7, + 0x0E, 0xDA, 0xBA, 0x13, 0x31, 0x07, 0x40, 0x9D, 0x4B, 0xEC, 0x08, 0x30, 0x7B, 0xB2, 0x4F, 0x58, + 0x68, 0x9E, 0xC6, 0x82, 0x7F, 0x35, 0x1D, 0x09, 0x18, 0xFA, 0x8A, 0xC4, 0x4C, 0xBA, 0xDB, 0x4D, + 0x66, 0x83, 0x79, 0x78, 0x35, 0x15, 0xD3, 0xE2, 0x2B, 0x37, 0xC7, 0xD4, 0x71, 0x16, 0x06, 0x93, + 0xF4, 0x34, 0xF4, 0x27, 0x69, 0xB7, 0xCB, 0x99, 0xD1, 0xB2, 0xBC, 0xE5, 0x53, 0x46, 0x62, 0xFB, + 0xCB, 0xC7, 0xC7, 0xFD, 0xA5, 0xB6, 0x46, 0x68, 0xB7, 0x97, 0xB4, 0xF4, 0x43, 0x86, 0xEF, 0xEE, + 0xD0, 0x5C, 0xC8, 0x7E, 0xE0, 0x24, 0x44, 0x60, 0x96, 0x26, 0x04, 0x27, 0x6B, 0x79, 0x53, 0x98, + 0x85, 0x57, 0xCB, 0x29, 0x5F, 0x18, 0xAB, 0x79, 0x4A, 0x97, 0xA8, 0xD2, 0x59, 0xB7, 0x9B, 0x02, + 0x38, 0xEB, 0xAD, 0x13, 0x1E, 0x50, 0x69, 0x29, 0xED, 0x14, 0xE3, 0xAA, 0xAC, 0x43, 0xB1, 0x8A, + 0x4F, 0xC3, 0xB4, 0xDD, 0x8E, 0x4F, 0xD2, 0xCE, 0x4C, 0x5E, 0x07, 0x4A, 0xDD, 0xCF, 0xC3, 0xD9, + 0xD5, 0x4C, 0x8D, 0x75, 0xEA, 0xC0, 0x19, 0x5E, 0x9B, 0x7B, 0x45, 0x4C, 0xF9, 0x8F, 0x88, 0x50, + 0xD2, 0xC7, 0x09, 0xE2, 0xD5, 0x72, 0xE0, 0xCD, 0xAC, 0xFD, 0x0A, 0xE0, 0x3A, 0xBC, 0x96, 0x70, + 0x67, 0x66, 0x4C, 0xF1, 0xC5, 0x64, 0x11, 0xFA, 0x4E, 0x82, 0xD8, 0x77, 0x5C, 0x5F, 0xBA, 0xC1, + 0x99, 0x69, 0x88, 0x64, 0x5C, 0xE2, 0x4A, 0x02, 0x41, 0x67, 0x0D, 0xC6, 0xE5, 0x9A, 0x16, 0xA0, + 0x9A, 0x46, 0x62, 0x1E, 0x3E, 0x51, 0x7A, 0xB0, 0x63, 0x9D, 0xAC, 0x27, 0xA8, 0xD3, 0x29, 0x89, + 0x49, 0xD6, 0xBD, 0xC7, 0x41, 0x58, 0x70, 0xDF, 0x07, 0x93, 0x4F, 0xCA, 0x92, 0xFB, 0x93, 0x62, + 0x3C, 0xCC, 0x85, 0x95, 0xC7, 0x3C, 0x61, 0x16, 0x63, 0x63, 0xBD, 0x24, 0x9D, 0x04, 0x26, 0x7C, + 0x2E, 0xF3, 0xF1, 0xA7, 0x02, 0xC0, 0xA4, 0x13, 0x7E, 0x52, 0xD9, 0x7E, 0x67, 0xBC, 0x51, 0xAF, + 0xD7, 0xFB, 0xC4, 0xB7, 0xF1, 0xAD, 0x9E, 0xD6, 0x00, 0xAE, 0xC2, 0xEB, 0xAB, 0xDB, 0xE9, 0x84, + 0x4E, 0xE7, 0xAA, 0xDD, 0xF6, 0x6E, 0xBB, 0x5D, 0xF1, 0x89, 0xD7, 0xBD, 0x0C, 0xD5, 0xD2, 0xAE, + 0xBB, 0x01, 0xBC, 0x0B, 0xE7, 0x9C, 0xD0, 0x2E, 0x29, 0x45, 0xEB, 0x91, 0x29, 0xA9, 0xE7, 0x0E, + 0xAE, 0x6C, 0xC3, 0xF1, 0x19, 0x05, 0xC5, 0x43, 0x0A, 0xE2, 0x85, 0x47, 0xFF, 0xEA, 0xCD, 0xD2, + 0xD5, 0x3D, 0x4B, 0x0C, 0xFD, 0x2A, 0x4B, 0xEF, 0xBC, 0xD9, 0xD5, 0xE5, 0x14, 0xDE, 0x75, 0x11, + 0xA4, 0x12, 0x1D, 0xA2, 0xA3, 0x87, 0xAB, 0x6E, 0x88, 0xA0, 0x03, 0x23, 0x78, 0x27, 0x0B, 0xEE, + 0xC0, 0xC3, 0x65, 0xB7, 0x3B, 0xB1, 0xBB, 0x8F, 0xBE, 0x78, 0x97, 0xD0, 0x07, 0x93, 0x3B, 0x4E, + 0x6D, 0xB7, 0x88, 0x88, 0xAD, 0x40, 0x27, 0xC6, 0x22, 0x49, 0x4A, 0x6A, 0xC8, 0x20, 0x36, 0x50, + 0x14, 0xB6, 0xEC, 0x34, 0x33, 0x45, 0xA6, 0xEB, 0x2B, 0x32, 0x3D, 0x41, 0xED, 0xF6, 0xEC, 0x8A, + 0x4C, 0xE9, 0x9D, 0x8F, 0xB1, 0x04, 0xFA, 0x51, 0x5E, 0x75, 0xCE, 0xC3, 0x75, 0x77, 0xC1, 0xE7, + 0xE5, 0xDC, 0xCD, 0x19, 0xF9, 0xCF, 0x13, 0xD2, 0x55, 0x77, 0x07, 0x29, 0x67, 0x1B, 0x62, 0x78, + 0xA3, 0x1C, 0x6E, 0x5C, 0x55, 0x4E, 0x6C, 0x19, 0xB3, 0x44, 0x90, 0x55, 0xBA, 0xED, 0x24, 0xA0, + 0xAB, 0xFC, 0x33, 0xB9, 0xCC, 0x2D, 0x91, 0xA3, 0xC0, 0x4D, 0x66, 0xAA, 0x7A, 0xE5, 0x28, 0xB8, + 0x98, 0xA9, 0x25, 0xDA, 0xFE, 0xA5, 0xB3, 0xB6, 0x8E, 0xD5, 0x6E, 0x00, 0xA8, 0x58, 0x9B, 0x57, + 0x4E, 0x4B, 0xC4, 0x54, 0xBE, 0xD5, 0x1D, 0x52, 0x95, 0x8A, 0x68, 0xB7, 0xC4, 0xD0, 0x13, 0x18, + 0xB6, 0x5C, 0x40, 0x07, 0x1A, 0xAB, 0xB6, 0xE3, 0x89, 0x04, 0x70, 0x37, 0x80, 0x69, 0xE8, 0xC3, + 0x28, 0xCC, 0xAF, 0xD2, 0xE9, 0xA4, 0x52, 0x2D, 0xDC, 0x7D, 0xEE, 0x26, 0x9C, 0x67, 0x6B, 0x1E, + 0x3F, 0x6B, 0x06, 0xD2, 0x0D, 0x20, 0xEE, 0x24, 0xDD, 0x00, 0x4C, 0x66, 0x74, 0x93, 0xCC, 0xBA, + 0x5D, 0x2A, 0xE8, 0x45, 0xED, 0x76, 0xC4, 0x9D, 0x63, 0x4F, 0xB3, 0xCE, 0x52, 0x27, 0xE4, 0x43, + 0x61, 0xD4, 0x93, 0x7B, 0x57, 0x1F, 0x18, 0x88, 0xB6, 0x2C, 0xDD, 0xF8, 0x72, 0x44, 0xBC, 0x59, + 0xB7, 0x0B, 0x75, 0x7D, 0x16, 0x14, 0x69, 0xD6, 0xE9, 0x40, 0x24, 0xF8, 0x02, 0x8F, 0x06, 0x94, + 0x75, 0x02, 0x18, 0xDD, 0x51, 0x79, 0x60, 0x5C, 0x81, 0x5D, 0x00, 0xB8, 0xEC, 0x54, 0xBB, 0x64, + 0xF3, 0xD5, 0xE9, 0xA4, 0x53, 0x23, 0x20, 0x84, 0xD1, 0x2B, 0x24, 0x57, 0x59, 0xB7, 0x2B, 0x58, + 0xC2, 0xCC, 0x98, 0x0A, 0x1D, 0x8A, 0xB6, 0x1B, 0x4C, 0x08, 0x45, 0x9A, 0x74, 0xBB, 0x00, 0xD1, + 0x8D, 0xC2, 0x70, 0xE9, 0x84, 0x33, 0x73, 0x4E, 0xD3, 0xE4, 0x82, 0x39, 0xC8, 0xBC, 0xBC, 0xC3, + 0x84, 0x20, 0x11, 0x09, 0x87, 0xD6, 0x06, 0x70, 0xD6, 0x09, 0x59, 0x33, 0x8E, 0xB8, 0x3A, 0x93, + 0x0C, 0x7E, 0x4C, 0x27, 0xD5, 0x79, 0x0D, 0x9D, 0xC4, 0xA5, 0xCB, 0x7B, 0x9A, 0xD0, 0xDD, 0x6E, + 0x75, 0x12, 0x83, 0xA2, 0xC8, 0xF9, 0xEB, 0x11, 0xC5, 0xEB, 0x43, 0xCA, 0x85, 0x0D, 0x1E, 0xDA, + 0x84, 0x09, 0x44, 0x54, 0x9A, 0x17, 0x46, 0xE1, 0x93, 0x92, 0x70, 0x64, 0x92, 0x20, 0x3B, 0xA9, + 0x73, 0x21, 0x70, 0x5F, 0x75, 0x03, 0xD8, 0x0D, 0xA6, 0x3A, 0xC6, 0xDD, 0x59, 0xEE, 0x38, 0xFE, + 0xC6, 0x8A, 0x46, 0xE5, 0xB4, 0xE1, 0xD0, 0x9F, 0xE0, 0x93, 0x6C, 0xD2, 0xE9, 0x60, 0xC0, 0xB6, + 0x0B, 0x0F, 0x53, 0x70, 0x95, 0x1A, 0xF6, 0x84, 0xEC, 0x99, 0x41, 0x18, 0x14, 0xD2, 0xCD, 0xDB, + 0x0D, 0x9D, 0xD5, 0xD8, 0x2F, 0x5E, 0x4B, 0xF4, 0xC2, 0xF3, 0xE6, 0x9F, 0xC8, 0x4B, 0xC1, 0x15, + 0x82, 0x78, 0x4A, 0x77, 0x55, 0xA1, 0xFE, 0xF6, 0xA7, 0x05, 0xC9, 0xA2, 0x24, 0x8F, 0x23, 0x82, + 0xB4, 0xD0, 0xF5, 0x21, 0xD5, 0x61, 0x0B, 0xB8, 0xF5, 0xB6, 0x9C, 0x86, 0xCC, 0x31, 0x0D, 0xD2, + 0x98, 0xF6, 0x2C, 0xEB, 0x29, 0x58, 0x0A, 0x02, 0x77, 0xA8, 0x1C, 0xB7, 0x5A, 0x85, 0x66, 0xC2, + 0xCC, 0xBD, 0xFB, 0x55, 0x2A, 0xE4, 0x3B, 0x2E, 0x09, 0x91, 0x10, 0x41, 0x1C, 0x22, 0x71, 0x79, + 0x2A, 0xAD, 0xA2, 0xB8, 0x9A, 0x2A, 0x81, 0x66, 0x02, 0x48, 0xB7, 0x2B, 0xC2, 0x45, 0x76, 0x82, + 0x2A, 0xE7, 0xA8, 0x34, 0xC6, 0x9D, 0xC0, 0x6A, 0x8E, 0x3B, 0x1D, 0x69, 0xAB, 0xBC, 0xC0, 0x59, + 0x4E, 0xC6, 0x04, 0xC6, 0x51, 0x4E, 0xC6, 0x98, 0x79, 0xCC, 0x1A, 0x9A, 0x3C, 0xE1, 0x27, 0x9E, + 0xAC, 0xE3, 0x78, 0x3F, 0x14, 0xCC, 0x9B, 0x05, 0xCB, 0x61, 0x2E, 0xB4, 0xE2, 0x1C, 0x5F, 0x65, + 0xE8, 0x13, 0xAD, 0x4E, 0xD9, 0x92, 0x60, 0xDC, 0xF2, 0x71, 0x0D, 0x85, 0x3E, 0x90, 0xBC, 0x8D, + 0x9D, 0x2F, 0x13, 0xD4, 0xD9, 0x14, 0xE2, 0x81, 0x36, 0xA6, 0xE0, 0x7E, 0xC5, 0x73, 0xB2, 0x04, + 0x66, 0x97, 0xE1, 0xBE, 0x5F, 0x18, 0x9D, 0x29, 0xD4, 0xA4, 0x36, 0x96, 0x2B, 0x2D, 0xC0, 0x64, + 0x5F, 0x37, 0xEA, 0x76, 0xD1, 0xB4, 0xDD, 0x46, 0xF4, 0x20, 0x32, 0x74, 0xD4, 0x95, 0x2B, 0x19, + 0xB7, 0x9C, 0x1D, 0xA3, 0x13, 0xFF, 0xCC, 0x1F, 0x23, 0x16, 0x3B, 0x6C, 0x87, 0x4E, 0x3A, 0x1D, + 0xD6, 0x89, 0x39, 0xCC, 0x5D, 0x7A, 0x63, 0x3A, 0x83, 0x9F, 0xF9, 0x7B, 0xA0, 0xE1, 0x51, 0x60, + 0xBC, 0x9B, 0xF9, 0xAE, 0xE0, 0x21, 0xE2, 0x05, 0xD1, 0x3C, 0x9F, 0xCD, 0xEF, 0x94, 0x85, 0x50, + 0x0A, 0x90, 0x39, 0x7D, 0x4A, 0x45, 0xCA, 0x99, 0xDD, 0x7A, 0x8E, 0x54, 0x2E, 0xE4, 0xDD, 0x2E, + 0x0C, 0x80, 0xD4, 0x80, 0x58, 0x4F, 0x78, 0x1C, 0xDD, 0xE7, 0x71, 0x2C, 0x31, 0x6E, 0x46, 0xD8, + 0x38, 0xDC, 0x4A, 0x08, 0xA3, 0x32, 0xC2, 0x68, 0x13, 0x56, 0x88, 0x61, 0xE5, 0x44, 0x2A, 0x9A, + 0xCF, 0x39, 0x3E, 0xA6, 0x61, 0x35, 0xBD, 0x4C, 0x2D, 0x7B, 0xEA, 0xBB, 0x15, 0xBA, 0x5D, 0x82, + 0xE6, 0xC7, 0x2B, 0x80, 0x44, 0x05, 0xB5, 0xF4, 0x2A, 0xFC, 0x93, 0x45, 0xE9, 0x7C, 0x20, 0xEC, + 0x5B, 0x97, 0xE5, 0x4D, 0xA2, 0xBF, 0x4E, 0xE8, 0x26, 0xD5, 0x18, 0x17, 0x2C, 0x4E, 0x51, 0x0D, + 0x14, 0xCE, 0xEC, 0x4D, 0x38, 0xA7, 0x21, 0xE2, 0x07, 0x03, 0xCB, 0xB7, 0x44, 0xBF, 0x74, 0x42, + 0x24, 0x78, 0x7E, 0x33, 0xAC, 0x17, 0xDC, 0xA3, 0xD1, 0x0D, 0x4B, 0xA0, 0x26, 0xFE, 0xEE, 0x48, + 0x88, 0x16, 0xA6, 0x02, 0xFF, 0xD3, 0x32, 0x02, 0xDD, 0x06, 0x04, 0x68, 0xBF, 0xA2, 0xBD, 0xA1, + 0x82, 0xCA, 0xD8, 0x2D, 0x5B, 0x4C, 0x30, 0x01, 0xAC, 0x51, 0x61, 0x7F, 0x75, 0xD0, 0xB3, 0xF0, + 0x55, 0x29, 0x93, 0x9C, 0xF9, 0x4D, 0x87, 0x3B, 0x80, 0x54, 0x8E, 0x52, 0x3E, 0x87, 0x95, 0x04, + 0x71, 0x74, 0x89, 0xAF, 0x59, 0x5B, 0xA8, 0x0B, 0x8B, 0x42, 0x98, 0xF4, 0x5C, 0x57, 0x8D, 0x0D, + 0x84, 0x2F, 0x8E, 0xC9, 0x2E, 0xA1, 0xC8, 0xE0, 0x66, 0x07, 0x2C, 0x51, 0x2A, 0x3F, 0x92, 0xE1, + 0xBB, 0xF7, 0xF8, 0x76, 0x49, 0x94, 0xDE, 0x8F, 0x09, 0x2F, 0xEC, 0xC0, 0x94, 0x86, 0x07, 0xD7, + 0x48, 0x04, 0x74, 0x0D, 0x73, 0xB3, 0xCE, 0xDB, 0x4F, 0x28, 0xCB, 0x67, 0x51, 0x12, 0x66, 0xBA, + 0x9A, 0xFA, 0x96, 0x54, 0xA0, 0x9D, 0x28, 0x3D, 0xB1, 0xD9, 0x85, 0x72, 0x78, 0x92, 0x7D, 0x58, + 0xA1, 0xFF, 0xDD, 0x9A, 0x3A, 0x85, 0x4E, 0x6D, 0x55, 0x23, 0x56, 0x6A, 0x86, 0x12, 0x15, 0xAE, + 0x59, 0x75, 0x5B, 0x2C, 0xA3, 0xFC, 0x8D, 0xC3, 0x86, 0x49, 0xD4, 0x3F, 0xB1, 0xFB, 0x61, 0x1C, + 0xB3, 0xFC, 0x56, 0x28, 0xBB, 0xAD, 0x39, 0xF9, 0x2C, 0x78, 0x60, 0xC2, 0x22, 0x2D, 0xE7, 0x12, + 0xB0, 0x46, 0xA4, 0xEB, 0x98, 0x4F, 0xCA, 0x88, 0x79, 0xF5, 0x0A, 0xDE, 0xAE, 0xEA, 0x00, 0xA2, + 0x1E, 0x3D, 0xDF, 0x4E, 0x6D, 0xA4, 0x3B, 0x95, 0x35, 0x61, 0x70, 0x69, 0xCD, 0x70, 0x53, 0x4D, + 0x16, 0x17, 0x8A, 0x21, 0xA0, 0xE4, 0x32, 0xF1, 0x01, 0xFA, 0xB2, 0x3B, 0x2D, 0x1C, 0xF3, 0xBF, + 0x61, 0xFD, 0x62, 0x08, 0xE5, 0x69, 0xAB, 0x65, 0x08, 0x46, 0x02, 0xDE, 0x04, 0x9F, 0x84, 0xBC, + 0x3D, 0x13, 0x92, 0xA4, 0x9A, 0x54, 0x82, 0x69, 0x12, 0x5F, 0x70, 0x99, 0x82, 0x6D, 0x16, 0xA8, + 0xD6, 0x9E, 0x83, 0xEF, 0x04, 0xF0, 0x21, 0xA3, 0x0B, 0x34, 0x46, 0x50, 0x04, 0xC5, 0x1A, 0x13, + 0xE6, 0xA0, 0xE4, 0x34, 0x39, 0xBA, 0x2E, 0xE0, 0xD1, 0x70, 0x70, 0xF8, 0x2D, 0x8C, 0x99, 0x28, + 0xD2, 0x21, 0xA9, 0x2A, 0x00, 0xAA, 0xB6, 0x4B, 0xC3, 0xA3, 0x3E, 0x37, 0x5D, 0x62, 0x76, 0x4A, + 0x96, 0xE5, 0x12, 0x33, 0x49, 0x9A, 0xB8, 0xA0, 0x08, 0xBC, 0x16, 0x19, 0x42, 0xFF, 0x85, 0x98, + 0x86, 0x2D, 0xB5, 0x4D, 0x00, 0xF9, 0xF4, 0x47, 0xA1, 0xF4, 0x16, 0x59, 0x3A, 0xD8, 0x06, 0x95, + 0x89, 0xD9, 0xAC, 0x19, 0x3E, 0x32, 0xEA, 0xDE, 0x7C, 0x77, 0x83, 0x13, 0x34, 0x57, 0xD6, 0x44, + 0xD7, 0xC8, 0x32, 0xFB, 0x52, 0x9F, 0x55, 0x2C, 0x8F, 0x5F, 0x70, 0x42, 0x06, 0x7D, 0x16, 0x55, + 0xC5, 0x1B, 0x7C, 0x8F, 0x80, 0xCE, 0x0C, 0xF7, 0xF8, 0xD8, 0x60, 0x98, 0x93, 0x95, 0xCD, 0x7F, + 0xB2, 0x8A, 0xF9, 0x4F, 0x56, 0x31, 0xFF, 0x29, 0x89, 0x0E, 0x88, 0x05, 0x18, 0xE3, 0xF7, 0x56, + 0x71, 0x81, 0x27, 0x30, 0x17, 0x87, 0xAA, 0xB8, 0x19, 0x22, 0x1E, 0x0D, 0xA4, 0x12, 0x8F, 0x26, + 0x22, 0xD1, 0xD5, 0xE0, 0x7B, 0xD4, 0xF1, 0xA7, 0x10, 0x87, 0x7D, 0xFF, 0xF8, 0x30, 0x18, 0x05, + 0x6D, 0x22, 0x68, 0xEA, 0xAA, 0x54, 0x29, 0x98, 0x42, 0x5E, 0xA5, 0xDF, 0x26, 0x67, 0xF6, 0x44, + 0x5D, 0xA1, 0xE9, 0x18, 0x9F, 0x79, 0x3E, 0xCC, 0x7B, 0xFC, 0x26, 0xF2, 0x8A, 0xF9, 0xC9, 0xCC, + 0xD1, 0xBB, 0x14, 0x27, 0x04, 0x78, 0x98, 0x0A, 0xCC, 0x90, 0x9C, 0x9E, 0xF6, 0xFB, 0x4D, 0x30, + 0xCC, 0x40, 0x6D, 0xD5, 0x42, 0xE5, 0x71, 0x3D, 0xC6, 0x53, 0x19, 0x3A, 0xC5, 0x8A, 0x02, 0xC3, + 0x91, 0x0C, 0xC9, 0x55, 0x66, 0x5C, 0x22, 0x18, 0xD5, 0xF0, 0x4B, 0x04, 0xB4, 0x4B, 0xAA, 0xD7, + 0x8B, 0x53, 0x15, 0x22, 0xD3, 0xE8, 0x37, 0x24, 0x57, 0xC1, 0x14, 0x56, 0x26, 0x4C, 0x4C, 0x57, + 0xFF, 0x11, 0x3D, 0xDA, 0x60, 0xCD, 0xCB, 0xCD, 0xC9, 0x49, 0xBF, 0x2F, 0x1F, 0x03, 0xCC, 0xB6, + 0xF5, 0x88, 0x58, 0xA1, 0xEA, 0x36, 0x40, 0x66, 0x37, 0x10, 0x2A, 0x53, 0x57, 0x43, 0x13, 0xE9, + 0xBE, 0xE8, 0x9C, 0x53, 0xD6, 0x5F, 0xAE, 0x18, 0xF4, 0x47, 0x47, 0x7D, 0xE5, 0xB9, 0x62, 0xB6, + 0xE0, 0xAE, 0x0E, 0xF5, 0x30, 0x83, 0x29, 0xF7, 0x3F, 0xA8, 0xAF, 0xD1, 0x9F, 0xD2, 0x1E, 0xCF, + 0x39, 0xCB, 0x31, 0xAA, 0x0D, 0x83, 0xE3, 0xE1, 0xC0, 0x1F, 0xB8, 0xBB, 0x54, 0xE4, 0xD2, 0x48, + 0xA7, 0x92, 0xDF, 0x7D, 0x03, 0x2A, 0x52, 0xF4, 0x5E, 0xE0, 0xFC, 0x5C, 0xD4, 0x30, 0xE3, 0xC5, + 0xCA, 0x1E, 0x5C, 0xC8, 0xCA, 0xEB, 0xE4, 0xD7, 0x61, 0xAA, 0x51, 0x68, 0xD8, 0x3B, 0xAA, 0x0E, + 0xBB, 0x74, 0x9A, 0x6E, 0x48, 0xA8, 0xCE, 0x0F, 0xC9, 0x5A, 0x89, 0x38, 0x8D, 0xE6, 0xDC, 0xCA, + 0xC8, 0x30, 0x56, 0x8A, 0xC2, 0xC1, 0xF7, 0x54, 0xEC, 0x95, 0xB1, 0x12, 0x8D, 0x66, 0x11, 0xE5, + 0x06, 0x44, 0xC7, 0x48, 0x14, 0x1F, 0xE9, 0x1E, 0xD0, 0xE1, 0x11, 0xC5, 0xC7, 0xBE, 0xC1, 0x12, + 0x24, 0x2C, 0x26, 0x7D, 0xCA, 0x41, 0x32, 0xF3, 0xCA, 0xCA, 0xB8, 0x01, 0x34, 0xCC, 0xBC, 0x99, + 0xFD, 0xB9, 0x47, 0xCA, 0x51, 0xE1, 0x2D, 0x8E, 0xCB, 0xDA, 0x30, 0x03, 0x63, 0x3D, 0x12, 0x67, + 0xC7, 0xD5, 0xCD, 0x6B, 0xA1, 0xE2, 0xEA, 0xD8, 0xD9, 0x9B, 0x91, 0x8A, 0x15, 0x38, 0xF6, 0xBE, + 0xEA, 0xB3, 0x5C, 0x46, 0xD9, 0x8F, 0xB6, 0x74, 0x33, 0x96, 0x21, 0xA4, 0xDD, 0xC9, 0x01, 0x58, + 0x2B, 0xAC, 0x65, 0x60, 0x98, 0x80, 0x07, 0x8D, 0x5F, 0x56, 0x8F, 0x5C, 0xE2, 0xC4, 0xE9, 0x11, + 0xFF, 0x7F, 0xEC, 0xBD, 0x69, 0x73, 0x24, 0x49, 0x76, 0x20, 0x66, 0xBA, 0xCD, 0xE6, 0x83, 0xEE, + 0x7B, 0x75, 0x24, 0x62, 0x9A, 0xD9, 0x11, 0x9D, 0x8E, 0xAC, 0x38, 0xF2, 0x8C, 0x44, 0x00, 0x5B, + 0x85, 0xAA, 0x9A, 0x2E, 0x76, 0x5D, 0x2C, 0x54, 0x4F, 0xCF, 0x6C, 0x76, 0xB2, 0x3A, 0x90, 0xE9, + 0x00, 0x9C, 0x95, 0x88, 0x00, 0x23, 0x1C, 0x85, 0xC2, 0x20, 0x83, 0xA2, 0x56, 0x5C, 0x4A, 0xDC, + 0xE5, 0xAE, 0xB8, 0x2B, 0x8A, 0x4B, 0x49, 0x94, 0x76, 0x25, 0x71, 0x45, 0x52, 0xB6, 0x26, 0xDB, + 0x95, 0xD1, 0x74, 0x91, 0x2B, 0x99, 0x75, 0xFF, 0x00, 0xFD, 0x87, 0xF9, 0x25, 0x32, 0x7F, 0x7E, + 0x84, 0x7B, 0x1C, 0x00, 0xAA, 0xAA, 0x49, 0x0E, 0xC5, 0xE9, 0x6A, 0x4B, 0x78, 0xB8, 0x3F, 0x7F, + 0xFE, 0xFC, 0xF9, 0xF3, 0xFB, 0xF9, 0x7B, 0x6C, 0x50, 0x68, 0xA0, 0x28, 0x6F, 0x20, 0x27, 0x63, + 0x1B, 0x2C, 0x46, 0xC3, 0x19, 0xA3, 0xE1, 0x65, 0x5A, 0xF2, 0x95, 0xAF, 0x55, 0xEA, 0xE2, 0x2C, + 0xF9, 0x4D, 0xEA, 0x72, 0xDC, 0x8B, 0xDA, 0xC5, 0x97, 0x3A, 0xA1, 0x12, 0x61, 0xD2, 0x34, 0xBC, + 0xDE, 0x2C, 0xF9, 0xC4, 0xE9, 0x5D, 0x87, 0x1F, 0x91, 0x6E, 0xB4, 0x2D, 0xA8, 0x43, 0x64, 0x23, + 0x07, 0x66, 0x27, 0x24, 0x11, 0xDD, 0x78, 0x4D, 0x3C, 0x71, 0x17, 0x11, 0x71, 0x84, 0x41, 0x1B, + 0x38, 0xAD, 0x2F, 0x0D, 0x65, 0x91, 0x23, 0xDB, 0xC6, 0x3F, 0x13, 0x69, 0x93, 0xA7, 0xD3, 0xED, + 0xFA, 0xF2, 0x50, 0xB9, 0x1C, 0x70, 0xB7, 0x3D, 0xA7, 0xF4, 0xDE, 0xD3, 0xD0, 0xA6, 0xE0, 0x51, + 0xDA, 0x43, 0xE2, 0xA0, 0x21, 0x97, 0x0F, 0x7B, 0xC5, 0x23, 0x3A, 0xB7, 0x21, 0xE1, 0xB0, 0x2D, + 0x41, 0x09, 0xE2, 0x66, 0xC3, 0x97, 0x3A, 0x55, 0x35, 0xC5, 0x1D, 0x8D, 0xDA, 0x6D, 0x5C, 0x1E, + 0xF0, 0x31, 0xE8, 0x72, 0xF1, 0xA1, 0x2D, 0x44, 0x0D, 0xF8, 0x6D, 0xBA, 0xED, 0xCD, 0xC8, 0x6E, + 0xE4, 0xCE, 0xB6, 0xB7, 0x89, 0xB9, 0x8E, 0xC0, 0x3D, 0xDA, 0x13, 0x6B, 0xA2, 0x72, 0x14, 0xE9, + 0x31, 0x3E, 0x95, 0x8B, 0x90, 0x3C, 0x72, 0x41, 0xCD, 0xA9, 0xD7, 0xCB, 0xAB, 0x99, 0x73, 0x44, + 0x84, 0x15, 0x5E, 0xED, 0x4C, 0x75, 0x66, 0x90, 0xDB, 0xB4, 0x76, 0x21, 0xCE, 0xAC, 0xCE, 0x70, + 0x9D, 0xE4, 0xEB, 0x59, 0x6F, 0x40, 0xFE, 0x69, 0x35, 0x82, 0xB0, 0x4A, 0x54, 0x17, 0x26, 0x53, + 0x96, 0xDE, 0xA3, 0xAD, 0xDC, 0x19, 0xD9, 0xA9, 0xB4, 0x17, 0xDF, 0x36, 0x98, 0xBC, 0xAE, 0x37, + 0x13, 0xAD, 0x34, 0x14, 0x36, 0x9A, 0x9D, 0xAA, 0x0B, 0x8A, 0xD2, 0x63, 0x81, 0x89, 0xF2, 0xBD, + 0x1B, 0x0F, 0xFF, 0xA4, 0x77, 0x18, 0xF5, 0x74, 0x59, 0x5B, 0x3F, 0x89, 0x23, 0x0C, 0x63, 0xD9, + 0x22, 0xE2, 0x5A, 0x06, 0xED, 0x3F, 0x2D, 0xC9, 0xCA, 0xF0, 0xD9, 0x5A, 0x28, 0x1F, 0xE7, 0xE5, + 0x5C, 0x01, 0xDB, 0x17, 0x72, 0x64, 0x67, 0xA0, 0x19, 0x75, 0x0D, 0xCB, 0xB7, 0xC4, 0x1E, 0x47, + 0x5B, 0x36, 0xFC, 0x04, 0x35, 0x85, 0x21, 0x4F, 0x4D, 0x95, 0xA0, 0x2D, 0x95, 0xA0, 0xD7, 0x8F, + 0x01, 0x7F, 0x5A, 0x15, 0x60, 0xBD, 0x48, 0x1D, 0x14, 0x1B, 0xD6, 0x75, 0xCC, 0x85, 0x9A, 0x29, + 0x4A, 0xD0, 0xB9, 0x10, 0xEE, 0xF5, 0x4A, 0xBD, 0xC8, 0x9F, 0xF8, 0x4E, 0x73, 0xCB, 0x96, 0xFA, + 0x89, 0x6E, 0x93, 0x72, 0xB8, 0xEC, 0xB1, 0xD1, 0x4D, 0xD7, 0x69, 0x66, 0x43, 0xB5, 0x52, 0x10, + 0xD7, 0x8D, 0xC8, 0x75, 0x06, 0x9F, 0x94, 0xAB, 0x07, 0x91, 0xF4, 0x89, 0xBF, 0xA3, 0xC5, 0x89, + 0x73, 0x9B, 0xC3, 0x4B, 0x2A, 0xD4, 0x3D, 0xD4, 0x4D, 0x6E, 0xF0, 0x09, 0x9E, 0x31, 0xC4, 0xBB, + 0x3A, 0xDA, 0x52, 0x2F, 0xB9, 0x39, 0xF7, 0x6E, 0x34, 0xF8, 0x44, 0x0C, 0xEF, 0xCD, 0xE7, 0x0B, + 0xB5, 0xCC, 0xC8, 0x85, 0x61, 0x57, 0xF7, 0xF0, 0x55, 0xCD, 0xC3, 0xD2, 0x35, 0xEB, 0xFE, 0x2B, + 0x58, 0x0B, 0x6B, 0x65, 0xE0, 0xA2, 0x71, 0x75, 0x30, 0x23, 0x70, 0xBC, 0x50, 0x99, 0x6D, 0x08, + 0xA2, 0x7C, 0x6A, 0xD0, 0x2D, 0x9A, 0x6A, 0x54, 0xE5, 0xE7, 0x87, 0x60, 0x95, 0xCB, 0x06, 0xBA, + 0xE4, 0x06, 0x49, 0x1C, 0xDA, 0xBC, 0xC6, 0x97, 0x79, 0x65, 0x15, 0xE8, 0x54, 0xA7, 0x3B, 0x55, + 0x7A, 0xA9, 0x61, 0xA2, 0x39, 0xCC, 0xA1, 0x73, 0xB2, 0x40, 0x9E, 0xEB, 0xCC, 0xF2, 0xDD, 0x08, + 0x77, 0xBB, 0x7C, 0xE6, 0xED, 0x54, 0x16, 0x96, 0xF9, 0xA2, 0x90, 0x19, 0xEB, 0x05, 0x63, 0x53, + 0x5E, 0xCC, 0xF3, 0x14, 0xE3, 0xFE, 0xA5, 0xEE, 0x7E, 0x0D, 0xDC, 0x25, 0xB1, 0xD2, 0x49, 0xBD, + 0x74, 0x73, 0xA1, 0x4E, 0x16, 0x85, 0xF1, 0x12, 0x5B, 0x9E, 0xC5, 0xA0, 0xC1, 0x27, 0xE4, 0x06, + 0x09, 0x2A, 0x2A, 0xAA, 0x90, 0x4C, 0x66, 0xDE, 0x5D, 0x0E, 0x9D, 0x56, 0x71, 0xA8, 0x61, 0x2A, + 0x6F, 0xB7, 0xAE, 0x95, 0x12, 0xE4, 0xC9, 0x1A, 0xB9, 0x05, 0xB7, 0x38, 0x8F, 0xA8, 0x9C, 0x89, + 0x68, 0xA3, 0x8E, 0x6E, 0x65, 0xA1, 0x60, 0x0E, 0xE1, 0x95, 0x51, 0x91, 0x22, 0x2C, 0xC4, 0xF8, + 0xB6, 0xC7, 0x70, 0x4D, 0xB7, 0x68, 0xED, 0x6B, 0x13, 0xEC, 0x14, 0xC5, 0x32, 0x3D, 0xBB, 0x04, + 0xDD, 0x1C, 0x79, 0x8D, 0xC1, 0xC1, 0x75, 0xDF, 0x30, 0xD7, 0x74, 0x3D, 0x2C, 0x98, 0x12, 0xEA, + 0xD2, 0x0E, 0xA6, 0x78, 0x74, 0x66, 0xC9, 0x86, 0x56, 0x8B, 0xBE, 0x6A, 0x6D, 0x66, 0xBA, 0xA9, + 0x6E, 0xC2, 0x98, 0x5E, 0xF6, 0x85, 0x8A, 0x1C, 0xD3, 0x45, 0x84, 0x8D, 0xCF, 0xD9, 0x35, 0x9C, + 0x30, 0x51, 0x9A, 0x52, 0xDE, 0x24, 0xA1, 0x1C, 0x79, 0x35, 0x6E, 0x26, 0x5A, 0x4A, 0x9E, 0x8A, + 0xE2, 0x32, 0xDC, 0x68, 0xC3, 0xE6, 0xC4, 0x76, 0xD9, 0xE8, 0x72, 0xD3, 0x60, 0x05, 0x87, 0xE8, + 0x9C, 0x33, 0x7A, 0x3B, 0x55, 0xE8, 0xAE, 0x8C, 0x0C, 0x66, 0xDD, 0xAB, 0x27, 0x09, 0x74, 0xD1, + 0x9C, 0xDD, 0xAC, 0x79, 0x43, 0x15, 0x1B, 0xCF, 0x18, 0xE8, 0xA2, 0xEC, 0x04, 0x65, 0xED, 0x4D, + 0x66, 0x20, 0x38, 0x49, 0xAD, 0x28, 0x41, 0x5C, 0x35, 0x2F, 0xB1, 0x85, 0xAA, 0xCB, 0xF6, 0x36, + 0xF8, 0x02, 0x6B, 0x3D, 0xFB, 0x52, 0x8F, 0xA3, 0x7A, 0x76, 0xE3, 0xE1, 0x9D, 0xEA, 0x9A, 0x6E, + 0x61, 0x6A, 0x97, 0x69, 0x77, 0x67, 0xF2, 0x6D, 0x8D, 0x68, 0x85, 0x99, 0x5A, 0x18, 0x72, 0xCD, + 0xA1, 0x7C, 0xDB, 0x9B, 0x65, 0x8C, 0x96, 0x6C, 0x7B, 0x5B, 0xA7, 0xD6, 0x9D, 0xE1, 0x9D, 0xA0, + 0xBC, 0xB6, 0x95, 0x25, 0xDB, 0xA4, 0x97, 0x39, 0x3D, 0xBC, 0x88, 0x12, 0xF6, 0x41, 0xF9, 0xC7, + 0xAC, 0x3C, 0x99, 0x28, 0xA3, 0xFD, 0x45, 0xCB, 0x21, 0x05, 0xE9, 0x65, 0x4D, 0xB2, 0xD5, 0xCB, + 0x16, 0x95, 0x4D, 0x45, 0xC6, 0xA8, 0xDA, 0xC9, 0x67, 0x19, 0x1B, 0x6C, 0xFF, 0xAC, 0x29, 0xE3, + 0x6C, 0x4C, 0x8D, 0x19, 0x03, 0x37, 0xCD, 0x53, 0x7C, 0xD3, 0x9B, 0x4A, 0x19, 0xCE, 0xCB, 0x99, + 0x22, 0x2B, 0x67, 0x8A, 0x74, 0x9E, 0xF3, 0x99, 0x22, 0xDB, 0x8D, 0x1A, 0x0E, 0xA7, 0xB2, 0x6D, + 0xDA, 0x23, 0x66, 0xEF, 0x66, 0x34, 0x14, 0x75, 0x95, 0x13, 0x0C, 0xEF, 0x6C, 0xC1, 0xEE, 0xA0, + 0xB1, 0x90, 0xC0, 0x60, 0xA5, 0x54, 0xDD, 0x49, 0x11, 0xA5, 0xF3, 0x5D, 0x91, 0x4F, 0x47, 0xAA, + 0x38, 0x8B, 0xDB, 0xA8, 0x19, 0xDD, 0x21, 0xB3, 0xEA, 0xD5, 0x9E, 0xE0, 0x30, 0x35, 0xEF, 0x02, + 0xF0, 0x2C, 0xE9, 0xC9, 0x03, 0x95, 0x2E, 0xAE, 0x9E, 0xFC, 0xD0, 0x1B, 0x4F, 0xFD, 0xB3, 0xE6, + 0x97, 0xC7, 0xB4, 0x17, 0x61, 0x26, 0xDB, 0x9B, 0x8D, 0x9A, 0x50, 0x92, 0xF2, 0x5E, 0x0A, 0x6E, + 0x8F, 0x4E, 0x0A, 0x34, 0x98, 0x0C, 0xBC, 0x0F, 0x31, 0x27, 0x76, 0x8C, 0x29, 0xDC, 0x4F, 0x8A, + 0x37, 0x31, 0xCA, 0xB8, 0x77, 0x25, 0xBE, 0xB4, 0xE0, 0x26, 0x17, 0x82, 0x5C, 0x99, 0xAD, 0x7F, + 0xB9, 0x8B, 0xFB, 0x38, 0x59, 0xF5, 0x2F, 0x1D, 0x7A, 0x92, 0xA5, 0x17, 0x70, 0x35, 0xFD, 0x20, + 0xCB, 0xD2, 0xCC, 0xFE, 0x8A, 0x13, 0xDA, 0x81, 0xDB, 0xB5, 0x0E, 0x4E, 0x56, 0x1D, 0xFB, 0xA3, + 0x2B, 0x0E, 0xFC, 0xB6, 0x40, 0x1D, 0x19, 0xBE, 0x2C, 0x9C, 0xCE, 0x32, 0x4E, 0x92, 0x94, 0x76, + 0x0E, 0x71, 0xE7, 0x10, 0x1F, 0xA5, 0x19, 0xEE, 0x00, 0x6E, 0x0E, 0xCF, 0x8B, 0x91, 0x39, 0x44, + 0xA1, 0x85, 0xF3, 0x55, 0x79, 0xAB, 0xF7, 0x89, 0x2D, 0x30, 0x6D, 0xAB, 0x74, 0xA7, 0x27, 0xE2, + 0xDE, 0xAA, 0xB8, 0xB7, 0x3D, 0xF0, 0x0F, 0x30, 0x18, 0x05, 0xCD, 0xBE, 0x21, 0x94, 0x75, 0x57, + 0x1A, 0x45, 0x9A, 0x56, 0x9B, 0x1A, 0x79, 0xE6, 0xB4, 0x49, 0xB5, 0x59, 0xDD, 0x61, 0x6D, 0x01, + 0x80, 0xB6, 0x35, 0x26, 0xB0, 0xD4, 0xF7, 0xC0, 0x3F, 0x1A, 0xCF, 0xCA, 0xB7, 0x00, 0x84, 0xDB, + 0xAA, 0xF3, 0x79, 0x42, 0xCF, 0xD3, 0x92, 0x5C, 0x55, 0xA7, 0xBC, 0xDB, 0xCD, 0xF6, 0xC8, 0xB6, + 0x17, 0x92, 0xF7, 0xF4, 0x44, 0xD1, 0xA6, 0xF9, 0x1A, 0xD1, 0x1B, 0xB4, 0xB0, 0x15, 0x40, 0xD3, + 0x13, 0x85, 0x4A, 0x62, 0xE5, 0xBD, 0x43, 0x25, 0xB5, 0xFA, 0x30, 0xA3, 0x94, 0xAD, 0x6B, 0xA1, + 0x74, 0x49, 0x93, 0x07, 0xBE, 0x72, 0xCC, 0xD1, 0xD4, 0x47, 0xE3, 0xC8, 0x9D, 0xC5, 0x3B, 0x9A, + 0xF6, 0x61, 0xCC, 0xC6, 0x17, 0xAE, 0xAA, 0x19, 0xA3, 0x65, 0x84, 0x41, 0x05, 0xAC, 0xD7, 0x3B, + 0xE1, 0x1A, 0x7B, 0xCB, 0x72, 0x7A, 0xAA, 0xEA, 0xAF, 0xAF, 0xA3, 0x39, 0x07, 0x8E, 0x1D, 0xA9, + 0x45, 0xAF, 0xF0, 0x76, 0xBB, 0x4B, 0x5D, 0x83, 0x6C, 0xCD, 0x15, 0x67, 0x96, 0x4E, 0xAD, 0x80, + 0x6C, 0x37, 0x8A, 0xBB, 0xDD, 0x6C, 0xE7, 0xC4, 0xB9, 0x8A, 0x7B, 0xD1, 0xBA, 0x24, 0x4B, 0x16, + 0x56, 0x30, 0xD2, 0x56, 0x91, 0x8B, 0x5E, 0x45, 0xC4, 0x5E, 0xA3, 0x15, 0xA2, 0x0E, 0x3A, 0x8F, + 0x3C, 0x74, 0x24, 0xDF, 0x0E, 0x9D, 0xEF, 0xAC, 0x4B, 0xF3, 0xA7, 0xCA, 0x6C, 0xBC, 0xBD, 0x46, + 0xE7, 0x0C, 0x34, 0x8B, 0xF0, 0xF6, 0x11, 0x4A, 0xA3, 0x7C, 0xFB, 0x15, 0x8A, 0xCB, 0xE1, 0x2C, + 0x43, 0xA9, 0x33, 0x5B, 0xCF, 0x57, 0x55, 0xA5, 0xEA, 0xF5, 0xFC, 0x7C, 0x81, 0x8E, 0xD0, 0x2B, + 0x14, 0xA3, 0x2D, 0xCF, 0x41, 0xAF, 0x7A, 0x51, 0x8C, 0x5E, 0x45, 0x51, 0x94, 0x77, 0xBB, 0xF6, + 0xAA, 0xD7, 0x43, 0xAF, 0x22, 0xD7, 0x41, 0x47, 0x2C, 0xF6, 0x48, 0x68, 0x4A, 0x9D, 0xF7, 0x7A, + 0x8C, 0x16, 0x07, 0xD4, 0xAB, 0x5F, 0x71, 0xD3, 0x75, 0x2B, 0xBE, 0x85, 0x5D, 0xCF, 0x57, 0xDB, + 0xBA, 0x98, 0xE6, 0x20, 0xD9, 0x76, 0x63, 0xB1, 0x0C, 0x12, 0xE5, 0xDB, 0x1E, 0x7A, 0xD5, 0xEB, + 0x21, 0x0F, 0x0A, 0x17, 0xD9, 0xE5, 0x12, 0x93, 0x25, 0x26, 0x8E, 0x53, 0x40, 0x76, 0xE3, 0xDC, + 0xE6, 0x15, 0xCA, 0x91, 0x50, 0xB7, 0x7D, 0x13, 0xE9, 0xBA, 0x54, 0x6B, 0x7D, 0xB5, 0xE0, 0xC2, + 0xF3, 0xA2, 0xD5, 0x66, 0xE3, 0x02, 0x69, 0xB8, 0xA9, 0x57, 0x3A, 0xA0, 0x3B, 0xFB, 0xA6, 0xD7, + 0x9B, 0xBD, 0x01, 0xF8, 0x94, 0xB7, 0x5B, 0xDC, 0x53, 0x98, 0xDE, 0x38, 0x48, 0x44, 0xBE, 0x71, + 0x1C, 0x64, 0x34, 0x99, 0x1C, 0x6C, 0xD3, 0x02, 0x5D, 0x2F, 0xEE, 0xE6, 0x98, 0x28, 0x37, 0x41, + 0xE2, 0x51, 0x48, 0x1E, 0xB9, 0x28, 0x8B, 0x28, 0x9B, 0xDE, 0xCC, 0xF7, 0x21, 0xEE, 0x2C, 0x55, + 0xE2, 0x35, 0x4B, 0x7B, 0x3D, 0xB6, 0xEE, 0xC9, 0xA2, 0x28, 0x4A, 0xB5, 0xF7, 0x27, 0xF3, 0x5E, + 0x2F, 0x5F, 0xCC, 0xB0, 0x52, 0x7B, 0x32, 0x54, 0x59, 0x85, 0x96, 0x6F, 0xBA, 0x9D, 0x48, 0x2D, + 0x5F, 0x52, 0x38, 0x28, 0xED, 0x81, 0xEE, 0x73, 0xD2, 0x8B, 0x08, 0x94, 0xCB, 0x30, 0xF0, 0x55, + 0x04, 0xE1, 0xF5, 0x4C, 0xE5, 0xE0, 0x72, 0xC5, 0x5F, 0x16, 0x81, 0xD3, 0xEA, 0xF2, 0xCD, 0x50, + 0x98, 0x14, 0xD5, 0xFA, 0x56, 0xFA, 0x7E, 0x6B, 0x75, 0x2B, 0xA7, 0xDC, 0xFA, 0x84, 0x2F, 0xCA, + 0xE6, 0x7D, 0x85, 0x31, 0xC3, 0xA9, 0xEE, 0x24, 0x89, 0xBE, 0x93, 0x14, 0x1B, 0x2B, 0x44, 0xE6, + 0x74, 0xA1, 0xB9, 0xE3, 0x91, 0x28, 0x4B, 0x02, 0x5B, 0x47, 0x2F, 0x73, 0xF4, 0x28, 0x17, 0x1C, + 0x73, 0xD6, 0x0C, 0xB8, 0x7F, 0x1A, 0x9F, 0xD9, 0xB6, 0xCD, 0x96, 0x83, 0xE0, 0xAF, 0x05, 0x65, + 0x88, 0x3A, 0x8E, 0xD3, 0xCF, 0xF0, 0xEA, 0x7C, 0x89, 0x6D, 0x5B, 0xCC, 0x0B, 0xB8, 0x47, 0x1D, + 0xF5, 0x88, 0x19, 0xC5, 0x91, 0x8B, 0xA4, 0xFA, 0xF7, 0xEC, 0x64, 0x27, 0xE1, 0xD6, 0x89, 0x93, + 0xED, 0x93, 0x9D, 0xDC, 0xB9, 0xCA, 0xC4, 0x03, 0xA6, 0xED, 0x13, 0x67, 0x06, 0xAF, 0x1C, 0x8A, + 0xB4, 0x17, 0xE5, 0xEA, 0x61, 0x0E, 0x2B, 0x23, 0x46, 0xD4, 0x99, 0xA5, 0xBB, 0x4B, 0x26, 0x87, + 0xDB, 0xD1, 0x12, 0xB1, 0x81, 0x4A, 0x0D, 0x3D, 0x7C, 0x1A, 0x88, 0xB5, 0xDE, 0x95, 0x6E, 0x7B, + 0xCE, 0x6C, 0xDD, 0xED, 0xA6, 0xEA, 0x7D, 0xC3, 0x2A, 0x5A, 0xEF, 0xE5, 0xDB, 0x5E, 0x98, 0xCF, + 0x44, 0x69, 0x2B, 0x50, 0xE2, 0x5E, 0x49, 0x41, 0xCD, 0x8A, 0x1B, 0xC6, 0x7C, 0x52, 0xA0, 0xA1, + 0x3F, 0x1D, 0x7E, 0x2B, 0x16, 0x78, 0x30, 0xAD, 0xEB, 0xA7, 0x4C, 0xDD, 0xA9, 0x2F, 0x6D, 0xEB, + 0x8C, 0x5C, 0xAE, 0xA1, 0x32, 0x19, 0x28, 0x3B, 0xDE, 0xA9, 0xB2, 0xCB, 0x9B, 0x68, 0x6E, 0x8D, + 0xAA, 0xDA, 0x26, 0xCE, 0x55, 0x7E, 0x7E, 0x86, 0x4B, 0xCB, 0xB7, 0x15, 0x0B, 0x38, 0xB8, 0xD1, + 0x02, 0x8E, 0xBC, 0x5B, 0x4C, 0x13, 0x4E, 0xDE, 0xDD, 0x25, 0x05, 0xD7, 0xAC, 0x7C, 0xBD, 0xA6, + 0x14, 0xF9, 0xF8, 0xFB, 0x32, 0x70, 0x8E, 0x26, 0xBA, 0x92, 0x28, 0xA5, 0x39, 0x5F, 0x0D, 0x5D, + 0x1F, 0xBF, 0x51, 0xF7, 0x98, 0x86, 0x57, 0x43, 0x53, 0x57, 0xB1, 0xAA, 0xDD, 0x9B, 0x26, 0xE0, + 0x6C, 0xF9, 0x88, 0x2C, 0xB9, 0x92, 0x2F, 0xF7, 0xAD, 0x6F, 0x5B, 0xA5, 0xD9, 0x06, 0x0B, 0x95, + 0x7A, 0x85, 0xE2, 0xA4, 0xAD, 0xA1, 0x9A, 0xBA, 0x55, 0x97, 0xBA, 0x29, 0x17, 0x47, 0xB9, 0x8A, + 0x7C, 0x3F, 0x6A, 0x74, 0xC5, 0x63, 0x9D, 0x9E, 0x8A, 0x75, 0x03, 0xC7, 0x71, 0x2A, 0xAE, 0x1A, + 0xB9, 0xB3, 0x5C, 0x61, 0x77, 0x81, 0x33, 0xCC, 0x2E, 0xFD, 0xF5, 0x1A, 0x85, 0x37, 0x11, 0xAF, + 0xAC, 0xA6, 0x00, 0x9A, 0x7E, 0xCD, 0x22, 0x85, 0x72, 0x7A, 0xB1, 0xA6, 0x95, 0x32, 0xBC, 0x77, + 0x2E, 0x43, 0xF7, 0x0C, 0x18, 0xE9, 0xC5, 0xB6, 0xC8, 0x8F, 0x18, 0x69, 0xF5, 0x6C, 0xA1, 0x91, + 0x8D, 0x24, 0x0D, 0x69, 0xF1, 0x5A, 0xF9, 0x82, 0x6F, 0xB0, 0x70, 0xD3, 0x89, 0xD7, 0x75, 0x7F, + 0xAC, 0x6B, 0x6E, 0x36, 0x8D, 0x23, 0xBB, 0xCE, 0x5B, 0x2B, 0x80, 0xF1, 0xC2, 0xAB, 0x60, 0x3C, + 0xB6, 0x88, 0x05, 0xED, 0x4F, 0xE1, 0x53, 0xF0, 0x4A, 0xF9, 0x29, 0xD1, 0x50, 0x29, 0x67, 0x0E, + 0x3C, 0xA3, 0xDA, 0x75, 0x89, 0x86, 0x90, 0xEA, 0x93, 0xF1, 0x9A, 0xF6, 0xDF, 0x9A, 0x6D, 0x74, + 0xA9, 0x25, 0x5D, 0x96, 0xCD, 0xD3, 0xAF, 0x29, 0x47, 0x57, 0xD3, 0x1A, 0x7D, 0xC4, 0xFE, 0x09, + 0x37, 0x84, 0xA3, 0x38, 0x72, 0x77, 0x2D, 0x0C, 0x68, 0x94, 0x7A, 0xB9, 0x8D, 0xFC, 0x88, 0xD7, + 0xE5, 0x16, 0x94, 0x91, 0xDE, 0x60, 0x24, 0x45, 0xAB, 0xD8, 0xDB, 0xC8, 0x64, 0x9B, 0x96, 0x74, + 0x69, 0x26, 0x35, 0x79, 0x80, 0x2D, 0x8B, 0x7C, 0xE7, 0x9A, 0xB3, 0x3C, 0x8D, 0xD5, 0x16, 0x82, + 0xE0, 0x98, 0xA7, 0xF6, 0x06, 0x29, 0x5A, 0x82, 0x46, 0x6F, 0x2D, 0xB6, 0xFA, 0x1E, 0xA2, 0xFE, + 0x40, 0xC2, 0xC0, 0x5A, 0x4D, 0xD5, 0x50, 0xD7, 0x30, 0x15, 0xFA, 0x54, 0x92, 0x16, 0x68, 0xE8, + 0x79, 0x1F, 0x36, 0x31, 0xC9, 0xFB, 0xE0, 0xDB, 0xE8, 0x4D, 0x72, 0x75, 0xC9, 0xFA, 0xB4, 0x64, + 0x28, 0x46, 0x56, 0xAC, 0x66, 0xF3, 0x69, 0xA9, 0xDF, 0xEF, 0xC7, 0xD9, 0xF1, 0x39, 0xB8, 0x13, + 0x16, 0xF5, 0x93, 0x7A, 0x41, 0x62, 0xC8, 0xBB, 0xD1, 0xB0, 0x76, 0x62, 0xDE, 0xC1, 0x48, 0x24, + 0x9A, 0x12, 0x90, 0x65, 0x19, 0x36, 0xB4, 0xA5, 0x12, 0x64, 0x45, 0xB9, 0x3F, 0x55, 0x3B, 0x5F, + 0xC6, 0xDD, 0x87, 0x26, 0x24, 0x32, 0x34, 0xB5, 0x9A, 0x15, 0xB5, 0x04, 0xE1, 0xA5, 0x6A, 0x9C, + 0x39, 0xA0, 0x88, 0x64, 0x50, 0x8A, 0x3B, 0xC6, 0xDC, 0xE7, 0xF7, 0xF5, 0x98, 0xF6, 0x6A, 0x55, + 0x29, 0xB5, 0xB6, 0x74, 0xB0, 0x5B, 0x28, 0x70, 0x69, 0xE0, 0xF2, 0x01, 0xD1, 0x7E, 0xDD, 0x99, + 0xBB, 0x5E, 0xC5, 0x7A, 0xE1, 0x35, 0xE5, 0x36, 0x23, 0xB1, 0x41, 0xB9, 0x4D, 0x67, 0x4A, 0x9D, + 0xA5, 0xCA, 0x6E, 0x3A, 0x6E, 0x57, 0x9A, 0x94, 0xCD, 0x2E, 0x54, 0x9A, 0xB9, 0xAB, 0x23, 0x7C, + 0x93, 0x2A, 0xA5, 0xEF, 0xD0, 0x68, 0xCB, 0xE5, 0x17, 0x9C, 0xE4, 0xC8, 0xE6, 0x8B, 0xC1, 0xEB, + 0xF3, 0x94, 0x2B, 0xEF, 0x76, 0x48, 0x43, 0x3F, 0x92, 0x11, 0x32, 0x1C, 0xFA, 0xD3, 0xD1, 0x4E, + 0x44, 0xBA, 0x5D, 0xB2, 0x13, 0x0D, 0x47, 0x81, 0x37, 0x2D, 0xAF, 0x8C, 0x6E, 0x85, 0xC6, 0x73, + 0x66, 0xC3, 0x51, 0xE0, 0xBB, 0x3B, 0x6C, 0x07, 0x99, 0xEF, 0x44, 0xC3, 0x71, 0x30, 0x08, 0xF6, + 0x8C, 0x5E, 0xE0, 0xB9, 0xFE, 0xE0, 0x13, 0x9B, 0x6C, 0x43, 0x59, 0x4E, 0x2F, 0xDF, 0x86, 0x0C, + 0xBD, 0xD1, 0x70, 0x18, 0x8C, 0x36, 0xF8, 0x5A, 0x1D, 0xCD, 0x90, 0x71, 0x41, 0xBC, 0x3C, 0x2C, + 0x43, 0x3A, 0xF2, 0x5B, 0xD6, 0xF5, 0x86, 0x72, 0x66, 0x6A, 0x78, 0x37, 0x7A, 0x5D, 0x2B, 0x72, + 0xB3, 0x9B, 0x2B, 0x5D, 0xD6, 0xEB, 0x35, 0x59, 0x99, 0xC4, 0xDE, 0xCD, 0x95, 0xF8, 0x28, 0xC3, + 0xF9, 0x42, 0x88, 0xD4, 0xF9, 0xA3, 0xE8, 0x56, 0xEA, 0x5B, 0xF4, 0xC4, 0x32, 0x1D, 0xA4, 0x7E, + 0xC1, 0xC6, 0x4B, 0x35, 0xC2, 0xA5, 0x05, 0x1A, 0x0D, 0x82, 0x0F, 0x39, 0xEE, 0x6B, 0x32, 0x5A, + 0x18, 0xD5, 0xA3, 0xA1, 0x56, 0x0D, 0xF1, 0xAC, 0xDE, 0x11, 0xAD, 0x68, 0x5B, 0x1B, 0x11, 0x32, + 0xA7, 0xA9, 0xB3, 0x1D, 0xD1, 0x46, 0x4F, 0x09, 0x46, 0xB4, 0xC6, 0x49, 0x13, 0x5C, 0x35, 0x88, + 0x11, 0x5D, 0x76, 0x3F, 0x4D, 0x89, 0xFE, 0xC1, 0x0F, 0x5E, 0x56, 0x54, 0xEA, 0xB5, 0xCF, 0xFD, + 0x67, 0x8F, 0x9F, 0xBD, 0xD0, 0x3C, 0xAC, 0x1A, 0xD1, 0x7A, 0x0C, 0xE4, 0xF3, 0x87, 0xA3, 0x4D, + 0x05, 0x68, 0x67, 0x67, 0x8A, 0xCC, 0xB2, 0x58, 0xAE, 0x46, 0x92, 0xCC, 0x04, 0xAD, 0x0A, 0x1E, + 0x6A, 0xAB, 0xB3, 0x8F, 0x5A, 0x98, 0x14, 0xA0, 0x1A, 0x3B, 0x2D, 0x0B, 0xD5, 0x99, 0xEE, 0xA1, + 0x5A, 0xCB, 0xB8, 0x4D, 0x4D, 0x0E, 0x08, 0x3A, 0x56, 0x43, 0x52, 0x89, 0xA7, 0x51, 0x4E, 0x02, + 0xBF, 0x40, 0x83, 0xC9, 0x28, 0xF8, 0xB0, 0xF9, 0x9A, 0x2F, 0x12, 0xEB, 0xB3, 0x35, 0xDF, 0x3B, + 0x66, 0xE6, 0xDE, 0x31, 0x69, 0x74, 0xCE, 0x07, 0x2F, 0xFC, 0xC4, 0x82, 0xDF, 0x70, 0x77, 0x2B, + 0x2F, 0x62, 0x1B, 0xFD, 0xE2, 0xAE, 0xA2, 0xA4, 0xFF, 0x2A, 0xC1, 0x6F, 0xE9, 0xA3, 0x95, 0x7C, + 0xE7, 0xFE, 0x4A, 0x3D, 0xF0, 0x6A, 0xD8, 0x31, 0xE6, 0xCD, 0x3B, 0x46, 0x23, 0x43, 0x89, 0x80, + 0xEF, 0x11, 0xB9, 0x41, 0xC1, 0x9A, 0xA5, 0x1D, 0xB2, 0xAA, 0x3A, 0xE2, 0x2D, 0xC9, 0x96, 0xDE, + 0x99, 0x0C, 0xCF, 0xBC, 0xE5, 0xAB, 0xE9, 0x48, 0x19, 0x84, 0x2A, 0x8B, 0x12, 0xCE, 0xF3, 0x6D, + 0x17, 0x65, 0x86, 0x03, 0x5B, 0xC7, 0xAE, 0xD5, 0xDF, 0xA9, 0xB3, 0x44, 0xF9, 0x8C, 0x72, 0xDE, + 0xD5, 0x6F, 0x6F, 0xA1, 0x5A, 0x2F, 0x41, 0x8A, 0x97, 0x91, 0x57, 0xA0, 0xB1, 0xE7, 0x7D, 0x90, + 0xBB, 0xC6, 0x8A, 0xB1, 0x58, 0xD1, 0xD1, 0x0F, 0x1E, 0xBC, 0x3C, 0x28, 0xFB, 0xAB, 0x8A, 0xB9, + 0x2A, 0xAE, 0xCD, 0xD1, 0xBF, 0xA7, 0x01, 0xCF, 0xDD, 0x45, 0x74, 0x65, 0x7D, 0x65, 0x85, 0xD6, + 0x8F, 0xFF, 0xEE, 0xAF, 0x5A, 0x28, 0x0E, 0xAD, 0x1F, 0xFF, 0xD6, 0xDF, 0xB1, 0xD0, 0x61, 0x68, + 0xFD, 0xF8, 0x37, 0x7E, 0xCD, 0x42, 0x4B, 0xF6, 0xF7, 0xD7, 0x2D, 0xB4, 0x62, 0x7F, 0xFF, 0xA6, + 0x85, 0x30, 0xFB, 0xFB, 0xD7, 0x2D, 0x74, 0x14, 0x5A, 0x5F, 0xFF, 0x23, 0x0B, 0x1D, 0x87, 0xD6, + 0xD7, 0xFF, 0xD8, 0x42, 0x27, 0x2C, 0xF6, 0x77, 0x2D, 0x44, 0xD8, 0xDF, 0xBF, 0x61, 0xA1, 0x5F, + 0x08, 0xAD, 0x1F, 0xFF, 0xE6, 0x6F, 0x5B, 0xE8, 0x35, 0xFB, 0xFB, 0x1B, 0x16, 0x5A, 0xB3, 0xBF, + 0xBF, 0x6E, 0xA1, 0x53, 0xF6, 0xF7, 0x37, 0x2D, 0x94, 0xB0, 0xBF, 0x7F, 0x6C, 0xA1, 0x34, 0xB4, + 0x7E, 0xFC, 0xB7, 0xFE, 0x2F, 0x0B, 0x9D, 0xB1, 0xBF, 0x7F, 0x64, 0xA1, 0x5F, 0x64, 0xF1, 0xBF, + 0x6C, 0xA1, 0x8C, 0x7D, 0xFF, 0xB1, 0x85, 0x72, 0xF6, 0xF7, 0x9F, 0x58, 0x88, 0xB2, 0xF8, 0xDF, + 0xB1, 0xD0, 0x39, 0xFB, 0xFB, 0xBB, 0x16, 0x7A, 0xC3, 0xFE, 0xFE, 0xA1, 0x85, 0x2E, 0xD8, 0xDF, + 0x7F, 0x68, 0xA1, 0xB7, 0xEC, 0xEF, 0x5F, 0xB5, 0xD0, 0x65, 0x68, 0xFD, 0xF8, 0xD7, 0x7E, 0xD7, + 0x42, 0x3F, 0x62, 0x7F, 0xFF, 0x81, 0x85, 0xAC, 0x2B, 0x2B, 0xB4, 0xFE, 0xDF, 0x5F, 0xB6, 0x90, + 0xB5, 0x61, 0x15, 0xFC, 0xB5, 0xBF, 0x6F, 0x21, 0xAB, 0xB0, 0x42, 0xEB, 0xEB, 0xFF, 0xD1, 0x42, + 0xD6, 0x2F, 0xB1, 0xC0, 0xFF, 0x6E, 0x15, 0x1A, 0x33, 0xFA, 0x77, 0xA3, 0x2B, 0xEB, 0xBB, 0x1C, + 0xC0, 0x88, 0xBF, 0x57, 0xE7, 0xF2, 0x7C, 0xB0, 0x28, 0x81, 0x91, 0xF5, 0x97, 0x59, 0xE0, 0xFF, + 0xB6, 0x90, 0x35, 0xB7, 0x42, 0x8B, 0xFC, 0x82, 0x85, 0xAC, 0x2F, 0xBF, 0x64, 0x51, 0xFF, 0xC4, + 0x42, 0xD6, 0xC2, 0x0A, 0xAD, 0x8D, 0xA0, 0xE6, 0xEB, 0xDF, 0x17, 0xD4, 0x1C, 0x49, 0x5A, 0xFE, + 0x58, 0xD2, 0xF2, 0x87, 0x66, 0x99, 0xFB, 0x5A, 0x93, 0xCD, 0x87, 0xAC, 0x30, 0x86, 0xFA, 0x9B, + 0x5F, 0x91, 0xA8, 0xBF, 0xF9, 0x2D, 0x81, 0xFA, 0x9B, 0xBF, 0x66, 0x21, 0xEB, 0xE7, 0x59, 0xE0, + 0x77, 0x2C, 0x04, 0x4D, 0xF9, 0xCD, 0x1F, 0x88, 0xD2, 0xBE, 0xF9, 0x5D, 0x51, 0xDA, 0x37, 0xFF, + 0x9B, 0x28, 0xEE, 0x9B, 0x7F, 0x20, 0x8A, 0xFB, 0xE6, 0x8F, 0xCD, 0xE2, 0x5E, 0x54, 0x6B, 0xF3, + 0xCD, 0xDF, 0x17, 0xB5, 0x61, 0x0D, 0x2D, 0x8A, 0xFC, 0x3D, 0x51, 0xE4, 0xD7, 0xBF, 0x27, 0x0B, + 0xF8, 0x03, 0x59, 0xC0, 0xFF, 0x29, 0x0B, 0xF8, 0x7D, 0x59, 0x9F, 0xDF, 0x37, 0x0B, 0xF8, 0xB9, + 0xE8, 0xCA, 0xC4, 0xFB, 0xCD, 0xFF, 0x50, 0xC3, 0xFB, 0xCD, 0xFF, 0x2C, 0xAB, 0xF2, 0xBF, 0xC8, + 0xAA, 0xFC, 0xE1, 0xCD, 0x25, 0x7D, 0xF3, 0x47, 0x66, 0x49, 0x9F, 0x89, 0x92, 0x80, 0xCA, 0x36, + 0xA6, 0xFD, 0x4E, 0x3B, 0x8B, 0x64, 0x8B, 0x7C, 0xF3, 0xF7, 0x4C, 0xBC, 0x3F, 0xAC, 0x35, 0xF8, + 0xEF, 0xB5, 0xB3, 0x08, 0xE8, 0xFD, 0x4A, 0xD2, 0x7B, 0x25, 0x2B, 0x0E, 0x25, 0xFD, 0xAF, 0xB5, + 0x1A, 0xFC, 0x43, 0xB3, 0xA4, 0x07, 0x7A, 0xDB, 0x8F, 0x16, 0x92, 0x73, 0xBF, 0x22, 0xEB, 0xF3, + 0xAB, 0xAA, 0xB8, 0xDF, 0x6E, 0x17, 0x82, 0xDF, 0x95, 0xE5, 0xFE, 0x4F, 0xB2, 0xDC, 0xFF, 0xE3, + 0x26, 0x21, 0xF8, 0x2B, 0xED, 0x35, 0xFC, 0xEF, 0x55, 0x91, 0x7F, 0x5B, 0x0A, 0xC1, 0xFF, 0x23, + 0x65, 0xFA, 0x1F, 0xC9, 0x02, 0xFE, 0xB1, 0x2C, 0xE0, 0xF7, 0x4C, 0xBC, 0x9F, 0xEA, 0xF5, 0x19, + 0xAB, 0xFA, 0xFC, 0xDA, 0x35, 0xED, 0xF3, 0x6D, 0x08, 0xF5, 0xDC, 0x8A, 0x2C, 0xD9, 0x4B, 0xA1, + 0x19, 0x4C, 0xF9, 0xFB, 0x83, 0xEB, 0xE5, 0xEF, 0x95, 0x68, 0x20, 0x53, 0x0C, 0xAF, 0x11, 0x97, + 0x3F, 0xB2, 0x8A, 0x02, 0xF9, 0xC3, 0x49, 0x79, 0x7F, 0xFA, 0x26, 0xCE, 0x3A, 0x04, 0xE5, 0xB3, + 0xF7, 0xD9, 0xB5, 0x7B, 0xAF, 0x1E, 0x1C, 0xEC, 0xDF, 0x7D, 0xFE, 0xE0, 0x3E, 0xE3, 0x9D, 0xC7, + 0x7E, 0x5C, 0x39, 0x0A, 0xE9, 0xEE, 0xC2, 0x30, 0x5B, 0xD2, 0x44, 0xD6, 0x97, 0xAE, 0x85, 0x70, + 0xFF, 0xE0, 0xD9, 0xA7, 0x91, 0xF5, 0x4F, 0x41, 0xE8, 0xE5, 0x0F, 0x22, 0xEB, 0x9F, 0x66, 0xA1, + 0x07, 0x2C, 0xF4, 0xCF, 0x40, 0xE8, 0xD9, 0xCB, 0xC8, 0xFA, 0x67, 0x21, 0xF4, 0xF4, 0xE7, 0x22, + 0xEB, 0x9F, 0x63, 0xA1, 0xBB, 0xFB, 0x9F, 0x45, 0xD6, 0x3F, 0xCF, 0x42, 0xF7, 0x1E, 0x3C, 0x8E, + 0xAC, 0x7F, 0x01, 0x42, 0x07, 0x91, 0xF5, 0xE5, 0x21, 0x0B, 0x7D, 0xFA, 0x32, 0xB2, 0xBE, 0xA4, + 0x2C, 0xF4, 0xF8, 0x61, 0x64, 0x7D, 0x99, 0xB0, 0xD0, 0xF7, 0x59, 0xDC, 0x1B, 0x16, 0x7A, 0xC8, + 0xE2, 0x8E, 0x58, 0x68, 0xFF, 0x45, 0x64, 0x7D, 0x99, 0x71, 0x0A, 0x22, 0xEB, 0x5F, 0x84, 0xC0, + 0xA3, 0xC8, 0xFA, 0x97, 0x58, 0xE0, 0xFE, 0xE3, 0x07, 0x91, 0xF5, 0x2F, 0x43, 0x68, 0xDF, 0x8B, + 0xAC, 0x7F, 0x85, 0x87, 0xFC, 0xC8, 0xFA, 0x57, 0x79, 0x28, 0x88, 0xAC, 0x7F, 0x8D, 0x87, 0x06, + 0x91, 0xF5, 0xAF, 0xB3, 0xD0, 0xD3, 0xBB, 0x9F, 0x45, 0xD6, 0xBF, 0x01, 0x48, 0x7E, 0xF8, 0x34, + 0xB2, 0xFE, 0x4D, 0x5E, 0x8B, 0x7B, 0x91, 0xF5, 0x6F, 0x41, 0x59, 0x77, 0x9F, 0x46, 0xD6, 0xBF, + 0x0D, 0x71, 0x4F, 0x22, 0xEB, 0xDF, 0x01, 0xB0, 0xCF, 0xEF, 0x45, 0xD6, 0xBF, 0x0B, 0x51, 0x07, + 0xFB, 0x91, 0xF5, 0x97, 0x80, 0xB8, 0x83, 0xC8, 0xFA, 0xF7, 0x58, 0xE0, 0x7B, 0x07, 0x91, 0xF5, + 0xEF, 0xB3, 0xC0, 0x8B, 0x83, 0xC8, 0xFA, 0x0F, 0x58, 0xE0, 0xF3, 0x83, 0xC8, 0xFA, 0x0F, 0x21, + 0xDF, 0x73, 0x58, 0xE7, 0xE1, 0xFE, 0x7D, 0x56, 0xF7, 0xFF, 0xC8, 0x2A, 0x6C, 0x02, 0x7C, 0x66, + 0x2B, 0x0E, 0xC6, 0xEE, 0xAB, 0xC2, 0x71, 0x90, 0x9D, 0x43, 0x03, 0xF0, 0x38, 0x0F, 0xE2, 0xFA, + 0xCF, 0xEF, 0xDE, 0x8F, 0xAC, 0xAF, 0x7F, 0xD9, 0x42, 0x79, 0xFF, 0xD3, 0x67, 0xCF, 0x23, 0xEB, + 0xEB, 0xFF, 0x98, 0x05, 0xEF, 0x3D, 0xFF, 0x34, 0xB2, 0xBE, 0xFE, 0xAB, 0x2C, 0xF8, 0xF4, 0x1E, + 0x0B, 0xFE, 0x27, 0x2C, 0xF8, 0xE8, 0x29, 0x83, 0xFD, 0x15, 0x88, 0x65, 0xC5, 0x7C, 0xFD, 0xD7, + 0x58, 0xF0, 0xE0, 0xE0, 0x6E, 0x64, 0x7D, 0xFD, 0xAB, 0x2C, 0xF8, 0x00, 0x82, 0xFF, 0x29, 0x20, + 0x7B, 0x79, 0x10, 0x59, 0x5F, 0xFF, 0x67, 0x3C, 0xF8, 0xB3, 0x91, 0xF5, 0xF5, 0xAF, 0xB1, 0xE0, + 0xF7, 0x21, 0xF6, 0xAF, 0xB3, 0xE0, 0xF3, 0xC7, 0x0C, 0xD9, 0xDF, 0xE0, 0xC1, 0xCF, 0x23, 0xEB, + 0xEB, 0x5F, 0x67, 0xC1, 0x17, 0x8F, 0x22, 0xEB, 0xEB, 0xBF, 0xC9, 0xD1, 0xFA, 0x91, 0xF5, 0xF5, + 0xDF, 0xE2, 0xC1, 0x20, 0xB2, 0xBE, 0xFE, 0xCF, 0x59, 0xF0, 0xFE, 0x3E, 0x43, 0xF0, 0x1B, 0x90, + 0xEB, 0x73, 0x2F, 0xB2, 0xBE, 0xFE, 0xDB, 0x3C, 0xC8, 0x60, 0xFF, 0x0E, 0xC0, 0x42, 0x09, 0xFF, + 0x05, 0x0B, 0xEE, 0xEF, 0x33, 0xCA, 0x7F, 0x93, 0x05, 0x9F, 0x7C, 0x11, 0x59, 0x5F, 0xFF, 0x97, + 0x90, 0xFE, 0x9C, 0x91, 0xF8, 0x5B, 0x40, 0x2D, 0x04, 0xFF, 0x2E, 0xC4, 0x3E, 0x63, 0xB9, 0x7E, + 0x1B, 0x82, 0xDF, 0xDB, 0x67, 0x34, 0xFC, 0x57, 0x10, 0x86, 0xE0, 0x7F, 0x0D, 0xC8, 0x98, 0x14, + 0x7C, 0xFD, 0xDF, 0xF0, 0x22, 0x22, 0xEB, 0xEB, 0xDF, 0x61, 0xA1, 0x67, 0xAC, 0x8D, 0xBE, 0xFE, + 0x6F, 0x81, 0x84, 0x27, 0x91, 0xF5, 0xF5, 0x7F, 0xC7, 0x42, 0x77, 0x9F, 0xB3, 0xC8, 0xBF, 0x67, + 0x21, 0x5B, 0x17, 0x7D, 0xC1, 0x74, 0xD5, 0x13, 0x80, 0xF9, 0x07, 0x2F, 0xA3, 0xAF, 0x3E, 0xBA, + 0x22, 0xAC, 0xAD, 0x8B, 0x2F, 0xBF, 0xFC, 0xAA, 0x40, 0xE3, 0x60, 0x3A, 0xFD, 0xB0, 0x25, 0x37, + 0x66, 0x5F, 0x31, 0xC5, 0x9F, 0xE1, 0xCB, 0xC3, 0x34, 0xCE, 0x56, 0xB0, 0xAE, 0xAD, 0xAF, 0xC0, + 0x59, 0xDF, 0x66, 0x2B, 0xF0, 0xAB, 0xC1, 0x24, 0x9C, 0x5B, 0xAE, 0x85, 0x2C, 0xC7, 0x5A, 0xA0, + 0xC1, 0x34, 0x9C, 0x5B, 0x9E, 0x85, 0xAC, 0x2D, 0x6B, 0x81, 0x86, 0x6E, 0x38, 0xB7, 0x7C, 0x18, + 0x6A, 0x16, 0x68, 0xE8, 0x85, 0x73, 0x2B, 0xB0, 0x90, 0xF5, 0x5D, 0xF6, 0xE1, 0x87, 0x73, 0x6B, + 0x60, 0x21, 0xEB, 0x23, 0xF6, 0x11, 0x84, 0x73, 0x6B, 0x68, 0x21, 0xEB, 0x67, 0xD8, 0xC7, 0x20, + 0x9C, 0x5B, 0x23, 0x18, 0x79, 0x16, 0x68, 0x38, 0x0C, 0xE7, 0xD6, 0xD8, 0x42, 0x56, 0x97, 0x7D, + 0x8C, 0xC2, 0xB9, 0x35, 0xB1, 0x90, 0xF5, 0x09, 0xFB, 0x18, 0x87, 0x73, 0x6B, 0x6A, 0x21, 0xCB, + 0xB6, 0x16, 0xC8, 0x9B, 0xB0, 0xA4, 0x99, 0x85, 0xAC, 0x10, 0xBE, 0x58, 0x5A, 0x64, 0x21, 0xAB, + 0x07, 0x5F, 0x8C, 0x3C, 0x64, 0x21, 0x6B, 0x07, 0xBE, 0x18, 0x7D, 0xDB, 0x16, 0xB2, 0x5E, 0xB1, + 0xAF, 0x29, 0x23, 0xB0, 0x6F, 0x21, 0x6B, 0x17, 0xBE, 0x18, 0x85, 0x77, 0x2C, 0x64, 0xED, 0xC1, + 0x17, 0x23, 0xF1, 0x2B, 0x18, 0xCE, 0x16, 0xC8, 0xF7, 0x58, 0xBE, 0x39, 0x8C, 0x7B, 0x0B, 0xE4, + 0xFB, 0x2C, 0xDF, 0x97, 0x5F, 0xC2, 0xE8, 0xC7, 0x3E, 0x59, 0xC6, 0x05, 0x0C, 0x81, 0xEC, 0x8B, + 0x65, 0xFC, 0xD8, 0x42, 0x1F, 0x5B, 0x1F, 0x2F, 0x8A, 0x59, 0x1B, 0x3F, 0x8D, 0xBB, 0x47, 0xA2, + 0xEB, 0x2D, 0x5C, 0xD1, 0xCB, 0x33, 0x1C, 0xBA, 0x88, 0x3B, 0x94, 0x0C, 0xB7, 0x3C, 0xF4, 0x1A, + 0x5F, 0x86, 0x9C, 0xFF, 0x05, 0x8A, 0x23, 0x1B, 0xF7, 0xC1, 0x1A, 0xDF, 0x67, 0xF8, 0x72, 0xCF, + 0x0B, 0x5D, 0x67, 0x63, 0xE3, 0x7E, 0xBC, 0x86, 0x4F, 0x5F, 0x7C, 0x2E, 0x69, 0xB6, 0x66, 0xDF, + 0x03, 0xF1, 0x7D, 0x8A, 0x69, 0xCC, 0xBE, 0x27, 0xA1, 0xEB, 0xCC, 0x84, 0x67, 0x26, 0xDC, 0x7F, + 0x8D, 0x2F, 0xF7, 0xD3, 0x15, 0x16, 0xDE, 0x97, 0xDC, 0xD0, 0xFA, 0xFC, 0xD1, 0x67, 0xF8, 0xF2, + 0x51, 0x72, 0x76, 0x4E, 0x3F, 0x3F, 0xBB, 0x9B, 0x65, 0xE9, 0x85, 0x05, 0xDA, 0x2D, 0xAF, 0xF1, + 0xE5, 0x5E, 0xCA, 0x7E, 0x23, 0xBA, 0x97, 0xF7, 0xF7, 0x5D, 0x26, 0x6C, 0x3D, 0xEB, 0xD9, 0x5D, + 0x2B, 0x2C, 0xBF, 0xE6, 0x77, 0x2D, 0x3D, 0xFF, 0x63, 0x7C, 0x44, 0x6F, 0xC6, 0x70, 0xDF, 0xC0, + 0x70, 0xDF, 0xC0, 0x00, 0x8F, 0xF1, 0x6F, 0x46, 0xB1, 0x6F, 0xA0, 0xD8, 0x37, 0x50, 0xDC, 0x4F, + 0x2F, 0x12, 0x13, 0x03, 0xDC, 0xEE, 0xD7, 0x70, 0xDC, 0x33, 0x70, 0xDC, 0xB3, 0xC4, 0xE5, 0x2C, + 0x77, 0x28, 0x35, 0x09, 0x41, 0x7F, 0x89, 0x33, 0xD8, 0xB9, 0xE2, 0xD9, 0x15, 0x38, 0x04, 0xEE, + 0x3F, 0x78, 0x2C, 0xAF, 0x73, 0xCB, 0x54, 0x15, 0xC9, 0xD1, 0x4C, 0x39, 0x1A, 0xD9, 0x70, 0x35, + 0x44, 0xD6, 0xFC, 0xAF, 0x58, 0x75, 0x24, 0x9F, 0xBE, 0x44, 0x69, 0x9F, 0xCB, 0x41, 0xB4, 0xE5, + 0xEA, 0xF8, 0xBC, 0x20, 0xE4, 0x70, 0xAA, 0xED, 0x4D, 0x9A, 0xF6, 0x5F, 0x84, 0xE2, 0x6F, 0x1B, + 0x06, 0x7F, 0x1C, 0x9A, 0x34, 0x20, 0x89, 0x4A, 0x71, 0xC9, 0x44, 0xF9, 0xE0, 0x60, 0xDF, 0x69, + 0x43, 0x16, 0x8C, 0x79, 0xFD, 0x84, 0xA0, 0x09, 0x1B, 0x7E, 0xF1, 0x5E, 0x15, 0x91, 0x35, 0xF7, + 0x66, 0x56, 0xCF, 0x8E, 0x7B, 0x9E, 0xD3, 0xB3, 0xEE, 0x5B, 0x88, 0x27, 0x47, 0x26, 0x40, 0x70, + 0xDF, 0xAA, 0x93, 0x60, 0x93, 0x3D, 0xEB, 0xD0, 0x0A, 0x59, 0xFA, 0xF0, 0xBE, 0xE5, 0x38, 0x4E, + 0x78, 0x0B, 0x81, 0x32, 0x48, 0x9C, 0xBE, 0x07, 0x89, 0xFB, 0x6D, 0x24, 0xEE, 0xB7, 0x90, 0x78, + 0x24, 0x48, 0xDC, 0x6F, 0x23, 0xB1, 0x2A, 0xB0, 0x06, 0x89, 0x93, 0xF7, 0x20, 0xF1, 0xAE, 0x85, + 0xC8, 0x66, 0x03, 0x10, 0x5B, 0x55, 0x2A, 0xEF, 0x5A, 0x9B, 0x4D, 0x53, 0xE6, 0xE1, 0x5D, 0xAB, + 0x99, 0xBA, 0x6A, 0x9F, 0xD6, 0xA9, 0x1B, 0xB8, 0xEF, 0x41, 0xDD, 0xBD, 0x6B, 0xA8, 0xBB, 0xD7, + 0x46, 0xDD, 0xBD, 0x16, 0xEA, 0xAA, 0x1D, 0xD5, 0xA0, 0x6E, 0x18, 0x96, 0xDD, 0x6B, 0xB3, 0x51, + 0x63, 0x60, 0x53, 0x11, 0xFE, 0x2F, 0x99, 0x7D, 0x7C, 0x30, 0x12, 0xA5, 0xC5, 0x5A, 0x69, 0xF3, + 0xA0, 0xAC, 0xC5, 0x2F, 0x19, 0x05, 0x07, 0xBF, 0x64, 0xB6, 0x5A, 0x63, 0x6E, 0x8D, 0x07, 0x9F, + 0x5A, 0xA1, 0x51, 0x8D, 0x4F, 0x0D, 0x6C, 0x9F, 0x9A, 0xC8, 0x86, 0x37, 0x20, 0x7B, 0x58, 0x41, + 0xF6, 0xD0, 0x40, 0xF6, 0xD0, 0x44, 0x16, 0x68, 0x3C, 0xD9, 0x4B, 0xFB, 0x6C, 0x62, 0x89, 0xFC, + 0xB0, 0x9C, 0x1F, 0x6A, 0x9C, 0x19, 0x1A, 0x75, 0xAE, 0x27, 0x57, 0x6A, 0x3E, 0x68, 0xC0, 0x1F, + 0x5C, 0x87, 0x7F, 0x74, 0x3D, 0xFE, 0x91, 0x89, 0xDF, 0xF3, 0xFC, 0x1B, 0xB8, 0xF1, 0x5C, 0xAF, + 0xFD, 0xB3, 0xE7, 0x95, 0xDC, 0xC1, 0x0D, 0xB9, 0x7F, 0xCE, 0xC8, 0xFD, 0x73, 0x95, 0xDC, 0x83, + 0x1B, 0x72, 0xBF, 0x30, 0x72, 0xBF, 0xA8, 0xE4, 0xBE, 0xA9, 0x1D, 0x0F, 0x8C, 0xDC, 0x07, 0x95, + 0xDC, 0xCD, 0x22, 0x35, 0x6C, 0x93, 0x48, 0x6F, 0x58, 0x65, 0xDC, 0xB8, 0x11, 0xC1, 0xB8, 0x15, + 0xC1, 0xB8, 0x8A, 0x60, 0xD2, 0x88, 0x60, 0xD2, 0x8A, 0x60, 0x52, 0x45, 0x30, 0x6D, 0x44, 0x30, + 0x6D, 0x45, 0x30, 0xAD, 0x20, 0xF0, 0xDD, 0x26, 0x04, 0xBE, 0xDB, 0x86, 0xC0, 0x77, 0xAB, 0x08, + 0xBC, 0x46, 0x04, 0x5E, 0x2B, 0x02, 0xAF, 0x8A, 0xA0, 0x51, 0xFA, 0xFC, 0xD6, 0x71, 0xC1, 0x0F, + 0xAA, 0x08, 0x1A, 0x05, 0xD0, 0x1F, 0xB4, 0x22, 0x18, 0x28, 0x04, 0xD2, 0x23, 0x25, 0x39, 0xB2, + 0xB7, 0xB4, 0xB1, 0xCC, 0x1C, 0xE2, 0xF8, 0x74, 0xCD, 0x42, 0x72, 0x4C, 0x26, 0x47, 0x36, 0xE9, + 0x76, 0xB7, 0x92, 0xCD, 0x66, 0xAB, 0x29, 0x79, 0x8B, 0x98, 0xD9, 0x1A, 0xF1, 0x6E, 0x95, 0xEB, + 0x45, 0xB1, 0x68, 0x2A, 0x29, 0x80, 0xB0, 0x5C, 0x25, 0x94, 0x80, 0xDD, 0xAE, 0x5A, 0x4D, 0xEE, + 0x46, 0x83, 0x89, 0xD0, 0x64, 0x66, 0x51, 0xF2, 0x09, 0x90, 0x5C, 0xAC, 0xB0, 0xA5, 0xAC, 0xC0, + 0xAA, 0x21, 0xB5, 0xAD, 0x57, 0xF5, 0x35, 0x1A, 0x30, 0xE6, 0xF3, 0x03, 0x87, 0x6D, 0x1F, 0x9A, + 0x13, 0x9F, 0x7E, 0xFE, 0xD8, 0x71, 0xC2, 0xD1, 0x50, 0xA6, 0xEE, 0x83, 0xF3, 0x77, 0x5B, 0x0C, + 0x44, 0x9E, 0xF1, 0x82, 0x8F, 0x46, 0xD9, 0x5C, 0x01, 0x2D, 0x1A, 0x1C, 0x84, 0xCF, 0xCD, 0x65, + 0xF5, 0x02, 0x0C, 0xB9, 0x3B, 0x95, 0x21, 0x8A, 0xA8, 0xEB, 0x57, 0xAD, 0xC2, 0xA3, 0xA1, 0x56, + 0xFF, 0x9D, 0x68, 0xEA, 0xEA, 0x7E, 0xCB, 0xE5, 0x50, 0xA8, 0x00, 0xB6, 0x47, 0x83, 0x50, 0x7D, + 0xF4, 0x02, 0x7F, 0xC6, 0x9F, 0xE9, 0xF1, 0x97, 0x09, 0xCA, 0x9E, 0x11, 0x5C, 0xE8, 0x81, 0xC9, + 0x2F, 0x49, 0x14, 0x3C, 0x4D, 0x20, 0x7D, 0x9A, 0x7E, 0x7E, 0x76, 0x86, 0xB3, 0xFD, 0x38, 0xC7, + 0xB6, 0xE3, 0xA0, 0x2A, 0x7D, 0x85, 0xA4, 0x2F, 0xF0, 0x75, 0xAE, 0x54, 0xEB, 0xA1, 0xED, 0x11, + 0x24, 0x27, 0x43, 0xAB, 0x63, 0x39, 0xAA, 0x7A, 0xD6, 0x7D, 0x1C, 0xAF, 0x34, 0xB6, 0xE3, 0xFE, + 0x32, 0x5D, 0x09, 0xED, 0xF8, 0xFC, 0x0B, 0x42, 0x4F, 0x6C, 0xEB, 0x33, 0x7C, 0x69, 0x39, 0xCA, + 0x34, 0xA7, 0x48, 0x07, 0x3B, 0x75, 0x01, 0x1A, 0xE8, 0x94, 0xB3, 0x8D, 0x6B, 0x44, 0xFB, 0x34, + 0x7D, 0x9C, 0x5E, 0xB4, 0x52, 0x4E, 0xF5, 0xA5, 0x65, 0xC1, 0xAB, 0x71, 0x1D, 0x8F, 0x85, 0x44, + 0x35, 0xB1, 0x4D, 0x67, 0xB5, 0x13, 0x9A, 0x8C, 0xD8, 0x33, 0xC5, 0x27, 0xD4, 0x8A, 0x18, 0x7A, + 0x46, 0x11, 0xC3, 0xE1, 0xAD, 0x8A, 0x18, 0x7A, 0x3D, 0x7F, 0xEC, 0x84, 0xC3, 0x51, 0x5B, 0x29, + 0xF7, 0x1F, 0x3C, 0x0E, 0x7D, 0x6F, 0xDA, 0x96, 0xFC, 0xE0, 0x60, 0x3F, 0xF4, 0x7D, 0xB7, 0x2D, + 0xF9, 0xE1, 0x41, 0xE8, 0xFB, 0x5E, 0x4D, 0xC0, 0x55, 0xFA, 0xF7, 0x0E, 0x9C, 0x52, 0x05, 0xB9, + 0x40, 0x03, 0xE1, 0xD0, 0xFF, 0x3D, 0xB7, 0xFE, 0x9F, 0xD3, 0xA3, 0xC9, 0xCB, 0xF4, 0x73, 0x7A, + 0x14, 0xF8, 0x11, 0xED, 0xF3, 0x8A, 0x97, 0xDF, 0xE7, 0xEC, 0xAF, 0x7C, 0x43, 0x13, 0xD1, 0x26, + 0xDD, 0x8C, 0xF2, 0x6A, 0xA0, 0x29, 0x51, 0x3F, 0xAA, 0x53, 0xB6, 0x3F, 0x47, 0xC3, 0x61, 0x30, + 0xDC, 0xB3, 0xF1, 0x76, 0x04, 0xB7, 0xFF, 0xA8, 0x89, 0xDD, 0xA0, 0x26, 0xD0, 0xB3, 0xF1, 0xEE, + 0xAE, 0xE7, 0x3A, 0x4E, 0xAF, 0xB1, 0x45, 0x7E, 0xC6, 0x73, 0xFD, 0x41, 0x0F, 0xF4, 0x08, 0x1C, + 0x27, 0x6C, 0x04, 0x71, 0x0A, 0x54, 0xAD, 0x85, 0xBE, 0x0D, 0x87, 0xF7, 0x40, 0x58, 0xA9, 0x4E, + 0x70, 0x2D, 0x65, 0xCD, 0xDE, 0x5C, 0x16, 0xD1, 0x59, 0xB6, 0x43, 0x66, 0xBD, 0x5E, 0xA6, 0xC4, + 0x7E, 0x9E, 0x2D, 0x66, 0x54, 0xD6, 0x81, 0xCA, 0x3A, 0xE4, 0xBD, 0x46, 0xA9, 0x11, 0xD5, 0xA0, + 0xD7, 0x54, 0x83, 0x9A, 0xD5, 0x68, 0x41, 0x44, 0x55, 0xA3, 0xE7, 0xAC, 0x4A, 0x66, 0x43, 0xD5, + 0x5D, 0x48, 0x2A, 0xFB, 0x92, 0x09, 0xC5, 0x19, 0x39, 0x8D, 0x5C, 0xD3, 0x7B, 0x96, 0x16, 0xBF, + 0xC2, 0x4B, 0xE0, 0x94, 0xAE, 0xB4, 0xAD, 0xF4, 0xCF, 0xD9, 0x5C, 0x44, 0xE4, 0x13, 0x17, 0x57, + 0x53, 0x5C, 0xD7, 0x7C, 0x37, 0x09, 0x54, 0x7A, 0x6E, 0x4D, 0xE9, 0x22, 0xEB, 0xF5, 0x94, 0x6E, + 0x88, 0xD0, 0x2F, 0xE1, 0xBA, 0x21, 0xF3, 0xBC, 0xD7, 0x5B, 0x08, 0xAD, 0x10, 0x03, 0x91, 0xD4, + 0x10, 0x21, 0xBA, 0x86, 0x48, 0x68, 0x8B, 0x0C, 0x06, 0x28, 0x12, 0x91, 0x44, 0xB9, 0x55, 0x54, + 0xD5, 0x92, 0x2D, 0x98, 0x44, 0xD9, 0x2C, 0x81, 0x16, 0x4C, 0x4A, 0x6D, 0x6F, 0x83, 0xC2, 0x44, + 0x57, 0x81, 0xC9, 0xBA, 0xDD, 0x4C, 0xA9, 0xC0, 0x90, 0x23, 0xBB, 0xD7, 0x4B, 0x76, 0x23, 0xC5, + 0x01, 0xB3, 0x90, 0x0C, 0x49, 0x45, 0xEE, 0xB4, 0x86, 0x51, 0xD4, 0x38, 0xED, 0x76, 0xD3, 0xC6, + 0x1A, 0x67, 0xB2, 0x96, 0x69, 0x63, 0x2D, 0x33, 0x59, 0xB3, 0x54, 0x3C, 0xF5, 0x1B, 0x0D, 0xFD, + 0xF1, 0x74, 0x2B, 0x8A, 0xC0, 0xA0, 0x91, 0x80, 0xD1, 0x24, 0xA2, 0xA8, 0xF4, 0xE4, 0x56, 0x81, + 0x90, 0xB4, 0xCB, 0x27, 0xA6, 0x13, 0x61, 0x6E, 0xCF, 0x31, 0xE5, 0x43, 0x80, 0x81, 0x86, 0xA3, + 0xED, 0x3A, 0xEF, 0x2E, 0x24, 0x28, 0x43, 0x09, 0x4A, 0xA5, 0x6E, 0x3C, 0x5A, 0x6A, 0x02, 0x23, + 0x70, 0xCF, 0xDD, 0x85, 0xEC, 0x70, 0x5B, 0x1E, 0x12, 0xFA, 0x8E, 0x65, 0xDA, 0x2C, 0xEB, 0x46, + 0xDE, 0xD4, 0x8F, 0x22, 0xDB, 0xF7, 0x07, 0xDD, 0xCC, 0xD9, 0x0B, 0xBC, 0xD0, 0xF7, 0x07, 0xEC, + 0x7B, 0xE0, 0xB2, 0x6F, 0x6F, 0x18, 0x8E, 0xF9, 0x93, 0x3C, 0x94, 0x4A, 0xED, 0x7B, 0x3B, 0x89, + 0xA4, 0x33, 0x5D, 0x89, 0xA9, 0xD7, 0x4B, 0x17, 0x0E, 0x6B, 0x85, 0xC1, 0xCC, 0xC9, 0x76, 0x76, + 0xA2, 0x11, 0xCA, 0x36, 0x51, 0x22, 0xDA, 0xED, 0x44, 0x2B, 0xA2, 0x4A, 0xDB, 0x9E, 0xAF, 0x95, + 0x57, 0x4B, 0x0C, 0xC2, 0x01, 0x5A, 0x47, 0x27, 0xDB, 0x29, 0x2F, 0x78, 0xB9, 0xB3, 0xE6, 0x6A, + 0xFF, 0x4B, 0x4D, 0x5A, 0xA0, 0xCA, 0x49, 0x84, 0xE7, 0xCB, 0x5E, 0x6F, 0x81, 0x3C, 0x7F, 0xB2, + 0x15, 0xD9, 0xDE, 0xD4, 0xEF, 0x26, 0x8E, 0x73, 0xB5, 0xDC, 0xDE, 0x46, 0xB9, 0x3A, 0x51, 0x29, + 0x0C, 0xFC, 0x29, 0x6B, 0xDD, 0x04, 0x29, 0x6A, 0x47, 0x41, 0x37, 0x29, 0xF2, 0xCD, 0x06, 0xF4, + 0xBF, 0x4E, 0xF6, 0xB2, 0x1D, 0xCF, 0x9F, 0xEC, 0x2D, 0xB7, 0xB7, 0x43, 0x3A, 0x8F, 0x41, 0x10, + 0xC2, 0x40, 0x24, 0xF8, 0xEE, 0x60, 0xB2, 0xD9, 0x64, 0xBB, 0x11, 0x08, 0x17, 0x17, 0x65, 0x26, + 0x7B, 0x9B, 0x0D, 0xC8, 0x4F, 0x14, 0x45, 0x19, 0x9B, 0x99, 0x45, 0x36, 0x27, 0xCC, 0x76, 0xB8, + 0xFA, 0xD5, 0x26, 0xDB, 0xF5, 0x3C, 0x6F, 0xE0, 0x79, 0x9E, 0x9E, 0x2C, 0x3A, 0x55, 0x55, 0x16, + 0xE4, 0xD3, 0x04, 0xB2, 0x3D, 0x98, 0xF1, 0x47, 0x4B, 0x4B, 0xCE, 0x84, 0x15, 0xBC, 0x88, 0x84, + 0xE0, 0x96, 0xBD, 0x65, 0xAF, 0x76, 0xD6, 0xCE, 0x66, 0xE3, 0xF9, 0x93, 0xAE, 0x9D, 0x47, 0x78, + 0xBE, 0x5A, 0xC8, 0xAF, 0x8C, 0x7D, 0xF5, 0x3C, 0xF5, 0x9D, 0xC0, 0xB7, 0xAF, 0xBE, 0x53, 0xF8, + 0x0E, 0x16, 0x8E, 0x33, 0x73, 0x04, 0x31, 0x39, 0x92, 0x54, 0xC9, 0x40, 0x22, 0x03, 0x29, 0x5A, + 0xF5, 0xA2, 0x01, 0x63, 0x35, 0x94, 0xC2, 0x58, 0x9D, 0x33, 0x0E, 0xA9, 0xAC, 0x6A, 0x81, 0x53, + 0xB6, 0x75, 0xEE, 0x40, 0x63, 0xAD, 0xAA, 0x5D, 0xBB, 0x6C, 0xE1, 0x28, 0x47, 0xFC, 0x05, 0xB0, + 0xC4, 0x59, 0x36, 0x5F, 0xE6, 0x38, 0x57, 0x2B, 0xFE, 0xF8, 0x82, 0xBF, 0xDC, 0x22, 0x47, 0xF6, + 0x49, 0x64, 0x07, 0x5E, 0x37, 0x77, 0x76, 0x76, 0x46, 0x9B, 0x51, 0xD0, 0xCD, 0xD0, 0x09, 0x90, + 0x60, 0xC2, 0x09, 0x82, 0x4E, 0xD4, 0x82, 0xAD, 0x94, 0xAF, 0x6F, 0x9D, 0xA0, 0xEB, 0x31, 0x19, + 0x31, 0x1E, 0xE3, 0x6A, 0x2C, 0x65, 0x75, 0x55, 0x97, 0xD5, 0x86, 0xCA, 0x7A, 0x43, 0xA8, 0xAC, + 0xE7, 0x6F, 0x6C, 0x56, 0x5D, 0x59, 0xEF, 0x04, 0x9D, 0x08, 0x19, 0x3C, 0x51, 0x32, 0x78, 0x52, + 0x93, 0x41, 0xCD, 0x43, 0x4C, 0x9D, 0x25, 0x03, 0x17, 0x58, 0x32, 0xF9, 0xF3, 0xC5, 0x92, 0x77, + 0xC5, 0x6D, 0xC4, 0xF8, 0x4C, 0x9A, 0xA1, 0xB4, 0xB4, 0x5E, 0x5A, 0xDA, 0xDC, 0x00, 0x63, 0xCE, + 0xFF, 0x89, 0xE2, 0xBF, 0x68, 0x8A, 0x44, 0x36, 0x45, 0x8A, 0x4E, 0x64, 0xE7, 0x3E, 0x91, 0x9D, + 0xBB, 0x81, 0xEF, 0x72, 0x0A, 0x89, 0x8B, 0xA2, 0x40, 0xBE, 0x3F, 0xFC, 0xA0, 0xA5, 0x64, 0x42, + 0xD8, 0x2C, 0xF1, 0xFD, 0x91, 0x79, 0x73, 0x44, 0xA2, 0xF9, 0x7C, 0x3C, 0x9A, 0xA0, 0xC9, 0x78, + 0xBA, 0x40, 0x73, 0xCF, 0x1B, 0x0E, 0x91, 0xE7, 0x0D, 0x27, 0x10, 0x1E, 0xB9, 0xC8, 0xF3, 0x46, + 0x1E, 0x0B, 0x0F, 0xFC, 0x21, 0xF2, 0x06, 0x23, 0x80, 0x19, 0x8C, 0x3D, 0xC4, 0x7E, 0x78, 0x38, + 0x60, 0xE1, 0x01, 0x0F, 0x8F, 0x58, 0x78, 0xCC, 0xC3, 0x53, 0x16, 0x06, 0x78, 0xB6, 0x00, 0xF3, + 0x86, 0x01, 0x0F, 0x0F, 0x7D, 0xE4, 0x0D, 0x87, 0x00, 0x33, 0xF2, 0x3C, 0xE4, 0x8D, 0x02, 0x17, + 0xC2, 0x83, 0x09, 0x62, 0x3F, 0x2C, 0x3C, 0x1E, 0xBA, 0xC8, 0x1B, 0x8F, 0x00, 0xE7, 0x78, 0x34, + 0x66, 0x61, 0x1E, 0x3F, 0x66, 0xF1, 0xE3, 0x80, 0x85, 0x27, 0xEE, 0x18, 0xB1, 0x1F, 0x1E, 0x9E, + 0xB2, 0x30, 0xE0, 0x9F, 0x0C, 0x5C, 0xE4, 0x4D, 0x46, 0x23, 0x16, 0x9E, 0x0E, 0x27, 0xC8, 0x9B, + 0x42, 0x5E, 0xDF, 0xF5, 0xC7, 0xC8, 0x77, 0x83, 0x21, 0x0B, 0x07, 0xEE, 0x10, 0xF9, 0x81, 0x3B, + 0x82, 0xF0, 0x68, 0x80, 0xD8, 0x0F, 0x0F, 0x4F, 0x91, 0x1F, 0x8C, 0x79, 0xFC, 0xC4, 0x43, 0xEC, + 0x87, 0x87, 0x19, 0xFC, 0x04, 0xF0, 0x0C, 0x5C, 0x1F, 0xF9, 0x03, 0x37, 0x80, 0x70, 0x10, 0x20, + 0xF6, 0x03, 0xE1, 0x29, 0x8B, 0x9F, 0xFA, 0x3C, 0x3C, 0x46, 0xFE, 0xD0, 0x65, 0xF5, 0xF2, 0x87, + 0xEE, 0x94, 0x85, 0xA7, 0x10, 0x0E, 0x5C, 0xE4, 0x0F, 0x03, 0xC0, 0x39, 0x1C, 0x79, 0xC8, 0x1F, + 0x8E, 0x00, 0x7E, 0xE4, 0xBB, 0x88, 0xFD, 0xF0, 0xF0, 0x90, 0x85, 0x81, 0x86, 0x51, 0xE0, 0x21, + 0x7F, 0x14, 0x70, 0x98, 0x80, 0xC5, 0x07, 0x63, 0x08, 0x8F, 0x7D, 0xE4, 0x8F, 0x80, 0x0F, 0xFE, + 0x68, 0x32, 0x45, 0xFE, 0x68, 0x0A, 0x79, 0xC7, 0x83, 0x09, 0x62, 0x3F, 0x10, 0x1E, 0x06, 0xC8, + 0x1F, 0x03, 0x9F, 0xFD, 0xF1, 0x70, 0x8A, 0xFC, 0xF1, 0x88, 0xC3, 0x8C, 0x86, 0x2C, 0x0C, 0x7C, + 0x18, 0x4F, 0x46, 0xC8, 0x1F, 0x4F, 0x00, 0x66, 0xE2, 0x8D, 0x11, 0xFB, 0x81, 0xF0, 0x78, 0x84, + 0xD8, 0x0F, 0x0F, 0x4F, 0x59, 0x18, 0xE8, 0x9F, 0x30, 0x9E, 0x4C, 0x26, 0x50, 0xEE, 0x64, 0x1A, + 0x20, 0xF6, 0xC3, 0xC2, 0x53, 0xC6, 0x93, 0xA9, 0x0B, 0x74, 0x4E, 0x07, 0x23, 0xC4, 0x7E, 0x16, + 0x68, 0x1E, 0xB8, 0xEE, 0x04, 0xB1, 0x1F, 0x08, 0xFB, 0x1E, 0x62, 0x3F, 0x2C, 0xEC, 0x05, 0x03, + 0x14, 0x78, 0x01, 0xC0, 0x78, 0x03, 0x1F, 0x05, 0xDE, 0x60, 0xC0, 0xC3, 0x23, 0x16, 0x9E, 0x42, + 0x78, 0x38, 0x46, 0x01, 0x97, 0xC3, 0xC0, 0x1F, 0xB9, 0x88, 0xFD, 0xF0, 0x70, 0xC0, 0xC2, 0x01, + 0x84, 0xC7, 0x2C, 0x7E, 0xCC, 0xE3, 0xC7, 0x23, 0x16, 0x1E, 0x43, 0x78, 0x3A, 0x41, 0x81, 0x3F, + 0x05, 0x3C, 0xC1, 0x34, 0x40, 0x41, 0x30, 0x65, 0xF5, 0x0D, 0x06, 0xEE, 0x10, 0xB1, 0x1F, 0x16, + 0x66, 0x6D, 0xC1, 0x7E, 0x78, 0x78, 0x82, 0x82, 0xE1, 0x80, 0x87, 0x19, 0x3D, 0xC3, 0x01, 0xAB, + 0x4B, 0x30, 0x0A, 0x02, 0xC4, 0x7E, 0x78, 0x78, 0x84, 0x82, 0x91, 0x88, 0x1F, 0x0E, 0x51, 0x30, + 0x82, 0xB6, 0x0B, 0xC6, 0x23, 0x0F, 0xB1, 0x1F, 0x1E, 0x1E, 0xB0, 0x30, 0x94, 0x3B, 0x1E, 0xB3, + 0xF8, 0x31, 0x87, 0x99, 0xB0, 0xF8, 0x09, 0xC4, 0x4F, 0x18, 0xCC, 0x04, 0xF8, 0x1F, 0x30, 0x1E, + 0x06, 0x9C, 0x87, 0xC1, 0x64, 0x3A, 0x64, 0x61, 0x11, 0x3F, 0x66, 0x61, 0xA8, 0xCB, 0x74, 0x18, + 0xA0, 0x60, 0x0A, 0xF2, 0x1C, 0x4C, 0x47, 0x13, 0x14, 0x4C, 0x39, 0xCE, 0xE9, 0x78, 0xC0, 0xC2, + 0x00, 0x3F, 0x65, 0xF8, 0xA7, 0x53, 0xA0, 0x61, 0x3A, 0x0D, 0xD0, 0xC0, 0xF5, 0x19, 0xDF, 0x06, + 0x6E, 0x30, 0x41, 0xEC, 0x87, 0x85, 0xBD, 0x81, 0x87, 0x06, 0x9C, 0xCF, 0x03, 0xC6, 0x67, 0xF6, + 0x03, 0xE1, 0xA1, 0x8B, 0x06, 0xDE, 0xD0, 0xE3, 0xE1, 0x80, 0x85, 0x03, 0x08, 0x4F, 0x06, 0x68, + 0xE0, 0x4D, 0x18, 0xFE, 0xC1, 0x60, 0x30, 0x41, 0x83, 0x11, 0xF4, 0xB5, 0xC1, 0x74, 0x38, 0x45, + 0xEC, 0x67, 0x81, 0xE6, 0xC3, 0xA9, 0x3B, 0x42, 0xC3, 0x29, 0xB4, 0xEF, 0x70, 0x1A, 0x4C, 0xD0, + 0x70, 0x0A, 0x3C, 0x1C, 0x4E, 0xC7, 0x2E, 0x1A, 0x4E, 0x61, 0x7C, 0x18, 0xB9, 0xAE, 0x8F, 0x46, + 0x2E, 0xF4, 0x97, 0x91, 0x3B, 0x9A, 0xA0, 0x91, 0x0B, 0xFC, 0x19, 0xB9, 0x63, 0x0F, 0x8D, 0x5C, + 0x68, 0xAF, 0x91, 0x3B, 0x19, 0x21, 0xF6, 0xC3, 0xC3, 0x53, 0x34, 0x72, 0xA1, 0xED, 0x46, 0x9E, + 0x3B, 0x45, 0xEC, 0x07, 0xC2, 0xC3, 0x21, 0x1A, 0x79, 0x20, 0xCF, 0xA3, 0xC0, 0x0B, 0x10, 0xFB, + 0x61, 0xE1, 0x41, 0xE0, 0xA3, 0xD1, 0x20, 0x18, 0xF0, 0xF0, 0x14, 0x8D, 0x06, 0x40, 0xC3, 0x68, + 0x30, 0x74, 0x11, 0xFB, 0xE1, 0xE1, 0x31, 0x0B, 0x03, 0x9E, 0xD1, 0x78, 0x8A, 0x46, 0xA3, 0x09, + 0xC4, 0x4F, 0x3D, 0x1F, 0x8D, 0xA6, 0xDE, 0x10, 0xC2, 0xA3, 0x01, 0x62, 0x3F, 0x3C, 0x3C, 0x42, + 0xA3, 0xE9, 0x98, 0xC3, 0x8C, 0x19, 0x0C, 0xF0, 0x7C, 0x34, 0x1D, 0x4F, 0x58, 0x98, 0xD5, 0x77, + 0xEC, 0x7A, 0x53, 0x34, 0x76, 0x7D, 0x46, 0xCF, 0x78, 0xE4, 0x8D, 0xD0, 0x98, 0xF7, 0xD9, 0xF1, + 0x68, 0x3C, 0x41, 0xE3, 0x11, 0xF4, 0x97, 0x89, 0xEF, 0x06, 0x68, 0xE2, 0x03, 0xDF, 0x26, 0x7E, + 0x30, 0x40, 0x13, 0x1F, 0xDA, 0x62, 0xE2, 0x4F, 0x26, 0x68, 0xE2, 0x43, 0x7B, 0x4D, 0x98, 0xAC, + 0x4E, 0x02, 0xE0, 0xCF, 0x64, 0xE0, 0xBA, 0x68, 0x32, 0x80, 0xF1, 0xC1, 0xF3, 0x83, 0xC0, 0x45, + 0xEC, 0x77, 0x08, 0x5F, 0x83, 0x81, 0x87, 0xD8, 0x2F, 0xA3, 0x63, 0x10, 0xB8, 0xDE, 0x00, 0xC1, + 0xAF, 0xF8, 0x9A, 0xC2, 0xD7, 0x94, 0x7F, 0x0D, 0x86, 0xEC, 0x0B, 0x5A, 0x77, 0x34, 0xF0, 0x19, + 0x6B, 0xD9, 0x2F, 0xFB, 0x1A, 0xBA, 0xFE, 0x00, 0x8D, 0x86, 0x2E, 0x8C, 0xC4, 0xA3, 0xA1, 0x3B, + 0x1C, 0xB1, 0x2F, 0xCE, 0x17, 0x36, 0xF9, 0x23, 0xF8, 0x85, 0xAF, 0xA1, 0xCF, 0xBE, 0xD8, 0x58, + 0xB5, 0x40, 0x79, 0x34, 0x9F, 0x8F, 0x26, 0xEE, 0x74, 0x8C, 0xD8, 0x2F, 0xA4, 0x4F, 0x3C, 0xD7, + 0x43, 0xEC, 0xD7, 0x17, 0x5F, 0x13, 0xF6, 0xE5, 0x79, 0xFC, 0x6B, 0xE8, 0xB3, 0xAF, 0xE1, 0x40, + 0x7C, 0x4D, 0xE1, 0x8B, 0xCF, 0x2E, 0x53, 0x6F, 0x10, 0x20, 0xF8, 0x33, 0x14, 0xDF, 0x30, 0xDF, + 0x4C, 0x3D, 0xE0, 0x36, 0x04, 0x78, 0xBA, 0x98, 0x8D, 0xA6, 0xBE, 0xC7, 0xE6, 0xA0, 0xA9, 0x0F, + 0xAD, 0xED, 0x79, 0xD3, 0x60, 0xE4, 0x23, 0xF8, 0xC3, 0xB0, 0x4F, 0xD9, 0x54, 0x31, 0x44, 0xFC, + 0x8F, 0xF8, 0x0E, 0x46, 0xEC, 0x7B, 0x04, 0x5C, 0x9C, 0x7A, 0xE3, 0xF1, 0xC8, 0x65, 0xDF, 0xD3, + 0xE9, 0x74, 0xC1, 0x5F, 0x76, 0x67, 0x33, 0x7D, 0x2A, 0x6C, 0xDA, 0x89, 0xC9, 0x9D, 0xD0, 0x1B, + 0x9C, 0xE5, 0x24, 0x4D, 0x22, 0x6B, 0x64, 0xA1, 0xAD, 0xCC, 0xB9, 0xCA, 0xAA, 0xDB, 0x32, 0x98, + 0xC0, 0x1D, 0x94, 0xF1, 0xB5, 0xB7, 0xE7, 0xA0, 0x8C, 0x2D, 0x28, 0x5C, 0x19, 0xE1, 0x22, 0x0F, + 0x05, 0xBE, 0xA3, 0x7D, 0xFA, 0x63, 0xE4, 0x81, 0x96, 0x34, 0x8F, 0xF1, 0xD1, 0x20, 0x18, 0xFA, + 0x88, 0xF5, 0x2F, 0x96, 0x77, 0xEA, 0xBA, 0xDE, 0x22, 0xF2, 0x79, 0xC8, 0x87, 0x90, 0x84, 0xF3, + 0xBC, 0xA9, 0x3B, 0x40, 0x03, 0xDF, 0x83, 0x97, 0xBA, 0x4C, 0x3A, 0x86, 0xDE, 0x22, 0xF2, 0x34, + 0x44, 0x03, 0x37, 0xF0, 0xD1, 0x70, 0xE8, 0xBB, 0x03, 0x0D, 0xFD, 0x28, 0x18, 0x0F, 0x06, 0xAC, + 0xFD, 0x87, 0x23, 0x3D, 0x76, 0xE8, 0x0E, 0x5C, 0x68, 0x79, 0xD7, 0x8C, 0x65, 0xA2, 0x3E, 0xF4, + 0x02, 0x13, 0xD6, 0x9F, 0x30, 0xD8, 0x60, 0x3C, 0x36, 0x62, 0x87, 0x2E, 0x93, 0xA4, 0xA1, 0xE7, + 0x39, 0x15, 0xA7, 0x29, 0x44, 0xB7, 0xB6, 0xA9, 0x6A, 0x4E, 0xE6, 0x78, 0x31, 0x77, 0x17, 0xFC, + 0xAF, 0xB7, 0x00, 0x5B, 0x1E, 0x17, 0xCB, 0x8B, 0x8A, 0xBD, 0x6E, 0xBC, 0x13, 0xF8, 0x7B, 0x6E, + 0x88, 0x77, 0x3C, 0x7F, 0xBC, 0xE7, 0x85, 0x98, 0xAF, 0x90, 0xF6, 0xB2, 0x39, 0x5E, 0x84, 0xE6, + 0xF3, 0x75, 0x38, 0xA1, 0x45, 0xE2, 0x91, 0x7E, 0x69, 0x5E, 0x80, 0x1C, 0xD9, 0x78, 0x87, 0xCE, + 0x5D, 0x56, 0xD6, 0x66, 0x83, 0x77, 0xE9, 0x3C, 0x63, 0xC5, 0x49, 0xFF, 0xAA, 0x1E, 0xDF, 0x08, + 0x65, 0xBB, 0x51, 0x0E, 0xDE, 0x5B, 0x49, 0x94, 0xF7, 0xB2, 0xDD, 0x5D, 0x0F, 0x31, 0x48, 0x02, + 0x90, 0x79, 0x44, 0x7A, 0x1E, 0x3F, 0xA5, 0x66, 0xFB, 0x66, 0x40, 0x47, 0x18, 0x3A, 0x47, 0x73, + 0xD2, 0x1A, 0x11, 0x65, 0x66, 0x60, 0xCB, 0x2B, 0xC0, 0xDB, 0x25, 0x23, 0x7B, 0x37, 0xF2, 0x02, + 0xCF, 0x1D, 0xFB, 0xDD, 0x2E, 0xDE, 0x89, 0xBC, 0xE9, 0x68, 0xE4, 0x0E, 0x19, 0x11, 0x3C, 0x38, + 0x81, 0x58, 0x7F, 0xE4, 0x7B, 0x03, 0x6F, 0xCF, 0x0F, 0x3D, 0xB6, 0xA0, 0x1B, 0x4E, 0x27, 0x1F, + 0xF8, 0x78, 0xEE, 0x8B, 0x8C, 0x48, 0x27, 0x0A, 0xB7, 0xD5, 0xC8, 0x57, 0xCF, 0xE6, 0xB2, 0xD6, + 0xD7, 0xDC, 0xD5, 0xB7, 0xDC, 0x31, 0x70, 0x5E, 0xBD, 0xE1, 0xBE, 0xD0, 0x0A, 0x55, 0xEA, 0xF9, + 0xCB, 0x98, 0x3F, 0x89, 0xD6, 0x34, 0xF6, 0xCF, 0x70, 0xB2, 0x22, 0xC9, 0x31, 0x3C, 0x7D, 0x71, + 0x8D, 0xE7, 0xBD, 0xCF, 0x8E, 0x8E, 0x72, 0xAC, 0x5E, 0xDE, 0xBD, 0x22, 0xF9, 0xC1, 0x65, 0xB2, + 0x64, 0x75, 0xE1, 0x8E, 0x71, 0xA4, 0x8F, 0x91, 0xCB, 0x64, 0xB9, 0x1F, 0xAF, 0xD7, 0xB9, 0x02, + 0x5C, 0x91, 0xD5, 0xE7, 0x39, 0xCE, 0x40, 0x97, 0xA4, 0x84, 0x4B, 0x13, 0x60, 0xC3, 0xF3, 0x38, + 0xCB, 0xA5, 0x31, 0xAB, 0xDB, 0x3C, 0x04, 0xA8, 0x65, 0x32, 0x11, 0x89, 0x07, 0x01, 0x27, 0x71, + 0xB2, 0x5A, 0x63, 0x55, 0xAA, 0x3A, 0xA1, 0x33, 0x49, 0x71, 0x0B, 0x60, 0x0A, 0xAB, 0x86, 0x32, + 0xB1, 0xC3, 0xDB, 0x63, 0x2B, 0x8A, 0xA4, 0xC7, 0xD4, 0xB2, 0x42, 0xBB, 0x54, 0xEE, 0x46, 0x18, + 0x90, 0x5D, 0xAB, 0xAE, 0x53, 0x1E, 0xDF, 0x69, 0x4C, 0xEC, 0x55, 0xCD, 0xAD, 0x69, 0x0D, 0xA1, + 0xB4, 0xFC, 0x2B, 0xAD, 0x21, 0x8C, 0x64, 0x00, 0x29, 0x4E, 0x95, 0xAF, 0xEA, 0x19, 0x85, 0xD1, + 0x00, 0x82, 0x34, 0x7E, 0x0B, 0x02, 0x3D, 0xA6, 0xB1, 0x95, 0xDC, 0x99, 0xB4, 0xA0, 0xAD, 0x93, + 0xC1, 0xBD, 0x92, 0x3A, 0x33, 0xFD, 0xA1, 0x6E, 0x9A, 0xD8, 0xCA, 0x46, 0xA2, 0x7C, 0x77, 0x51, + 0x12, 0x28, 0x73, 0xE0, 0x6E, 0x17, 0xDB, 0x4E, 0x71, 0x4B, 0xD1, 0xF1, 0xD9, 0x9E, 0x63, 0x12, + 0x8C, 0x06, 0xE3, 0x5B, 0xCB, 0x10, 0x6F, 0x22, 0xD5, 0x3C, 0xB5, 0x82, 0x76, 0x87, 0x78, 0x5C, + 0xB3, 0x82, 0x64, 0x41, 0xA6, 0xCE, 0x2A, 0xA6, 0x71, 0x67, 0x45, 0xF2, 0x65, 0x9C, 0xAD, 0xF0, + 0x0A, 0x75, 0xCE, 0x73, 0xDC, 0x39, 0x5A, 0xA7, 0x17, 0x1D, 0xB6, 0x65, 0xCB, 0xD2, 0x75, 0x87, + 0xA6, 0x9D, 0x18, 0xB8, 0xBC, 0x4E, 0x73, 0x92, 0x1C, 0x43, 0x06, 0x8B, 0xDB, 0xAE, 0xA9, 0x33, + 0xA9, 0x66, 0x25, 0xB3, 0xB1, 0x57, 0xE8, 0x12, 0xE6, 0x54, 0x5E, 0x77, 0x34, 0x75, 0x83, 0x6F, + 0x45, 0x52, 0xA8, 0x83, 0xA0, 0x1A, 0xF2, 0x28, 0x35, 0xC1, 0x19, 0xF4, 0x09, 0xDB, 0x99, 0xE5, + 0x98, 0xBE, 0x24, 0xA7, 0x38, 0x3D, 0xA7, 0xBA, 0x37, 0x25, 0x1D, 0xC4, 0x69, 0x68, 0xBE, 0x0F, + 0x21, 0xA5, 0xD0, 0xB1, 0x63, 0xC6, 0x98, 0x68, 0xCB, 0xD5, 0x4E, 0x38, 0x37, 0x9B, 0xFB, 0x31, + 0xC5, 0xFD, 0x24, 0xBD, 0xB0, 0x1D, 0xDD, 0x83, 0x77, 0x9D, 0xD7, 0xBB, 0x75, 0x3E, 0xD7, 0xAC, + 0x83, 0x69, 0xB9, 0xE6, 0x75, 0x70, 0xB6, 0x0C, 0x32, 0x44, 0x9A, 0xC9, 0x11, 0x1C, 0x6B, 0x95, + 0x78, 0x70, 0xB4, 0x5B, 0x12, 0xB4, 0x4D, 0x76, 0x23, 0xCF, 0xDF, 0xBB, 0x91, 0x6B, 0x2E, 0xC2, + 0x8E, 0x23, 0xAD, 0x2D, 0x6A, 0xF1, 0x04, 0x95, 0xCE, 0xBF, 0xA0, 0x49, 0xF2, 0xFE, 0x32, 0xA6, + 0xCB, 0x13, 0xF0, 0xA1, 0x65, 0x83, 0x63, 0xF5, 0x27, 0x64, 0x99, 0xA5, 0x34, 0xCE, 0x5F, 0x73, + 0xD4, 0x57, 0x5C, 0x78, 0x71, 0xE1, 0x38, 0xE8, 0x79, 0x96, 0x9E, 0x92, 0x1C, 0xF7, 0x33, 0x9C, + 0xA7, 0xEB, 0x37, 0xD8, 0xDE, 0xF2, 0x1C, 0xC7, 0x71, 0xFA, 0xF4, 0x04, 0x27, 0x36, 0x96, 0x87, + 0x84, 0x59, 0xB5, 0x33, 0x36, 0xD5, 0x1B, 0x8E, 0x70, 0xBA, 0xDD, 0x72, 0x36, 0xD0, 0x53, 0xD5, + 0x08, 0xA2, 0xB5, 0xF8, 0x76, 0xD9, 0xE2, 0x55, 0x6E, 0x38, 0xDA, 0x71, 0xEA, 0xED, 0x5A, 0x69, + 0xAF, 0xA1, 0x87, 0xEC, 0x0E, 0x4B, 0x97, 0x53, 0xFA, 0x5C, 0xD4, 0x30, 0x1A, 0x95, 0x4E, 0xBA, + 0x0C, 0x0C, 0x35, 0x89, 0xAB, 0x8F, 0x4A, 0x37, 0xE4, 0x34, 0x7B, 0xAC, 0x83, 0x6E, 0xD3, 0x39, + 0xA4, 0x9F, 0xC1, 0x86, 0x9A, 0xAB, 0x4E, 0x5F, 0x52, 0x50, 0x49, 0xB8, 0x79, 0x32, 0x75, 0x9A, + 0xA6, 0x43, 0xF1, 0xD6, 0xAC, 0x28, 0xCC, 0xB5, 0x42, 0xC2, 0x16, 0x1F, 0x1F, 0x66, 0x79, 0x8E, + 0xA6, 0x2F, 0x8E, 0x0F, 0xD5, 0xCD, 0x23, 0x58, 0x04, 0xDC, 0x4F, 0xD7, 0x69, 0x56, 0x3D, 0x5D, + 0xBA, 0xF3, 0xF3, 0xF6, 0xFC, 0xCB, 0x55, 0xBC, 0x7D, 0xB4, 0x70, 0xBE, 0xBC, 0xD3, 0x14, 0xFC, + 0x68, 0xA3, 0x20, 0xAE, 0xFC, 0x42, 0x4B, 0xA9, 0x7F, 0xE9, 0xA0, 0x81, 0x91, 0x58, 0xFB, 0xD2, + 0x41, 0x07, 0x46, 0x62, 0xED, 0xEB, 0xA3, 0x3B, 0x28, 0x8F, 0xEE, 0xFC, 0xBC, 0x88, 0xE9, 0x7D, + 0x74, 0x67, 0xA6, 0x0C, 0xCB, 0x65, 0xD5, 0x3B, 0x15, 0x2A, 0x0D, 0x16, 0x7A, 0x23, 0x07, 0xE5, + 0x91, 0x5C, 0xED, 0xEE, 0xF8, 0x7B, 0x96, 0x6B, 0xF5, 0x48, 0x48, 0xA4, 0x32, 0x2F, 0x15, 0x4A, + 0xBC, 0x83, 0x50, 0xF4, 0x61, 0x32, 0x77, 0x17, 0x52, 0x81, 0x55, 0x5E, 0x0C, 0x49, 0xAD, 0x14, + 0x11, 0x61, 0xE7, 0xBD, 0xDC, 0x11, 0xA2, 0xE7, 0xA2, 0xC0, 0x51, 0x3A, 0x27, 0x12, 0xBE, 0x97, + 0xB3, 0x86, 0xD4, 0x78, 0xAD, 0xDF, 0xDF, 0x82, 0x62, 0x8A, 0x3E, 0x79, 0x53, 0xA0, 0x57, 0xBB, + 0xE2, 0x67, 0x5D, 0x19, 0x3C, 0x1B, 0x2B, 0x57, 0x75, 0x56, 0x76, 0x7C, 0x18, 0x5A, 0x8E, 0x73, + 0x45, 0x23, 0x2A, 0x0A, 0x1E, 0x94, 0x53, 0x35, 0xE9, 0xE3, 0xB7, 0x78, 0x69, 0xF3, 0x71, 0x4E, + 0xB3, 0x62, 0x80, 0xE7, 0xDE, 0x62, 0xCF, 0x1B, 0x86, 0x78, 0x3E, 0x58, 0xEC, 0xF9, 0x43, 0x16, + 0x18, 0x2F, 0xF6, 0x06, 0xEE, 0x74, 0x18, 0xC2, 0xBD, 0xAB, 0x74, 0xAE, 0x04, 0x76, 0xCE, 0xB2, + 0xF4, 0x3C, 0x59, 0xD9, 0xCA, 0x62, 0x24, 0xCB, 0xBB, 0xD9, 0xB0, 0x9C, 0xEC, 0x77, 0x0C, 0xBF, + 0x9E, 0xBB, 0x40, 0xDE, 0xC8, 0xB9, 0x43, 0x3F, 0xF1, 0x87, 0x43, 0x07, 0x35, 0x67, 0xF3, 0x01, + 0x74, 0x08, 0xBF, 0x13, 0x9E, 0xCD, 0xBB, 0x45, 0xB6, 0x00, 0x40, 0x47, 0xF0, 0x3B, 0xE5, 0xD9, + 0x7C, 0x3D, 0xDB, 0xA2, 0x50, 0x87, 0xDB, 0x15, 0xD6, 0x7C, 0xD7, 0x72, 0xD8, 0x30, 0xA3, 0x18, + 0xE3, 0x39, 0x28, 0x97, 0x0C, 0xE9, 0x76, 0xE7, 0x01, 0x1A, 0xA1, 0x29, 0xF2, 0xFC, 0x45, 0x9F, + 0x24, 0xCB, 0xF5, 0xF9, 0x0A, 0xE7, 0xB6, 0xDC, 0x89, 0x38, 0x8E, 0x36, 0xB7, 0x88, 0xB8, 0x3B, + 0x01, 0x22, 0xD1, 0xDC, 0x45, 0x2E, 0x72, 0xAB, 0x26, 0xB7, 0x02, 0x70, 0x2C, 0x51, 0x37, 0xAE, + 0x29, 0x0B, 0xC6, 0x9F, 0xE4, 0x08, 0x7F, 0x92, 0xF7, 0xB0, 0xC3, 0xE8, 0x9E, 0x91, 0x79, 0xBE, + 0x88, 0x40, 0x01, 0x61, 0x2F, 0xDB, 0xD9, 0x19, 0x84, 0x3E, 0x0F, 0xC2, 0x2D, 0x13, 0xDE, 0xCB, + 0x76, 0x77, 0x07, 0x61, 0xB6, 0xBB, 0x3B, 0x91, 0x47, 0xC7, 0x04, 0x6E, 0x1F, 0xF5, 0xDE, 0x6A, + 0xDC, 0xB0, 0x7B, 0x23, 0x51, 0xF2, 0x9C, 0xA0, 0x1C, 0x25, 0x8B, 0x08, 0x8B, 0xD6, 0xFB, 0x8A, + 0x89, 0xC6, 0x47, 0x57, 0x19, 0x37, 0x85, 0x7D, 0x87, 0x85, 0x72, 0x15, 0x4A, 0x58, 0xE8, 0x2B, + 0xB6, 0x85, 0x19, 0x8F, 0xDD, 0x0F, 0x19, 0x45, 0x9E, 0xDF, 0xFD, 0xE1, 0xE3, 0x67, 0x77, 0xEF, + 0xBF, 0x7A, 0xFC, 0xE8, 0xC9, 0xA3, 0x97, 0xA5, 0xAE, 0x82, 0x19, 0xED, 0xE1, 0x71, 0x81, 0x46, + 0xC1, 0xF0, 0x03, 0x37, 0x4B, 0xF7, 0x97, 0xF9, 0xA7, 0xB0, 0x9A, 0x67, 0x7B, 0xC6, 0xFB, 0xCB, + 0x1C, 0x46, 0xC8, 0x86, 0x7D, 0x93, 0xB2, 0x3B, 0x32, 0x19, 0x0F, 0x7C, 0xE1, 0xB0, 0x6D, 0x3C, + 0x76, 0x1D, 0x04, 0x16, 0x0C, 0xF5, 0xAC, 0xED, 0x17, 0xFB, 0x7C, 0xDB, 0x90, 0x29, 0xCB, 0xDC, + 0x4B, 0x30, 0x3E, 0x07, 0x76, 0xDE, 0x4D, 0x5B, 0x3A, 0x51, 0xAA, 0xDE, 0x37, 0x6B, 0xC6, 0x48, + 0x64, 0xFE, 0x87, 0x87, 0x11, 0xCC, 0xEC, 0x45, 0xE9, 0x76, 0x71, 0xF9, 0x3A, 0xBA, 0x3A, 0x8B, + 0xCF, 0x73, 0xBC, 0x0A, 0xB7, 0x3C, 0xB4, 0x4E, 0xD3, 0xB3, 0xE7, 0x69, 0x4E, 0x58, 0x7B, 0x86, + 0x2E, 0x3A, 0x8A, 0xD7, 0xEB, 0x97, 0x27, 0x59, 0x7A, 0x7E, 0x7C, 0x12, 0x6E, 0x79, 0x45, 0xF5, + 0xD5, 0xF2, 0x6D, 0xC8, 0x6A, 0x29, 0x59, 0x52, 0xAB, 0xDE, 0x1C, 0x0B, 0x56, 0xF2, 0x01, 0x52, + 0xF9, 0x8B, 0x37, 0x8B, 0x99, 0xE3, 0xD2, 0x44, 0xAD, 0x16, 0x17, 0xCD, 0x17, 0x15, 0x57, 0xE0, + 0x7A, 0xAA, 0x5C, 0xF4, 0x10, 0xB5, 0x22, 0xBD, 0x12, 0xD5, 0x08, 0x81, 0xA2, 0x72, 0x74, 0x92, + 0x5D, 0x95, 0x3A, 0xB3, 0x6D, 0x6F, 0x0B, 0x0C, 0x21, 0x12, 0xE5, 0x76, 0x15, 0x79, 0x4E, 0x51, + 0xF0, 0x6B, 0x73, 0x45, 0x6A, 0x95, 0x0D, 0x40, 0x9F, 0x61, 0xDE, 0x5C, 0x4B, 0x29, 0x72, 0x4C, + 0x45, 0xCE, 0x87, 0x62, 0x56, 0xAE, 0x61, 0x78, 0x78, 0x18, 0x61, 0x65, 0x56, 0x4B, 0x2D, 0xE7, + 0x39, 0xAF, 0xE4, 0x60, 0x50, 0xB1, 0x9C, 0xCC, 0xDB, 0xB0, 0xCF, 0x9B, 0x70, 0x4F, 0x8F, 0xD2, + 0xDB, 0x72, 0xDB, 0x0B, 0x1B, 0x70, 0xE9, 0xF6, 0x96, 0xF5, 0xE4, 0x39, 0x5E, 0xF4, 0xCF, 0x93, + 0x93, 0x34, 0x7D, 0xCD, 0x16, 0x7A, 0xB3, 0x7A, 0x39, 0xE5, 0x2E, 0xA1, 0x59, 0xEA, 0x0A, 0xC8, + 0x6B, 0x6C, 0x8D, 0x0C, 0x43, 0x69, 0x02, 0x0E, 0x9B, 0x48, 0x6A, 0x2C, 0xDB, 0x6C, 0x52, 0x74, + 0x1B, 0x16, 0x34, 0x56, 0x4A, 0xF9, 0x4B, 0xD7, 0x2A, 0x05, 0x64, 0x51, 0xA1, 0x04, 0x57, 0xE1, + 0xBC, 0xAD, 0x51, 0x86, 0xAC, 0x4F, 0x9F, 0x3D, 0xFB, 0xCC, 0x62, 0xA3, 0x12, 0xDB, 0xA4, 0x6B, + 0xD6, 0x60, 0xAF, 0xA1, 0x26, 0x6F, 0xA1, 0x26, 0x67, 0xD4, 0xE4, 0x55, 0x6A, 0xF2, 0x45, 0xBF, + 0x44, 0x7D, 0x0B, 0x82, 0x9E, 0x7F, 0xFE, 0xD2, 0x42, 0x60, 0x31, 0xC7, 0xD0, 0x6F, 0x72, 0x04, + 0x06, 0xA7, 0x10, 0x0D, 0x86, 0xC5, 0xAE, 0xA6, 0x85, 0x58, 0xE1, 0xAB, 0x6A, 0xCB, 0x43, 0x2D, + 0xE4, 0x82, 0x9F, 0x94, 0xF2, 0xBC, 0x40, 0x6F, 0xF5, 0x6E, 0xD7, 0xCE, 0xA3, 0x76, 0x09, 0x43, + 0x24, 0xA2, 0x52, 0xB3, 0x43, 0x00, 0x68, 0xE3, 0x07, 0x6A, 0x94, 0x22, 0x07, 0x6D, 0x65, 0xDD, + 0xEE, 0x16, 0x9B, 0x7E, 0x88, 0x50, 0x26, 0x60, 0xEC, 0x02, 0x55, 0xC8, 0x2A, 0xBB, 0x64, 0x05, + 0x1D, 0xB4, 0xE5, 0x6E, 0x31, 0x78, 0x60, 0x2A, 0x39, 0xB2, 0x49, 0x87, 0x24, 0x39, 0x8D, 0x93, + 0x25, 0x4E, 0x8F, 0x3A, 0x62, 0xA7, 0x62, 0xEE, 0x70, 0xCD, 0x52, 0x5D, 0xD4, 0x56, 0x09, 0xDD, + 0x73, 0xAD, 0x49, 0x3E, 0xE3, 0x18, 0x61, 0x05, 0x16, 0x8A, 0x48, 0x55, 0x7C, 0x1B, 0xA5, 0xAC, + 0x7A, 0x7F, 0x3A, 0xB4, 0xB9, 0x88, 0x14, 0x37, 0x8B, 0xD0, 0xE7, 0x4F, 0xB9, 0x54, 0x63, 0xD9, + 0xA5, 0x5B, 0x3A, 0x6F, 0x21, 0x06, 0x53, 0x6E, 0x9A, 0x3E, 0xEB, 0x3F, 0x8F, 0xB3, 0xF8, 0x34, + 0x9F, 0xC5, 0xFD, 0x78, 0xB5, 0x82, 0xB0, 0xED, 0x56, 0xE6, 0xBF, 0xFA, 0xC4, 0x55, 0x1D, 0xD9, + 0x54, 0x5F, 0x5F, 0x71, 0xCB, 0x56, 0x72, 0x1B, 0x02, 0xA8, 0xA3, 0x58, 0x4E, 0x16, 0x84, 0x3E, + 0x26, 0xA7, 0x84, 0x46, 0x5B, 0x9E, 0x18, 0x42, 0x24, 0x1A, 0x01, 0x88, 0x95, 0xDB, 0xC9, 0xCD, + 0x06, 0xF7, 0x79, 0xE4, 0xDC, 0x5D, 0xEC, 0xE1, 0xBE, 0x30, 0xB3, 0x1F, 0xC6, 0x8D, 0xE5, 0xE8, + 0x88, 0xB5, 0x1E, 0x6D, 0x26, 0x4A, 0xD3, 0x1B, 0x90, 0x57, 0x38, 0x68, 0x6B, 0xEC, 0x6C, 0x5A, + 0x11, 0x92, 0x9E, 0xC4, 0x5C, 0x63, 0xA8, 0x69, 0xAA, 0x8D, 0x0C, 0x57, 0xEB, 0xB1, 0x52, 0xD7, + 0x50, 0xEF, 0x77, 0x12, 0xD2, 0x81, 0x68, 0xA5, 0x93, 0xCC, 0x57, 0x90, 0x3A, 0x63, 0xB5, 0x72, + 0x0C, 0x9E, 0x3A, 0x88, 0x36, 0x89, 0x9E, 0x92, 0x3D, 0xBE, 0x77, 0x87, 0xCD, 0x7F, 0x63, 0x53, + 0xB4, 0xF2, 0x0F, 0xCE, 0x17, 0x4C, 0x1F, 0xBA, 0xB7, 0xCE, 0x4A, 0x41, 0xEF, 0xC0, 0xF5, 0x3E, + 0xD0, 0xF8, 0xE8, 0x83, 0x7C, 0x19, 0x9F, 0xE1, 0x03, 0xFC, 0x8B, 0xE7, 0x38, 0x59, 0x62, 0xB1, + 0x78, 0xA2, 0xFD, 0xEF, 0xBF, 0x1C, 0xBA, 0xEE, 0xAB, 0x97, 0x2F, 0xEE, 0x3E, 0x3D, 0x78, 0xF4, + 0xF2, 0xD1, 0xB3, 0xA7, 0xAF, 0x5E, 0xDE, 0xBD, 0xF7, 0xF8, 0x41, 0x44, 0xFB, 0x2F, 0xB3, 0x38, + 0xE1, 0x9D, 0xE8, 0x65, 0x7C, 0xB8, 0xC6, 0x4D, 0x47, 0xDB, 0x83, 0xEA, 0x12, 0x6D, 0xE4, 0xB3, + 0x50, 0xCA, 0x42, 0xC1, 0xD0, 0x93, 0xC7, 0xDD, 0x71, 0xA3, 0x90, 0x53, 0xC0, 0x5A, 0xB9, 0xCD, + 0xE1, 0x66, 0xF2, 0xEE, 0xF3, 0x2D, 0x97, 0x66, 0x7B, 0x0F, 0x80, 0xF9, 0x45, 0x06, 0xDE, 0xD9, + 0x19, 0x6C, 0xA8, 0x53, 0xC4, 0xAB, 0x55, 0xE9, 0x01, 0xAD, 0x04, 0x9A, 0xD3, 0x9D, 0x9D, 0xC9, + 0x06, 0x2F, 0x22, 0xC2, 0xE0, 0x72, 0xEE, 0xDF, 0x3D, 0xB9, 0x2C, 0x41, 0x4D, 0x8F, 0x00, 0x4A, + 0x43, 0x2F, 0x93, 0x3E, 0x00, 0x74, 0x2C, 0xF3, 0x6C, 0xA1, 0x10, 0x15, 0x75, 0x96, 0xC4, 0xA5, + 0x8E, 0xDC, 0xC8, 0x9D, 0xB5, 0xF2, 0x52, 0xAD, 0xF5, 0x4D, 0x7F, 0x16, 0xB1, 0xCD, 0x76, 0x6B, + 0x0E, 0xA2, 0x11, 0xD4, 0xBD, 0x1F, 0x9F, 0x9D, 0xAD, 0x2F, 0x61, 0x19, 0x88, 0x38, 0x33, 0xFC, + 0xE1, 0xC8, 0x71, 0x84, 0xBD, 0x5D, 0xBE, 0xBA, 0xA7, 0x8E, 0x83, 0x48, 0x04, 0x6E, 0x9D, 0xA2, + 0x5D, 0xB5, 0x35, 0x61, 0x9D, 0x8B, 0x35, 0x48, 0xE0, 0x23, 0xCF, 0x1F, 0xF3, 0x36, 0x71, 0x91, + 0x3F, 0x70, 0xA4, 0xB1, 0x5B, 0x7F, 0xE8, 0x20, 0x1E, 0x14, 0x85, 0x64, 0x88, 0xD8, 0xFE, 0x04, + 0x05, 0xBE, 0x23, 0xD7, 0x80, 0x09, 0xE4, 0xF1, 0x06, 0xC2, 0x66, 0x2F, 0xEC, 0x8E, 0x52, 0xEE, + 0xE0, 0x43, 0x6B, 0x10, 0x8F, 0xFB, 0xA8, 0x96, 0x3C, 0xCD, 0x91, 0x8B, 0x7C, 0x16, 0x95, 0x38, + 0x65, 0xE4, 0xDC, 0x1F, 0x20, 0x1F, 0x74, 0x4D, 0x10, 0x5C, 0x3F, 0xA6, 0x28, 0x30, 0x73, 0x11, + 0xDB, 0xF3, 0x27, 0xC8, 0x63, 0xD2, 0xD3, 0x94, 0x36, 0x18, 0x20, 0x6F, 0xE8, 0x9B, 0x69, 0xB6, + 0x37, 0x1C, 0xA1, 0x94, 0xED, 0xDB, 0x64, 0x84, 0x3F, 0x46, 0x29, 0xF2, 0x3C, 0xE4, 0x95, 0x10, + 0x2C, 0x66, 0x80, 0x26, 0x3A, 0xBA, 0xB9, 0x07, 0x9A, 0x2E, 0x13, 0x04, 0x57, 0x9F, 0x0C, 0xC1, + 0xB8, 0x84, 0x1F, 0x72, 0x0C, 0x81, 0x8A, 0x19, 0x0C, 0x78, 0xCC, 0x54, 0xF3, 0x52, 0x23, 0x31, + 0x65, 0xC8, 0xAD, 0xD2, 0x9A, 0x21, 0x0F, 0x05, 0x1A, 0x01, 0xFE, 0x18, 0x81, 0x9B, 0x2C, 0x13, + 0x66, 0x82, 0x5C, 0x93, 0xA6, 0x0C, 0x05, 0xEC, 0x9F, 0x9E, 0x2D, 0x60, 0xC8, 0x4D, 0x98, 0x01, + 0x0A, 0xD0, 0x40, 0x87, 0x19, 0x20, 0x57, 0x45, 0x08, 0x98, 0x11, 0x0A, 0xD0, 0xC8, 0x8C, 0x1A, + 0xA2, 0x00, 0x0D, 0xF5, 0x6C, 0x43, 0xE4, 0xAA, 0x08, 0x01, 0xE3, 0xA3, 0x00, 0xF9, 0x3A, 0x8C, + 0xCF, 0x9A, 0x51, 0x46, 0x4C, 0x03, 0xE4, 0x55, 0xD9, 0x98, 0xA3, 0x09, 0x1A, 0xAA, 0x28, 0xC8, + 0xA3, 0x47, 0x48, 0x56, 0x8F, 0x10, 0x43, 0x06, 0xAD, 0x3F, 0x5E, 0xA0, 0x09, 0x1A, 0x55, 0xDB, + 0x96, 0x8B, 0x5C, 0x9D, 0x25, 0xF3, 0xC9, 0x04, 0x4D, 0x07, 0x68, 0x3A, 0x5C, 0x00, 0x07, 0xC7, + 0x66, 0xD9, 0xE3, 0x6A, 0x54, 0x66, 0x44, 0x81, 0x6C, 0x8C, 0x75, 0xD9, 0x60, 0xF4, 0x19, 0x10, + 0x53, 0x0F, 0x79, 0x7A, 0x53, 0x0B, 0x72, 0x46, 0x03, 0xDE, 0x5F, 0x02, 0x06, 0x6D, 0x26, 0x0D, + 0x26, 0x68, 0xE4, 0xB2, 0x94, 0x89, 0xC9, 0xF4, 0xF9, 0xC8, 0x45, 0x23, 0x0F, 0x8D, 0x7C, 0x34, + 0x0A, 0x16, 0x28, 0x40, 0x53, 0x33, 0x59, 0x65, 0x1C, 0x54, 0x33, 0x96, 0xA5, 0x0D, 0xAA, 0xA5, + 0x99, 0x38, 0x59, 0x3B, 0x8F, 0xCC, 0x9C, 0xA0, 0x5D, 0xE1, 0x30, 0x76, 0xAA, 0x14, 0xA8, 0xE3, + 0xA8, 0x0E, 0x2A, 0x0B, 0x19, 0x69, 0xFC, 0x28, 0xB1, 0x0C, 0x26, 0x0E, 0xD0, 0x3C, 0x6C, 0x4C, + 0x19, 0xD6, 0x53, 0x58, 0x6D, 0x06, 0x0E, 0x08, 0x51, 0x4B, 0x41, 0xC3, 0x3A, 0xEF, 0x04, 0xBA, + 0x41, 0x6B, 0x41, 0x1E, 0x9A, 0x2A, 0x79, 0x33, 0x53, 0xFC, 0x7A, 0xCA, 0x60, 0xC2, 0x0B, 0xF2, + 0x91, 0x57, 0xAB, 0xD2, 0x60, 0x82, 0x26, 0x2E, 0xC3, 0x57, 0x4F, 0x9A, 0x78, 0x68, 0x32, 0x69, + 0x4A, 0x9A, 0x4F, 0xA6, 0x68, 0xEA, 0xA2, 0xA9, 0xBF, 0x68, 0xCC, 0x37, 0x1D, 0xF1, 0xE2, 0x8C, + 0x34, 0x7B, 0xE2, 0x72, 0x01, 0x9A, 0x9A, 0x62, 0x38, 0x45, 0xAE, 0x8A, 0x82, 0x16, 0xD1, 0x23, + 0x4C, 0x99, 0x6F, 0x48, 0x11, 0x75, 0x9E, 0xC2, 0x09, 0x56, 0xA3, 0x14, 0x4D, 0xD1, 0x04, 0x79, + 0xD7, 0xC8, 0x0A, 0x64, 0xAD, 0x8E, 0x49, 0x30, 0x06, 0x79, 0xB5, 0xA2, 0x3C, 0x9F, 0xB1, 0xA3, + 0x29, 0x51, 0x50, 0xD8, 0x90, 0x96, 0x01, 0x13, 0xCA, 0x22, 0xF8, 0x18, 0x67, 0x44, 0x55, 0x70, + 0x34, 0xA5, 0x89, 0xCA, 0x78, 0xEE, 0x0D, 0xB5, 0xE1, 0x99, 0xEB, 0x94, 0x83, 0xC8, 0xB8, 0x35, + 0x2E, 0x65, 0xC8, 0x63, 0x03, 0x97, 0x67, 0x0C, 0x65, 0x66, 0x54, 0x85, 0xB8, 0xA6, 0x34, 0x89, + 0xDF, 0x6F, 0x69, 0x85, 0x81, 0xCC, 0xE7, 0x35, 0xCB, 0xBF, 0xE7, 0xC3, 0xFF, 0x2D, 0x23, 0x8B, + 0xE7, 0x5E, 0x97, 0x3A, 0xAD, 0x27, 0x66, 0xC8, 0x0B, 0xF8, 0xFF, 0xE6, 0x18, 0x58, 0x89, 0xE5, + 0x75, 0x65, 0xD3, 0x86, 0x09, 0x38, 0x67, 0xD1, 0x6C, 0x1C, 0x66, 0x83, 0xF0, 0x02, 0xB2, 0x0C, + 0x4A, 0x29, 0x3E, 0x91, 0xD3, 0xB5, 0xFC, 0x34, 0x46, 0xF5, 0x13, 0x73, 0x80, 0x39, 0xA9, 0x08, + 0x04, 0x8B, 0x28, 0x89, 0x28, 0x6C, 0xB9, 0xB8, 0x5B, 0x2A, 0x5D, 0x86, 0xBC, 0x55, 0x97, 0xA1, + 0x75, 0x99, 0x59, 0x55, 0x72, 0xA0, 0x6A, 0x81, 0x95, 0xAB, 0xBD, 0x0F, 0x1C, 0xC5, 0x1E, 0xF0, + 0x33, 0xB7, 0x9C, 0xC6, 0x14, 0x87, 0x2E, 0x92, 0xC7, 0x1D, 0xE1, 0x7C, 0x21, 0xC3, 0xCF, 0xD3, + 0x3C, 0x74, 0x51, 0x89, 0x20, 0x74, 0xD1, 0xF2, 0xE4, 0x3C, 0x79, 0x0D, 0xF1, 0x85, 0xD4, 0x26, + 0x26, 0x94, 0xC4, 0xEB, 0x03, 0x86, 0x45, 0x9E, 0xF2, 0x2D, 0xCF, 0xB3, 0x0C, 0x27, 0x94, 0xC7, + 0xD5, 0xA0, 0xCC, 0x1D, 0x97, 0xBE, 0xB3, 0x33, 0x52, 0xCC, 0x4D, 0x1E, 0xBF, 0x44, 0x4A, 0xD7, + 0x6B, 0xBC, 0x54, 0x87, 0x89, 0x67, 0x19, 0x5E, 0xE2, 0x15, 0x49, 0x8E, 0x95, 0x2F, 0xEC, 0xF2, + 0x56, 0x29, 0x23, 0x89, 0x3A, 0xE4, 0x3A, 0x8C, 0xCA, 0x45, 0x7E, 0xE9, 0x8D, 0x0E, 0x2F, 0xCF, + 0x29, 0x2E, 0x41, 0xB0, 0x96, 0xB8, 0xCC, 0x89, 0x99, 0xD7, 0xC8, 0x99, 0x2F, 0x9B, 0x73, 0xE1, + 0x2C, 0x4B, 0x33, 0x23, 0x09, 0x37, 0x50, 0x13, 0x35, 0x11, 0xD8, 0x48, 0xD4, 0x75, 0x87, 0x99, + 0x25, 0x85, 0xD7, 0x41, 0x95, 0xA4, 0x5E, 0x03, 0xA5, 0x54, 0x4A, 0x60, 0x9B, 0x49, 0xD3, 0x52, + 0xE0, 0x1C, 0x75, 0xFD, 0xFA, 0x0E, 0x45, 0xDE, 0xBA, 0x0A, 0x37, 0x10, 0x57, 0x28, 0xF7, 0x01, + 0xAF, 0xD2, 0x7C, 0x29, 0xB7, 0x56, 0x27, 0x55, 0x1D, 0x98, 0xA4, 0xFF, 0x4C, 0xA6, 0xAA, 0xDD, + 0xB0, 0x3A, 0xC6, 0xAE, 0x83, 0xA7, 0xE5, 0x21, 0xB7, 0xD3, 0xD0, 0x6C, 0x51, 0x53, 0x4B, 0x9A, + 0x6C, 0x7A, 0xA0, 0xC8, 0xB6, 0xAF, 0x8E, 0x48, 0x12, 0xAF, 0x43, 0xEB, 0xCB, 0x2F, 0xAD, 0x82, + 0x3B, 0x28, 0x80, 0xDD, 0x34, 0x3F, 0xBE, 0x20, 0x47, 0x84, 0x1F, 0x22, 0x47, 0x73, 0x18, 0x9B, + 0x46, 0x0B, 0x79, 0xE4, 0x05, 0xEF, 0x73, 0x30, 0x93, 0xDE, 0x23, 0xF2, 0x56, 0x38, 0xAD, 0xE2, + 0x1F, 0xEA, 0x4C, 0xA1, 0xAE, 0xAE, 0x91, 0x26, 0xEB, 0xCB, 0x4E, 0x9A, 0xE0, 0xCE, 0xE1, 0x25, + 0xC5, 0x9D, 0x38, 0xEF, 0xF0, 0x1C, 0x9D, 0xFC, 0xFC, 0xEC, 0x2C, 0xCD, 0x28, 0x5E, 0x71, 0xA5, + 0x0C, 0x12, 0x29, 0x5C, 0x86, 0x05, 0x62, 0x44, 0xBA, 0xDD, 0x91, 0xBB, 0x4B, 0x36, 0x1B, 0xB2, + 0x3B, 0x0A, 0xEA, 0xE8, 0x05, 0xB6, 0xD3, 0xF3, 0x1C, 0xDC, 0x5D, 0x91, 0x44, 0xB8, 0xC7, 0x72, + 0xDF, 0x06, 0xCB, 0x4E, 0xBF, 0xCF, 0xFE, 0x1E, 0x59, 0x4E, 0x01, 0xB4, 0xC2, 0xFB, 0x81, 0x53, + 0xBC, 0x22, 0x31, 0xC5, 0xC2, 0x51, 0xB6, 0x19, 0xA7, 0x99, 0x91, 0x6E, 0xAC, 0x06, 0xBD, 0x48, + 0xA1, 0x1A, 0x39, 0xAB, 0x87, 0x91, 0xB3, 0x13, 0x67, 0xD8, 0xA8, 0x92, 0xE9, 0x94, 0xA5, 0xB9, + 0x1C, 0x70, 0x17, 0x59, 0xDA, 0x8D, 0xAE, 0xC0, 0xE8, 0x36, 0xB7, 0x81, 0x45, 0x81, 0xBF, 0x9B, + 0x6F, 0x36, 0xF9, 0xEE, 0xA0, 0x41, 0x29, 0x46, 0xCF, 0xDA, 0xC4, 0x0C, 0xDF, 0xE5, 0xCC, 0xF0, + 0x8F, 0x18, 0xBB, 0x77, 0x76, 0xA2, 0x09, 0x22, 0x9B, 0x28, 0x2F, 0x18, 0x63, 0xE0, 0xA0, 0xBE, + 0x0F, 0x22, 0x21, 0xCF, 0x38, 0x6B, 0xF8, 0x21, 0x55, 0x21, 0x8E, 0x3B, 0x39, 0x49, 0x8E, 0xD7, + 0xBC, 0x4D, 0xAD, 0xD2, 0x67, 0x97, 0xC4, 0x52, 0xB3, 0x97, 0x4D, 0xE7, 0xEE, 0x82, 0x13, 0x4F, + 0xE7, 0xDE, 0xA2, 0xEE, 0xD9, 0xCC, 0x44, 0xAF, 0xE8, 0xFE, 0xE8, 0x8A, 0x65, 0x2C, 0x18, 0xE9, + 0x2C, 0xE8, 0x2D, 0x8A, 0xD2, 0x4B, 0x59, 0x59, 0x09, 0x44, 0x0A, 0x10, 0xDC, 0xD2, 0x75, 0x5D, + 0x79, 0x31, 0x2A, 0xBC, 0xE9, 0xCC, 0xF0, 0xCC, 0xA1, 0x7C, 0xFB, 0xDB, 0xF4, 0x56, 0xD4, 0x1F, + 0x0E, 0xBB, 0xD8, 0x71, 0x10, 0xDE, 0xDD, 0x8D, 0x26, 0xA5, 0x31, 0xF8, 0x0C, 0xBF, 0xC1, 0x59, + 0x8E, 0x6D, 0xA7, 0xFF, 0x0B, 0x29, 0x49, 0x6C, 0xCB, 0x82, 0xF3, 0x88, 0xE7, 0xDA, 0x00, 0xA8, + 0x9D, 0xAE, 0xE9, 0x23, 0x25, 0xE6, 0xB7, 0x1C, 0x06, 0x64, 0x23, 0x60, 0xD3, 0x90, 0x5A, 0x34, + 0x74, 0x58, 0xE3, 0xCE, 0x5B, 0x3B, 0x6A, 0x94, 0x7D, 0x75, 0x0E, 0x0B, 0xE3, 0xD1, 0xC2, 0x99, + 0x55, 0xEE, 0x7D, 0xB4, 0xB1, 0x6A, 0x4E, 0x34, 0xEF, 0x84, 0x46, 0xB4, 0x76, 0xFB, 0x93, 0x37, + 0xE6, 0x53, 0x5E, 0xD4, 0x6E, 0xB8, 0x00, 0xCA, 0x9B, 0x2E, 0x80, 0xF2, 0xA6, 0x0B, 0x20, 0xBD, + 0x6E, 0x92, 0x33, 0x7A, 0x99, 0xD7, 0xD5, 0xB1, 0x7A, 0x43, 0x74, 0xEB, 0x7C, 0xAC, 0xF5, 0xCA, + 0x82, 0xEB, 0x57, 0x48, 0xE6, 0x04, 0x09, 0xD0, 0xC6, 0xA4, 0xA0, 0xBB, 0x7F, 0xA8, 0x4C, 0x17, + 0x73, 0x6C, 0x0A, 0xFD, 0x22, 0xA2, 0xA2, 0xA2, 0x15, 0x0C, 0xB7, 0xCD, 0x5F, 0x73, 0xF2, 0x7B, + 0x3D, 0x78, 0x9D, 0xD8, 0x86, 0xEA, 0xD5, 0x56, 0x0E, 0x4A, 0xD4, 0xF6, 0xD5, 0x14, 0x79, 0x93, + 0xA8, 0xD5, 0x24, 0x4C, 0x9B, 0x5D, 0x75, 0x09, 0x33, 0xA3, 0x1B, 0x24, 0xCC, 0x04, 0xF8, 0xF6, + 0x25, 0x4C, 0xAF, 0x92, 0x53, 0x5F, 0x09, 0x34, 0x48, 0x4A, 0x8D, 0xE9, 0x37, 0x81, 0x33, 0xA6, + 0x97, 0xC5, 0xD4, 0x19, 0x6E, 0xAC, 0xC6, 0x4A, 0x66, 0x97, 0xA7, 0xFE, 0x9C, 0xD9, 0xA6, 0x26, + 0xA1, 0x9C, 0xE5, 0xFB, 0xD5, 0x6B, 0xDD, 0x06, 0x0A, 0x10, 0x15, 0xCF, 0x90, 0x75, 0x94, 0x4A, + 0x1F, 0x56, 0x61, 0x32, 0xAE, 0x5C, 0x1B, 0xD0, 0xF0, 0x63, 0x56, 0x85, 0xA2, 0x5E, 0x91, 0x12, + 0x55, 0xE3, 0x0D, 0xAC, 0xAA, 0xD9, 0xB3, 0xCA, 0x88, 0x65, 0xD4, 0x4C, 0x2D, 0x86, 0x6A, 0x35, + 0xC3, 0xAA, 0x1E, 0xCF, 0x1A, 0x86, 0x85, 0x32, 0x5F, 0xE5, 0xEA, 0x98, 0x51, 0xFD, 0xEC, 0x9A, + 0xEE, 0x5C, 0x66, 0x6C, 0xA6, 0x9A, 0x75, 0x19, 0x6D, 0xBD, 0xA4, 0x75, 0x14, 0x7D, 0x61, 0x25, + 0xC6, 0x72, 0x03, 0xB2, 0x11, 0xB0, 0x69, 0x05, 0x66, 0x3A, 0x78, 0xBA, 0xD5, 0xEE, 0x42, 0x67, + 0x93, 0x7E, 0xDF, 0xAB, 0x0B, 0x86, 0x1E, 0x2F, 0xF6, 0x1C, 0x8D, 0x91, 0xEF, 0xB7, 0x11, 0x71, + 0x95, 0xFF, 0x9E, 0x72, 0xB7, 0xD5, 0x87, 0xCD, 0x96, 0xEA, 0xDD, 0xD5, 0x84, 0xC8, 0xAF, 0xED, + 0xCF, 0xFA, 0x4A, 0xB3, 0x61, 0xBE, 0x70, 0x8A, 0x57, 0x67, 0x8C, 0xC0, 0xEC, 0x0D, 0x4F, 0xD3, + 0xBD, 0x08, 0xB7, 0x20, 0xAC, 0x6F, 0xF8, 0x4A, 0x84, 0xB4, 0x35, 0xED, 0x79, 0x9A, 0x47, 0xA4, + 0x9E, 0x5A, 0x6E, 0x04, 0xA3, 0xBC, 0x9E, 0x2A, 0x77, 0x86, 0x51, 0x56, 0x40, 0xAC, 0xBC, 0xDA, + 0x12, 0xEF, 0xF2, 0x23, 0x17, 0x25, 0x91, 0x0B, 0x6F, 0xE6, 0x4B, 0x25, 0xE5, 0x0A, 0xB9, 0x8E, + 0x70, 0x36, 0xD2, 0x92, 0xDA, 0x52, 0x47, 0x86, 0xB4, 0x95, 0x1A, 0xED, 0xD1, 0x83, 0x1A, 0x71, + 0xC9, 0x66, 0xE3, 0x5D, 0x57, 0x0A, 0x5B, 0x55, 0xB5, 0x94, 0xE5, 0x21, 0x7D, 0xB5, 0x78, 0x7A, + 0x06, 0xB7, 0x44, 0x1D, 0xF1, 0xBE, 0x35, 0x06, 0xD5, 0xBA, 0xD5, 0x39, 0xEE, 0xD0, 0x94, 0xAD, + 0xCF, 0xDF, 0x90, 0xF4, 0x9C, 0xAD, 0x71, 0x2F, 0x93, 0x65, 0x47, 0x70, 0x16, 0x75, 0x8E, 0xC9, + 0x1B, 0x92, 0x1C, 0x77, 0xCE, 0xCF, 0x3A, 0x0C, 0x39, 0x49, 0x8E, 0xAD, 0xD2, 0xCD, 0x7E, 0x6B, + 0x5B, 0x09, 0x1F, 0xC0, 0xD7, 0xB4, 0xD7, 0xB6, 0xA7, 0x14, 0xF4, 0x9A, 0xAB, 0xC5, 0xB5, 0xF6, + 0x02, 0x30, 0xF3, 0x04, 0xB7, 0xDC, 0xDD, 0x6E, 0xB2, 0xBB, 0xED, 0x81, 0xD2, 0xC0, 0x2C, 0xE1, + 0x57, 0xDD, 0x79, 0x44, 0xE7, 0xC9, 0xC2, 0x36, 0x6F, 0xEF, 0xE0, 0x8E, 0x3B, 0x77, 0x66, 0x09, + 0xBF, 0x64, 0xCE, 0x6F, 0xBC, 0x47, 0x6E, 0x96, 0xA7, 0x04, 0xE5, 0xB3, 0xEB, 0x84, 0xDB, 0xB0, + 0x92, 0x77, 0x1B, 0x2A, 0xFF, 0x4C, 0x28, 0x1B, 0x85, 0xE2, 0xE1, 0x77, 0xAB, 0xC0, 0x95, 0xFA, + 0xD4, 0xE5, 0x50, 0x23, 0xEE, 0x57, 0xFD, 0x01, 0xB7, 0xA4, 0xE1, 0x8F, 0xD8, 0x5F, 0xB8, 0x61, + 0x72, 0x94, 0xC6, 0xA4, 0x3F, 0x8E, 0x84, 0x99, 0x8D, 0xF6, 0x6E, 0xB7, 0x89, 0xBC, 0x0F, 0x1C, + 0xAF, 0xF4, 0xBA, 0x0C, 0xDF, 0xA1, 0x2E, 0xE5, 0x70, 0x8A, 0x93, 0xD5, 0x4F, 0x42, 0x45, 0x8A, + 0xF7, 0x1B, 0x0C, 0x6E, 0x3A, 0x38, 0x32, 0xE6, 0x16, 0x6F, 0xD8, 0xBD, 0xA6, 0x0E, 0xCA, 0xD4, + 0x0B, 0x89, 0xD2, 0x19, 0xD9, 0xA1, 0xB3, 0x5E, 0x8F, 0x38, 0x57, 0xA2, 0x13, 0x32, 0xB6, 0x92, + 0x05, 0x92, 0x5D, 0x56, 0x3B, 0x83, 0x93, 0x77, 0xA1, 0xD5, 0xD2, 0x76, 0x76, 0x26, 0x1B, 0x3B, + 0xDB, 0xF1, 0x46, 0xEE, 0x5E, 0x16, 0x9E, 0x38, 0x0B, 0x94, 0xEC, 0xEE, 0x0E, 0x44, 0xAF, 0xF5, + 0xC3, 0x52, 0xB5, 0x87, 0xF4, 0xBC, 0x19, 0xD7, 0xAB, 0x64, 0x22, 0xBF, 0x1B, 0xD1, 0xCD, 0x06, + 0x4A, 0xCB, 0x17, 0xCE, 0x4E, 0xE0, 0x83, 0x49, 0x0D, 0x7F, 0x24, 0x5C, 0xFE, 0xD6, 0xF7, 0x45, + 0x36, 0x86, 0x0B, 0x5B, 0x44, 0xC0, 0xAF, 0x3C, 0xD7, 0x5A, 0x07, 0x73, 0x33, 0xFF, 0xBF, 0xC5, + 0x54, 0xE8, 0x56, 0x24, 0xC3, 0xE6, 0x6D, 0x40, 0xB6, 0xD8, 0x6B, 0x4B, 0xB0, 0x9D, 0xC6, 0x3C, + 0x0F, 0x0F, 0x6D, 0x79, 0x80, 0xD4, 0x24, 0x4C, 0x7A, 0x37, 0x73, 0x43, 0xDD, 0x50, 0x5F, 0xA8, + 0x26, 0x3F, 0x7D, 0x89, 0x63, 0x5F, 0x9D, 0x49, 0x5D, 0x47, 0x82, 0x96, 0xE9, 0x0A, 0x87, 0x19, + 0xD2, 0x85, 0x23, 0xAC, 0x89, 0x0B, 0x12, 0x3D, 0x21, 0x34, 0xFA, 0x05, 0xE2, 0x1D, 0x27, 0xD4, + 0x7B, 0x11, 0x8A, 0x0F, 0xD3, 0x8C, 0x86, 0x5B, 0x5E, 0xE1, 0xF4, 0x21, 0x28, 0x55, 0xA9, 0x35, + 0xB2, 0xC6, 0xA1, 0x34, 0x28, 0xD4, 0xB6, 0x64, 0x17, 0x05, 0x30, 0x29, 0xCD, 0xF8, 0x7B, 0xD3, + 0x38, 0x4A, 0xF7, 0x52, 0xA5, 0xAD, 0x15, 0x6E, 0x8B, 0x47, 0x88, 0xB1, 0x1C, 0xA4, 0xD3, 0x79, + 0xDC, 0x36, 0x95, 0xC4, 0xB7, 0x1E, 0xB0, 0x8D, 0xE5, 0x4E, 0x80, 0x52, 0x14, 0xA3, 0x04, 0xC6, + 0x9B, 0x59, 0xBC, 0xE3, 0xCA, 0xE7, 0x67, 0xFA, 0x06, 0xC1, 0xAE, 0x93, 0x5B, 0xD5, 0x46, 0xB9, + 0x4D, 0xA3, 0x4D, 0xC2, 0x55, 0xAA, 0xFA, 0xB2, 0xE8, 0x85, 0xC3, 0x69, 0xD8, 0x36, 0x3A, 0x19, + 0xC3, 0xEA, 0xA4, 0x06, 0x76, 0x70, 0x7E, 0xC8, 0x21, 0xB7, 0x3D, 0xA7, 0x62, 0x75, 0xB1, 0x0A, + 0x7A, 0x9F, 0x1C, 0x13, 0x6A, 0x67, 0xDB, 0x83, 0x89, 0x53, 0x14, 0x17, 0x27, 0x64, 0x8D, 0xED, + 0x5E, 0x8F, 0xEC, 0xD0, 0x6E, 0x57, 0x8C, 0x29, 0xCE, 0xEE, 0x60, 0xCC, 0x3A, 0xC0, 0xC8, 0x75, + 0x66, 0x64, 0x7B, 0xDB, 0xB4, 0xFC, 0x5C, 0xA9, 0x7C, 0x34, 0x31, 0x87, 0xCD, 0x4D, 0x94, 0x19, + 0x56, 0x23, 0xDD, 0x50, 0x3A, 0x04, 0x6E, 0x3B, 0x02, 0xA8, 0x37, 0xFB, 0x3A, 0x5A, 0xEE, 0x2D, + 0xEB, 0xCD, 0xBE, 0x96, 0xCD, 0xBE, 0x9C, 0xAF, 0xF5, 0xB9, 0x79, 0xFD, 0x7E, 0x4D, 0x3D, 0x40, + 0x4B, 0xB4, 0x96, 0x4D, 0xBD, 0x2E, 0x9B, 0x5A, 0x3F, 0x5B, 0x68, 0x68, 0xEA, 0x5B, 0xB6, 0xAE, + 0xE7, 0x85, 0xDF, 0xDA, 0x2C, 0xEA, 0xF9, 0x61, 0x75, 0xBA, 0xE7, 0xCA, 0x9D, 0x37, 0xC8, 0x61, + 0xC5, 0xC4, 0x76, 0xC3, 0x00, 0xAF, 0xC6, 0x77, 0x7F, 0x10, 0x45, 0x91, 0x1C, 0x06, 0x37, 0x1B, + 0x7F, 0xC4, 0x0D, 0x2A, 0xF1, 0x89, 0x96, 0x8F, 0x89, 0x63, 0x63, 0x4C, 0x2C, 0x49, 0xE1, 0x2A, + 0x66, 0xB5, 0x41, 0x51, 0x2F, 0x1B, 0x16, 0x5B, 0xB7, 0x5C, 0xB3, 0x68, 0x13, 0x7D, 0x53, 0xAB, + 0x8D, 0xD0, 0x7C, 0x81, 0x5C, 0xD9, 0x6C, 0x6A, 0x21, 0xF0, 0x2D, 0x4C, 0xF7, 0xB7, 0x6B, 0xD7, + 0x41, 0x58, 0xDB, 0xB2, 0xD2, 0x38, 0xA3, 0xB6, 0xD9, 0x3F, 0xAB, 0xBC, 0xCE, 0xB9, 0xB3, 0xF3, + 0x96, 0xD9, 0xC6, 0xE4, 0x6C, 0x89, 0xF9, 0x66, 0xCE, 0x8E, 0x74, 0xC6, 0x5E, 0xB7, 0x80, 0xBA, + 0x81, 0xAB, 0xC3, 0x3F, 0x03, 0xAE, 0x16, 0x8D, 0xAB, 0xA1, 0xA4, 0x28, 0x8A, 0x16, 0xA5, 0xB7, + 0x65, 0x81, 0x46, 0xFE, 0xC0, 0xFF, 0x30, 0x75, 0xBA, 0xF2, 0x18, 0x22, 0xA2, 0xE5, 0xBD, 0x4E, + 0x5D, 0x4B, 0x8E, 0xBF, 0x5A, 0xC8, 0xE4, 0x93, 0x86, 0x84, 0x3F, 0x5F, 0x28, 0x33, 0xB4, 0x3F, + 0x5F, 0xC8, 0xF5, 0x6B, 0x4A, 0xA9, 0x76, 0x9A, 0x28, 0xB5, 0xD3, 0xD2, 0xA9, 0xD9, 0xFB, 0x3F, + 0x28, 0x78, 0xD7, 0xA7, 0x0C, 0x3F, 0x7D, 0x77, 0x40, 0x2A, 0xEF, 0x0E, 0xBE, 0xF5, 0xC7, 0x1D, + 0x89, 0xFE, 0x94, 0xA1, 0x3C, 0x60, 0xE0, 0x1B, 0xE3, 0x3F, 0xA5, 0x67, 0x0C, 0xAC, 0xDB, 0xDF, + 0xF2, 0x0D, 0x43, 0x93, 0x3C, 0x0A, 0xC1, 0x2D, 0x5E, 0x89, 0x11, 0xAD, 0xAA, 0x56, 0x5F, 0x6D, + 0x76, 0x89, 0x61, 0xB1, 0xD9, 0x24, 0xDF, 0xEE, 0xD3, 0x05, 0x39, 0xA4, 0x5E, 0xAB, 0xE6, 0x8D, + 0xAC, 0x83, 0x97, 0x77, 0x5F, 0xBC, 0xB4, 0x9C, 0xE2, 0xD5, 0x4F, 0xC0, 0xBB, 0x85, 0xF2, 0xD1, + 0x42, 0xD6, 0xF6, 0x68, 0x41, 0xB2, 0x15, 0xB2, 0x98, 0xE3, 0xA8, 0x38, 0xF9, 0xA9, 0x3C, 0xC0, + 0x08, 0xB6, 0x4C, 0x31, 0x62, 0x71, 0x5E, 0x83, 0x68, 0xCD, 0x28, 0x98, 0x27, 0x2C, 0xBD, 0xE3, + 0xD2, 0x5E, 0x0F, 0xDE, 0x1E, 0x0F, 0xA7, 0xFC, 0xAD, 0x81, 0x5E, 0x88, 0x5F, 0x16, 0x59, 0x4E, + 0x5B, 0x6C, 0x33, 0x44, 0x76, 0x06, 0x93, 0xCD, 0x66, 0x38, 0xDE, 0x21, 0x4D, 0x06, 0x16, 0x20, + 0x6F, 0xC0, 0x3A, 0xAD, 0x22, 0x80, 0xAC, 0xD4, 0x40, 0x41, 0x56, 0xE5, 0x1B, 0x5A, 0xB2, 0x8A, + 0x3C, 0xF7, 0x13, 0x19, 0xEE, 0x91, 0xED, 0xC1, 0xA4, 0xA8, 0x74, 0x88, 0x6E, 0x97, 0x6C, 0xD3, + 0x5D, 0xB5, 0xE2, 0x2A, 0x6B, 0x5D, 0x14, 0x4C, 0x86, 0xB5, 0x67, 0x1D, 0x6E, 0x03, 0x0B, 0xAA, + 0x6C, 0xA9, 0x73, 0x45, 0x19, 0x8D, 0xE0, 0x75, 0x6C, 0x14, 0xCE, 0x3F, 0xC7, 0x8F, 0x43, 0x80, + 0x47, 0x3F, 0xF9, 0x2F, 0x43, 0xC4, 0x70, 0xF4, 0x93, 0xF2, 0x2C, 0x04, 0x59, 0x0F, 0x9E, 0xDE, + 0xAF, 0x3F, 0x08, 0xB9, 0x6E, 0x24, 0x84, 0xE7, 0x9F, 0xDA, 0x8A, 0xE1, 0xBD, 0x9F, 0x7E, 0xE8, + 0x4F, 0x32, 0x8C, 0x61, 0xE0, 0xDB, 0x79, 0xBA, 0xD1, 0x32, 0xE4, 0x34, 0x3C, 0xDD, 0xC8, 0xDF, + 0xE3, 0xE9, 0x06, 0x17, 0xB7, 0x6F, 0xE9, 0xDD, 0xC6, 0x3B, 0x3F, 0xD5, 0x78, 0x97, 0xB7, 0x19, + 0x37, 0x3C, 0xC6, 0x98, 0x8C, 0x07, 0x1F, 0x64, 0x50, 0x9C, 0x6B, 0x90, 0x55, 0x1F, 0xE9, 0x97, + 0xE6, 0x54, 0x84, 0x6A, 0x5D, 0x45, 0x42, 0xA2, 0xC0, 0x47, 0x34, 0x0A, 0xFC, 0x72, 0x6E, 0x3A, + 0x8D, 0xDF, 0x3E, 0xE6, 0x16, 0x0A, 0x84, 0xB4, 0x9C, 0xC6, 0x6F, 0xE5, 0xFE, 0x3D, 0x17, 0x29, + 0x14, 0xD1, 0x5D, 0x7F, 0x38, 0xAA, 0xEB, 0x77, 0xD4, 0x61, 0xB9, 0x36, 0x46, 0x92, 0x82, 0x46, + 0xC6, 0x31, 0x2C, 0x5C, 0xB2, 0x0E, 0x3D, 0x89, 0x93, 0x8E, 0x3F, 0x1C, 0x59, 0x42, 0xDC, 0x35, + 0x55, 0xB8, 0x47, 0x09, 0x0D, 0x7C, 0xF9, 0x6E, 0x83, 0x13, 0x50, 0x31, 0x98, 0x90, 0xCB, 0x02, + 0xAA, 0xF0, 0xCA, 0x86, 0x43, 0x5E, 0x21, 0xB7, 0x96, 0xF3, 0xD1, 0xEA, 0xAD, 0x7A, 0x24, 0xE2, + 0x8D, 0xCC, 0xD2, 0x5E, 0x65, 0x98, 0xF1, 0x1E, 0xCE, 0x21, 0xF2, 0x72, 0x69, 0xC2, 0x63, 0x0F, + 0xCE, 0x0F, 0xAB, 0x09, 0x2B, 0xF6, 0xFD, 0x28, 0x3F, 0x38, 0x3F, 0x14, 0xFD, 0x87, 0x92, 0x65, + 0xE7, 0x28, 0x4B, 0x4F, 0x25, 0x5A, 0xA5, 0x44, 0x02, 0x26, 0x8B, 0x66, 0xDC, 0xCD, 0x84, 0x18, + 0xE7, 0xA5, 0x80, 0xCC, 0xCA, 0xB3, 0x54, 0xFE, 0x6E, 0x83, 0xE4, 0x22, 0x3B, 0x58, 0x3D, 0xF6, + 0x42, 0x77, 0x46, 0xCA, 0x67, 0x25, 0x70, 0xD0, 0x5A, 0xFA, 0x89, 0x27, 0x30, 0x9D, 0x9A, 0xF9, + 0x72, 0xC7, 0x31, 0xCD, 0x77, 0xE5, 0xBA, 0xF9, 0x2E, 0x6A, 0x1C, 0xCA, 0xB0, 0xB5, 0xA9, 0x5C, + 0x40, 0x94, 0xBB, 0xA5, 0x5C, 0x99, 0xB9, 0xA6, 0x85, 0x78, 0xD2, 0x65, 0xBC, 0x34, 0xC9, 0x2B, + 0xE2, 0xD2, 0x26, 0x2C, 0xDA, 0xBB, 0x07, 0xB1, 0x21, 0x63, 0x6B, 0x0B, 0xAD, 0xD9, 0x1D, 0x24, + 0x2B, 0x16, 0x69, 0xCD, 0x8D, 0xB0, 0xD6, 0x5E, 0x65, 0x96, 0x32, 0xCE, 0x31, 0x20, 0x1E, 0x6B, + 0x08, 0xAA, 0xB1, 0x06, 0xE0, 0xA3, 0xD5, 0xDB, 0x26, 0x6C, 0x8F, 0x56, 0x6F, 0x01, 0xA1, 0xD1, + 0xF8, 0x75, 0x79, 0x28, 0x41, 0x4A, 0x49, 0x68, 0x94, 0x0F, 0x06, 0xA8, 0x49, 0x46, 0x55, 0x54, + 0x10, 0x2E, 0x68, 0xCA, 0x5B, 0xAA, 0xE4, 0xEA, 0x7C, 0x51, 0x51, 0xF7, 0xD2, 0xD8, 0xC1, 0x75, + 0xBC, 0xB0, 0xD8, 0xC1, 0x94, 0xCC, 0x9B, 0xD3, 0xDA, 0xCE, 0x47, 0xAF, 0xD3, 0x9C, 0x2E, 0x76, + 0x77, 0x27, 0x28, 0x8F, 0xFC, 0xA1, 0x3C, 0xCB, 0xAF, 0x24, 0xCF, 0xF2, 0x6D, 0xC2, 0x16, 0x3B, + 0x02, 0x35, 0x97, 0xA2, 0xB3, 0x2C, 0xA5, 0x29, 0xBD, 0x3C, 0x13, 0x5E, 0x26, 0xFA, 0xCB, 0x78, + 0xBD, 0xAE, 0x72, 0x0C, 0xB6, 0xFE, 0x4A, 0x46, 0xB0, 0x79, 0x45, 0xDD, 0xD6, 0x65, 0x2B, 0x1D, + 0xF2, 0x83, 0xBA, 0x9A, 0x92, 0x54, 0xAC, 0x2D, 0xAC, 0x0D, 0x10, 0x7D, 0xF8, 0xD8, 0x8D, 0x4C, + 0x71, 0x75, 0x9A, 0x28, 0x70, 0xD5, 0x5D, 0x29, 0xDE, 0xD9, 0x6E, 0x50, 0x42, 0x84, 0x01, 0x37, + 0xEF, 0xAC, 0x71, 0x9E, 0xCB, 0x51, 0x6C, 0xDB, 0x03, 0x9D, 0x3D, 0x36, 0xC0, 0xC5, 0xEB, 0x75, + 0x7A, 0x01, 0x5A, 0x7B, 0x4D, 0x9C, 0x2E, 0x49, 0x59, 0x34, 0x8B, 0xE9, 0xCE, 0xCE, 0x64, 0xD3, + 0x2C, 0xBF, 0x46, 0x7B, 0x97, 0x78, 0x7A, 0xBD, 0x45, 0x84, 0x77, 0xC9, 0x1E, 0x09, 0x71, 0x51, + 0xE8, 0x1D, 0xBA, 0x8D, 0x21, 0xAE, 0xCE, 0x10, 0x47, 0x81, 0xE8, 0x3C, 0xD8, 0x34, 0x93, 0x50, + 0x72, 0xAF, 0xDA, 0xBB, 0x5B, 0x9A, 0xEC, 0x4F, 0x88, 0x93, 0xF3, 0x46, 0xEA, 0x34, 0x46, 0x34, + 0x8C, 0xF4, 0x3A, 0xCB, 0xB6, 0xBD, 0x45, 0xAF, 0x57, 0x14, 0x27, 0x71, 0xAE, 0xEA, 0x51, 0x9A, + 0x29, 0xB4, 0x5B, 0x3A, 0x09, 0x5E, 0x38, 0xDB, 0x0D, 0xE3, 0xC5, 0x1C, 0xB3, 0xBE, 0xE5, 0xEC, + 0xBA, 0xC5, 0x31, 0xA6, 0x06, 0x3A, 0xF3, 0x3A, 0xBB, 0x9E, 0x07, 0x91, 0xB6, 0xFE, 0xA8, 0x1D, + 0x56, 0xB0, 0x3D, 0xC8, 0x5E, 0x05, 0xA4, 0x9F, 0x9F, 0x1F, 0xC6, 0x7C, 0xAE, 0x43, 0xC4, 0x09, + 0x93, 0xF3, 0xF5, 0xDA, 0x28, 0xFC, 0xEE, 0x7A, 0xAD, 0x8D, 0x27, 0x57, 0xC5, 0x4D, 0xE3, 0xC9, + 0xB7, 0x31, 0x70, 0xD8, 0x78, 0x4E, 0x6B, 0x12, 0x2D, 0x5E, 0x11, 0x56, 0x86, 0x08, 0x75, 0xBC, + 0x2F, 0x17, 0x6C, 0xB3, 0x16, 0x19, 0xDC, 0x52, 0x6B, 0xB4, 0x52, 0x7C, 0xAB, 0xBC, 0xE0, 0x4D, + 0x1F, 0xEA, 0x12, 0x2D, 0x85, 0xB7, 0xCC, 0x24, 0xF7, 0x5A, 0x15, 0xF9, 0x94, 0x37, 0x40, 0xA6, + 0x2A, 0x59, 0x7B, 0x59, 0xA1, 0xD6, 0x03, 0x51, 0x16, 0xE5, 0x73, 0xBA, 0xED, 0x2D, 0x66, 0xFC, + 0x4F, 0xF4, 0x4B, 0xD9, 0x1E, 0x58, 0xA8, 0x39, 0x25, 0x89, 0xED, 0xB9, 0x9F, 0x64, 0x3D, 0xCC, + 0xDA, 0x06, 0x9C, 0xF2, 0x8B, 0x75, 0x4A, 0x5E, 0xA0, 0xE1, 0xF8, 0xC3, 0x8C, 0x32, 0xDD, 0x5D, + 0xAD, 0xD2, 0xE4, 0x49, 0x9C, 0xC4, 0xC7, 0xEA, 0x3C, 0xB0, 0x1A, 0xDB, 0x7E, 0xE8, 0x17, 0x33, + 0xB0, 0x3C, 0x9A, 0x2F, 0xB4, 0x93, 0xA5, 0xDA, 0xF1, 0x07, 0xC0, 0xB4, 0x1F, 0x7F, 0x40, 0xF2, + 0x1C, 0x2F, 0xFA, 0x72, 0x7D, 0xDC, 0x57, 0xB8, 0x8A, 0x75, 0x1A, 0xAF, 0x80, 0x14, 0x53, 0xEB, + 0xEF, 0x4A, 0x82, 0x86, 0x14, 0xC9, 0x03, 0x37, 0x2A, 0xB3, 0x21, 0x92, 0x73, 0x45, 0x7B, 0x38, + 0x23, 0x2C, 0x66, 0x06, 0x15, 0x30, 0x15, 0xB1, 0x2D, 0x82, 0x84, 0x8E, 0x4A, 0xD3, 0x5B, 0x17, + 0x59, 0x7C, 0x76, 0x86, 0x79, 0x79, 0x02, 0x03, 0x07, 0x85, 0x2D, 0x53, 0x4C, 0xC1, 0xF9, 0x4C, + 0x23, 0x14, 0x96, 0xBA, 0xDA, 0xAA, 0x64, 0xD3, 0xA8, 0x92, 0xB8, 0xCA, 0x51, 0x4A, 0xEA, 0x3B, + 0x0D, 0x9C, 0x99, 0x11, 0x7E, 0x58, 0x6E, 0x70, 0x85, 0x2C, 0xA2, 0x28, 0x62, 0x9B, 0xAD, 0x88, + 0x94, 0x27, 0x16, 0xFC, 0x2C, 0xA2, 0x3E, 0xF2, 0xED, 0xA7, 0xE7, 0xEB, 0x15, 0x8C, 0x72, 0xA2, + 0x6E, 0x9D, 0x38, 0xE9, 0x00, 0x22, 0x36, 0x0C, 0xD2, 0xCE, 0x49, 0x9C, 0x8B, 0xE5, 0x32, 0x4E, + 0x3A, 0x8C, 0xB3, 0x30, 0x0E, 0xEA, 0x54, 0xB3, 0x81, 0x5C, 0xB1, 0x5F, 0x3C, 0xBE, 0xC5, 0xAA, + 0x5D, 0xD4, 0x81, 0x02, 0x27, 0x5B, 0x9C, 0x5E, 0x52, 0x7E, 0x7A, 0x89, 0x26, 0xE3, 0xF1, 0x07, + 0x1A, 0xDB, 0xE1, 0x86, 0xC6, 0xEE, 0x9E, 0x91, 0xEF, 0x13, 0x7C, 0x51, 0x3F, 0x9A, 0x0E, 0xC6, + 0x93, 0x21, 0x3F, 0x9A, 0x06, 0x1B, 0xB2, 0x55, 0xF8, 0x86, 0x4D, 0x6A, 0xA9, 0x0C, 0xCB, 0xCD, + 0x9E, 0xC9, 0x7D, 0x07, 0x78, 0x16, 0xA3, 0x05, 0x49, 0xF8, 0x80, 0x61, 0xEC, 0xA5, 0x0C, 0x48, + 0x36, 0x04, 0x76, 0x96, 0xE7, 0x59, 0x9E, 0x66, 0x3F, 0xB4, 0x1B, 0x01, 0xFB, 0x97, 0x1A, 0xCC, + 0x0F, 0x5A, 0x60, 0xDE, 0x02, 0xCC, 0x1B, 0x82, 0x2F, 0xCE, 0xD2, 0x8C, 0xB6, 0x62, 0x62, 0x7C, + 0x07, 0xC8, 0xC3, 0x38, 0xC7, 0xAD, 0x50, 0x2C, 0x11, 0xA0, 0xB8, 0xD8, 0xB4, 0x80, 0xAD, 0x49, + 0xA2, 0xB4, 0xF8, 0x19, 0xF4, 0x63, 0x92, 0xE0, 0xFA, 0x04, 0x62, 0x00, 0x1F, 0x63, 0xC6, 0x0D, + 0x18, 0x38, 0xE5, 0xEE, 0x81, 0x9B, 0x42, 0xE5, 0x7C, 0x66, 0x18, 0x04, 0xAF, 0x6D, 0xEA, 0x30, + 0x9C, 0x4F, 0xCF, 0xD7, 0xEB, 0x7D, 0x0C, 0x13, 0x83, 0x06, 0x9F, 0xF5, 0x59, 0xDC, 0xFD, 0x98, + 0x82, 0x03, 0x02, 0xD6, 0x68, 0xDF, 0x86, 0x54, 0x68, 0xA5, 0x37, 0x5C, 0x5A, 0xE8, 0xF2, 0xA0, + 0x43, 0x5E, 0x73, 0x70, 0xC1, 0xEA, 0x1C, 0x71, 0x46, 0x92, 0xFC, 0x0B, 0xDE, 0xA7, 0xAB, 0xBC, + 0x64, 0x30, 0x7D, 0x95, 0x7A, 0x0D, 0xD3, 0x01, 0xB0, 0x64, 0x36, 0x30, 0x45, 0x5A, 0xC6, 0xD9, + 0xB2, 0xF1, 0x8E, 0x0B, 0x46, 0x7D, 0x6B, 0xB0, 0xE5, 0xF6, 0x5F, 0xDA, 0x2C, 0xE4, 0x89, 0x69, + 0xBC, 0x52, 0x28, 0x10, 0x95, 0x6A, 0x12, 0xD5, 0x34, 0xDE, 0x38, 0x92, 0xD9, 0x4E, 0x01, 0x9A, + 0x30, 0xEB, 0x98, 0xE2, 0xF2, 0x99, 0x01, 0x3F, 0x46, 0xA9, 0x93, 0xDA, 0x06, 0x0A, 0xFD, 0xD8, + 0xFF, 0x76, 0x5A, 0xEC, 0x69, 0x7C, 0x8A, 0xF3, 0xB3, 0x78, 0xC9, 0x1A, 0xA3, 0xC1, 0x1A, 0xC3, + 0x78, 0xEC, 0x49, 0x43, 0xC3, 0x23, 0xB7, 0x6C, 0x3D, 0x23, 0xD7, 0x35, 0xCD, 0xB7, 0x4C, 0xB3, + 0x52, 0x05, 0x33, 0x4D, 0x78, 0xE6, 0xFD, 0x93, 0x38, 0x39, 0xC6, 0xE2, 0xDD, 0x9B, 0x6E, 0xC0, + 0x97, 0xC3, 0x55, 0xC0, 0x9A, 0xF2, 0x72, 0x0B, 0xBE, 0x02, 0x6D, 0x92, 0x66, 0xA7, 0xF1, 0x3A, + 0xD2, 0x3B, 0x81, 0xEA, 0x00, 0x8A, 0x88, 0x3E, 0xEF, 0x43, 0x79, 0x9F, 0x43, 0x23, 0x8B, 0xFF, + 0xB5, 0xD4, 0x60, 0xB9, 0xA6, 0x38, 0x4B, 0x62, 0x8A, 0x6F, 0x8B, 0x27, 0x5E, 0x53, 0x64, 0xA9, + 0x5C, 0x56, 0x79, 0xB3, 0xA8, 0xC1, 0x48, 0xA2, 0xEF, 0xCA, 0x89, 0x49, 0x33, 0x20, 0x59, 0xA9, + 0x10, 0x18, 0x73, 0x84, 0x14, 0x7E, 0xF0, 0xE7, 0x38, 0xD0, 0x77, 0x3B, 0xFC, 0x4B, 0xBF, 0xED, + 0x30, 0xA9, 0xE0, 0xA7, 0x84, 0x4A, 0x87, 0xBE, 0x5E, 0x53, 0xE3, 0x28, 0x93, 0x47, 0xCD, 0xDE, + 0x1D, 0x57, 0xBC, 0x36, 0x0D, 0xD5, 0xAA, 0x8A, 0xCF, 0x6A, 0xD3, 0x1B, 0x54, 0x16, 0x77, 0x78, + 0xCE, 0x0E, 0xC9, 0x3B, 0x09, 0x26, 0xF4, 0x04, 0x67, 0x1D, 0x5E, 0x38, 0xFB, 0xD3, 0xD1, 0xF8, + 0x06, 0xB5, 0xE4, 0x49, 0xD5, 0xEE, 0xCA, 0x63, 0x41, 0xB7, 0xB9, 0xBD, 0x25, 0x05, 0x9B, 0x24, + 0xC2, 0x2A, 0x0E, 0x95, 0xD0, 0x8A, 0x86, 0x55, 0x8D, 0x75, 0xA8, 0xF1, 0x74, 0xFC, 0x41, 0x4E, + 0x58, 0xF8, 0xCD, 0x6B, 0xD9, 0x8B, 0x8C, 0xA8, 0x1B, 0xBB, 0x48, 0xEB, 0x0B, 0x0A, 0xA3, 0x36, + 0x40, 0x78, 0x23, 0xA4, 0x8D, 0xA3, 0x5D, 0x6A, 0xE3, 0xBE, 0x3A, 0x54, 0x60, 0x02, 0x14, 0xAF, + 0x56, 0xD7, 0xA1, 0x6B, 0x29, 0xF2, 0x76, 0xEF, 0x0B, 0x0C, 0x52, 0x0C, 0x48, 0x5B, 0x5A, 0x12, + 0x61, 0x7F, 0x6B, 0x04, 0x5D, 0x87, 0xB4, 0xA5, 0xE0, 0xD6, 0x87, 0x4C, 0xED, 0x04, 0x55, 0x20, + 0x59, 0xC1, 0xD7, 0x65, 0x6E, 0xCB, 0x76, 0xAB, 0xF7, 0x08, 0x46, 0xC1, 0xCF, 0xEA, 0x05, 0x5F, + 0x97, 0xB9, 0x2D, 0x1B, 0x93, 0x47, 0x77, 0xFA, 0x41, 0xF6, 0x17, 0x85, 0x27, 0x04, 0x43, 0x20, + 0xB5, 0xB8, 0xDB, 0x4B, 0xA4, 0x99, 0xD0, 0x3F, 0xE7, 0x38, 0x0E, 0x70, 0xF6, 0x86, 0x2C, 0xCB, + 0x8A, 0xB3, 0x45, 0x37, 0x2C, 0x9F, 0xB8, 0x6B, 0x85, 0xBC, 0xDA, 0x11, 0x9B, 0xF2, 0x4A, 0x58, + 0x6D, 0xA4, 0xFB, 0x3E, 0x8F, 0xBA, 0x4D, 0x6E, 0x23, 0x43, 0x91, 0xD7, 0x50, 0x5C, 0x4B, 0xB6, + 0x01, 0x1A, 0x61, 0x60, 0xF8, 0x60, 0x60, 0xF8, 0x22, 0x60, 0x73, 0xF2, 0x9B, 0x38, 0x13, 0xBB, + 0x43, 0xB9, 0x91, 0x7C, 0xB5, 0xC2, 0xCB, 0x34, 0x8B, 0x29, 0xDE, 0x6C, 0x4C, 0x60, 0x94, 0x73, + 0xF0, 0x0C, 0x25, 0x51, 0x9C, 0x1D, 0x9F, 0x9F, 0xE2, 0x84, 0xAA, 0xB3, 0xCC, 0x34, 0x4A, 0x76, + 0x82, 0x3D, 0x1A, 0x72, 0x47, 0xB8, 0x51, 0xBE, 0xA7, 0xAE, 0xF2, 0x8F, 0x31, 0x7D, 0x76, 0x91, + 0xC8, 0x26, 0xBD, 0x8F, 0xF3, 0x65, 0x46, 0xCE, 0x58, 0x73, 0xC0, 0x06, 0x1F, 0x4E, 0x8B, 0xAD, + 0x14, 0x40, 0xAD, 0x28, 0x62, 0x2B, 0xE2, 0xF4, 0xA8, 0xF3, 0x02, 0x1F, 0xAD, 0xF1, 0x92, 0x76, + 0xBB, 0x96, 0x24, 0xA1, 0x96, 0xD6, 0x97, 0x64, 0x3A, 0x69, 0x54, 0x8D, 0x52, 0xF4, 0xF2, 0x23, + 0x5F, 0xB6, 0xE5, 0x61, 0x84, 0xC7, 0x91, 0x76, 0xE3, 0x1C, 0xB3, 0xDD, 0x5F, 0xBC, 0xBD, 0xED, + 0x80, 0x3A, 0x50, 0xBC, 0x70, 0xBA, 0x5D, 0x3B, 0x8D, 0x6C, 0x56, 0x8B, 0xCC, 0x4E, 0x9D, 0x30, + 0xD9, 0x65, 0x01, 0x86, 0x26, 0x75, 0x42, 0x4E, 0xAC, 0xB3, 0xD9, 0xA4, 0xEA, 0xAC, 0x37, 0xD9, + 0x0D, 0xBA, 0xDD, 0xB4, 0xDB, 0x6D, 0x13, 0x5C, 0x96, 0x0F, 0xA5, 0x85, 0xB8, 0x87, 0x54, 0xCC, + 0x85, 0x1D, 0xB6, 0xC9, 0x59, 0x25, 0x09, 0x2A, 0x92, 0xDB, 0x66, 0x62, 0x7F, 0x10, 0x76, 0x8A, + 0x62, 0xF6, 0xDE, 0x6B, 0x1F, 0x21, 0x0C, 0x11, 0xED, 0x3F, 0x79, 0xF4, 0xF4, 0xD1, 0x93, 0xCF, + 0x9F, 0xBC, 0x7A, 0xF1, 0xEC, 0x8B, 0x03, 0xED, 0x73, 0xFF, 0xD9, 0xE3, 0x03, 0x73, 0x51, 0x94, + 0x44, 0xC4, 0xF6, 0x87, 0x6C, 0x87, 0x93, 0xB2, 0x15, 0xAD, 0x3F, 0x1D, 0x3A, 0x28, 0x56, 0x1E, + 0x19, 0x4E, 0xA4, 0x47, 0x86, 0x0A, 0x0A, 0x1F, 0x55, 0x8A, 0xF0, 0x60, 0xC7, 0xB9, 0xE4, 0xBD, + 0x50, 0xD9, 0x3A, 0x38, 0xB9, 0xAD, 0xDF, 0x06, 0x92, 0x7F, 0x9E, 0xE3, 0xEC, 0x60, 0x99, 0xA5, + 0xEB, 0xB5, 0x61, 0x14, 0x3F, 0x4D, 0x5E, 0xE0, 0x9C, 0xFC, 0x08, 0x37, 0x3C, 0xFC, 0x8E, 0x9B, + 0x7D, 0x25, 0xE8, 0xF0, 0x2A, 0xBB, 0xB1, 0xBE, 0x4A, 0x13, 0x5E, 0xD0, 0xED, 0x71, 0xEA, 0xF0, + 0x2A, 0xBB, 0x8E, 0x73, 0x99, 0xAE, 0xF3, 0x88, 0x9F, 0x99, 0xC4, 0x6F, 0x6D, 0xDC, 0xCF, 0xE2, + 0x8B, 0x67, 0x67, 0x5C, 0x39, 0x9C, 0x25, 0x6D, 0x36, 0x2E, 0x32, 0x39, 0x28, 0x5F, 0xEA, 0xA7, + 0x17, 0x6D, 0xF9, 0x58, 0x92, 0x99, 0x8F, 0x31, 0x5A, 0xE4, 0x13, 0x73, 0x7D, 0xE3, 0x73, 0x78, + 0x29, 0x0A, 0x70, 0x9D, 0x79, 0x42, 0x72, 0xB1, 0xF0, 0xE2, 0x59, 0x2A, 0xE3, 0x90, 0xB9, 0x54, + 0x2A, 0x32, 0x60, 0x96, 0xB6, 0x81, 0x85, 0x7A, 0x61, 0x8D, 0x56, 0x6A, 0x94, 0xDF, 0xD7, 0x32, + 0x54, 0x1A, 0x8C, 0x2F, 0x00, 0xAF, 0x18, 0x82, 0x10, 0x23, 0x96, 0x37, 0xA4, 0x85, 0x63, 0x9E, + 0xA9, 0x6B, 0x58, 0x4A, 0xE5, 0x8C, 0xBA, 0x28, 0x14, 0x39, 0x7C, 0x70, 0x3D, 0x05, 0xAF, 0x72, + 0xC6, 0xC7, 0x71, 0x70, 0x57, 0xA1, 0xB3, 0xD2, 0x38, 0xFA, 0xF2, 0x04, 0xAF, 0xEE, 0xAD, 0xE3, + 0xE4, 0x35, 0xDB, 0x96, 0xA1, 0xBC, 0xDB, 0x55, 0x27, 0xF8, 0x62, 0x39, 0xC8, 0x08, 0x63, 0xB1, + 0xC7, 0x98, 0x3E, 0x3C, 0xB6, 0x5D, 0x07, 0xBC, 0x24, 0x1F, 0x1D, 0x8B, 0xA8, 0x7B, 0x2A, 0xEA, + 0xF0, 0x78, 0xB3, 0xB1, 0xF3, 0x88, 0x40, 0xAC, 0x44, 0xA8, 0x57, 0xB8, 0x52, 0x56, 0x94, 0x3B, + 0x28, 0x2F, 0x37, 0x6F, 0x11, 0x9D, 0x49, 0x63, 0xC9, 0x84, 0xEF, 0xA1, 0x7B, 0xA4, 0xCF, 0xEB, + 0xF3, 0x32, 0x3D, 0x43, 0x49, 0x2D, 0xF6, 0x5E, 0x4A, 0x69, 0x7A, 0x2A, 0xCD, 0x5F, 0x6B, 0xB0, + 0x8E, 0xA6, 0xD5, 0xC5, 0x37, 0xCE, 0x24, 0x7F, 0x78, 0xBE, 0x5E, 0xCF, 0x12, 0x80, 0xD3, 0x37, + 0xDE, 0xDB, 0xDE, 0x1E, 0xDE, 0x93, 0x51, 0x19, 0x5E, 0x5E, 0x2E, 0xD7, 0xD8, 0x76, 0xFA, 0xCB, + 0xF4, 0xEC, 0xF2, 0x61, 0x96, 0x9E, 0xDA, 0xB9, 0x13, 0xCA, 0x54, 0x38, 0x97, 0xCA, 0xA5, 0x85, + 0xC3, 0x32, 0x5E, 0x1C, 0xB2, 0x24, 0x3D, 0x0F, 0xB9, 0xA8, 0x4C, 0x47, 0x78, 0xAF, 0xA9, 0x91, + 0xBA, 0x5D, 0x9B, 0xF0, 0x73, 0x84, 0x52, 0x98, 0x45, 0xC4, 0xB6, 0x87, 0x5C, 0xC7, 0x09, 0x6D, + 0x59, 0xCF, 0x5E, 0x63, 0x2B, 0x6F, 0x36, 0x02, 0xBC, 0xD7, 0xE3, 0x6E, 0x6A, 0xCB, 0x8B, 0xB9, + 0xED, 0xAC, 0xE7, 0xCD, 0x14, 0x59, 0x27, 0xE4, 0x88, 0x3E, 0x58, 0x63, 0x98, 0x8B, 0xEC, 0xAC, + 0xE7, 0x21, 0xBC, 0xED, 0xA1, 0x6D, 0xCF, 0x41, 0x0A, 0x02, 0x53, 0x3B, 0xD1, 0x28, 0x2E, 0x9A, + 0x8B, 0x53, 0xF4, 0x0A, 0xBA, 0x9C, 0xCA, 0xD8, 0xC0, 0xC5, 0x57, 0x00, 0x39, 0x42, 0x02, 0x59, + 0xFB, 0xE6, 0x72, 0x26, 0x35, 0x4E, 0x5A, 0x85, 0x14, 0xC2, 0xE5, 0x80, 0xD0, 0xA4, 0x61, 0xB3, + 0xA2, 0xC8, 0x2E, 0xCE, 0xE4, 0x9A, 0xC5, 0xDB, 0x15, 0xEE, 0xCA, 0x7B, 0x02, 0x7A, 0x97, 0x65, + 0x63, 0x24, 0x49, 0x65, 0x81, 0x7A, 0x87, 0x70, 0x94, 0x4C, 0x89, 0x3C, 0xB3, 0xBC, 0xCA, 0x7D, + 0x75, 0x7E, 0x2B, 0x52, 0x7A, 0x18, 0xE5, 0xB2, 0xA6, 0xAE, 0x83, 0xB2, 0x2D, 0x45, 0x1D, 0x2B, + 0x46, 0x1E, 0x33, 0x9B, 0xB5, 0x97, 0xE4, 0xCB, 0xEA, 0x3F, 0x8F, 0x8F, 0x71, 0xAE, 0x56, 0x21, + 0x06, 0x4B, 0x84, 0xE3, 0x65, 0xD6, 0xCD, 0xB7, 0x3D, 0x95, 0xE1, 0x65, 0xFA, 0x32, 0x3D, 0xB3, + 0x1B, 0xE0, 0xB7, 0x35, 0xA6, 0x99, 0x2C, 0x7E, 0x99, 0xF2, 0x0E, 0xD0, 0x94, 0xCB, 0xC8, 0xC4, + 0xAA, 0x72, 0x1D, 0x9A, 0xEA, 0xC1, 0x53, 0x03, 0xF0, 0x4C, 0xF7, 0x78, 0x63, 0x14, 0xC4, 0x26, + 0xE1, 0x65, 0x94, 0xDB, 0xF3, 0xCC, 0x76, 0x51, 0xD2, 0x7F, 0x24, 0xC6, 0x64, 0x31, 0xBD, 0x3A, + 0x0B, 0xB4, 0xAC, 0xCF, 0xB9, 0x4B, 0xB6, 0xE3, 0x9A, 0x0E, 0x3E, 0x64, 0x85, 0xBB, 0x7F, 0xC2, + 0xF6, 0x57, 0x54, 0x62, 0x54, 0xAB, 0xDC, 0x4A, 0x7C, 0xEB, 0xB1, 0xF8, 0xF1, 0x1A, 0xBF, 0xC1, + 0xEB, 0xD2, 0x41, 0x03, 0xCF, 0x06, 0xC7, 0xE4, 0xE6, 0x73, 0x5B, 0x9E, 0xA0, 0x0A, 0xA8, 0x42, + 0x23, 0x03, 0x1B, 0x5B, 0x89, 0x1E, 0x3F, 0x66, 0x61, 0xD5, 0xF6, 0x22, 0x49, 0x4C, 0x0C, 0x12, + 0x9D, 0x89, 0x47, 0xA8, 0x87, 0x1E, 0x0B, 0xE2, 0xF5, 0x53, 0x51, 0x0D, 0x44, 0x4E, 0x28, 0x02, + 0x23, 0x28, 0xA8, 0xDA, 0x26, 0x56, 0xD8, 0x3C, 0x78, 0xE3, 0x61, 0xF0, 0xD3, 0xC5, 0xEC, 0x5F, + 0x90, 0xC5, 0xEC, 0x7E, 0x9A, 0xE1, 0x27, 0xE9, 0x79, 0x8E, 0xCD, 0x9E, 0xD0, 0xB8, 0x62, 0xE5, + 0xEB, 0xD4, 0x58, 0x1A, 0x5A, 0x3D, 0x89, 0xAE, 0x9E, 0x3E, 0x7B, 0xFA, 0x20, 0xBC, 0x82, 0xC5, + 0x59, 0x1E, 0xBA, 0x28, 0xC3, 0x39, 0xCD, 0xC8, 0x92, 0x82, 0x66, 0xF4, 0x96, 0x57, 0xA0, 0x1F, + 0x78, 0xAE, 0x4A, 0xF6, 0xCA, 0x64, 0x1C, 0xED, 0x0E, 0xC0, 0xDE, 0xCB, 0xE1, 0x39, 0xA5, 0x69, + 0xD2, 0xED, 0x82, 0xDF, 0x82, 0x3E, 0x77, 0xA1, 0xD3, 0xED, 0xDA, 0xB8, 0xBF, 0xA4, 0xD9, 0x1A, + 0x14, 0xA1, 0xFA, 0xF1, 0x9A, 0x6B, 0x44, 0xF1, 0xF9, 0x88, 0x05, 0xB7, 0x5C, 0xA7, 0x40, 0xDF, + 0x7F, 0xE9, 0xBB, 0x1A, 0xEE, 0xA9, 0x81, 0x3C, 0xF0, 0xB7, 0x4A, 0x7C, 0x05, 0xBA, 0xFF, 0xE2, + 0xEE, 0xF7, 0x14, 0xA8, 0x1F, 0xB4, 0x83, 0x6E, 0x36, 0x81, 0x46, 0x56, 0x81, 0xEE, 0x3E, 0xFD, + 0xA1, 0xCA, 0x17, 0x98, 0xF4, 0x6F, 0xB9, 0x45, 0x51, 0x3A, 0x04, 0x59, 0x6A, 0xFE, 0xE7, 0x22, + 0x41, 0xFE, 0x9E, 0x37, 0x0A, 0x5D, 0x67, 0x63, 0x0B, 0xCA, 0xF7, 0x06, 0xE2, 0x2B, 0x5E, 0xD3, + 0xBD, 0x49, 0xE8, 0x2A, 0x01, 0x19, 0x44, 0x65, 0x91, 0x7B, 0x36, 0xD9, 0x44, 0xA3, 0x01, 0x22, + 0x1B, 0x45, 0x13, 0x9B, 0xCF, 0x37, 0x51, 0xD0, 0x95, 0x20, 0x68, 0xD0, 0x2D, 0xF9, 0xC6, 0xC1, + 0x1D, 0x34, 0xA9, 0xC4, 0x81, 0x69, 0xBD, 0xC0, 0xD7, 0xB8, 0xBA, 0xC7, 0x90, 0xF8, 0xA1, 0x6B, + 0xD4, 0x96, 0xB2, 0xC9, 0x79, 0x13, 0x05, 0x8E, 0x83, 0x88, 0xF2, 0x10, 0xDE, 0x60, 0x9B, 0x06, + 0xAD, 0xA2, 0xAB, 0xFB, 0x0F, 0x1E, 0xDE, 0xFD, 0xFC, 0xF1, 0x4B, 0x56, 0xF7, 0xD2, 0xB0, 0x0D, + 0xAB, 0xF7, 0x96, 0xE7, 0xF4, 0x02, 0x1F, 0x61, 0xB6, 0xCC, 0xE3, 0x81, 0x2C, 0xBD, 0xE8, 0x05, + 0xBE, 0xBA, 0x8C, 0x06, 0xBB, 0x3B, 0xFE, 0x70, 0xB8, 0xD9, 0xD0, 0xB9, 0xA7, 0x42, 0x3E, 0x84, + 0xF6, 0x2C, 0x2B, 0xFC, 0xEA, 0x2F, 0xCD, 0x9F, 0x7C, 0x74, 0xB5, 0x06, 0xFB, 0x3C, 0x4E, 0xC1, + 0x43, 0x9E, 0x0A, 0xF9, 0x0B, 0xA7, 0xF8, 0xAA, 0x40, 0x07, 0xDF, 0x7B, 0x61, 0x14, 0xED, 0x1A, + 0x12, 0xA3, 0x4B, 0xD3, 0x9E, 0x75, 0x6A, 0x85, 0xD6, 0x13, 0x4B, 0x3A, 0xAC, 0xF8, 0x4B, 0xF3, + 0x9D, 0x8F, 0xAE, 0x80, 0x50, 0xD7, 0x29, 0x66, 0x1F, 0x5D, 0x01, 0xA1, 0x3C, 0x90, 0xA5, 0x17, + 0xC5, 0x47, 0x57, 0x54, 0xE0, 0x7F, 0xF5, 0xFC, 0xD1, 0x0F, 0x1E, 0x3C, 0x3E, 0xF8, 0xD6, 0x8A, + 0x79, 0xCB, 0xFF, 0x5C, 0x8A, 0x22, 0x0A, 0x58, 0x38, 0xBF, 0xAA, 0x6C, 0xDB, 0xE2, 0xD6, 0x6D, + 0x1B, 0x13, 0x28, 0xD3, 0x16, 0xDD, 0xA1, 0x31, 0x09, 0x62, 0xED, 0xD4, 0x58, 0x6D, 0x46, 0x95, + 0xC9, 0xB4, 0x94, 0xA6, 0xB0, 0xA1, 0x28, 0xED, 0xAB, 0x25, 0xCB, 0x74, 0x45, 0x92, 0x63, 0x2D, + 0x8A, 0xEF, 0x44, 0x9E, 0x0B, 0xD8, 0x52, 0xBB, 0x90, 0xC7, 0x3F, 0x10, 0x19, 0xCA, 0xF8, 0x75, + 0x9C, 0x53, 0xD8, 0xB3, 0x45, 0x60, 0x12, 0x58, 0xAE, 0x63, 0x24, 0x02, 0xFD, 0xCC, 0xBD, 0xB2, + 0x4F, 0x6A, 0xDC, 0xE9, 0x35, 0xE5, 0xAB, 0xA1, 0xE3, 0x3B, 0x3F, 0xB8, 0x5A, 0x15, 0xCB, 0xD4, + 0x4E, 0x7A, 0xD4, 0x11, 0x03, 0xDD, 0x6B, 0x7C, 0x99, 0xDB, 0x27, 0x0E, 0xBF, 0x65, 0x8E, 0x57, + 0x2B, 0x99, 0xD5, 0xC6, 0xE8, 0x04, 0xD4, 0xD2, 0xAE, 0xC9, 0xB6, 0x2A, 0xB3, 0xC9, 0x9A, 0xDA, + 0x18, 0xAD, 0x20, 0x9B, 0xA8, 0x02, 0x4C, 0xE3, 0x85, 0x89, 0x97, 0x96, 0x2F, 0x67, 0x05, 0x8B, + 0x61, 0x66, 0x2D, 0x4C, 0x34, 0xA5, 0x85, 0x1E, 0xC9, 0x75, 0x0E, 0x55, 0x9E, 0x55, 0x29, 0x94, + 0xD5, 0x33, 0x67, 0x23, 0x95, 0x67, 0x10, 0x23, 0x34, 0x30, 0x31, 0xBF, 0x2B, 0x0F, 0xF5, 0x45, + 0x36, 0xCD, 0x50, 0x86, 0xA2, 0xA8, 0x09, 0xD5, 0x82, 0x73, 0x32, 0xD7, 0x0E, 0xBB, 0xCA, 0x6A, + 0xF1, 0x5B, 0xAC, 0x7A, 0xC5, 0xEA, 0x46, 0xB2, 0xCE, 0x93, 0xD7, 0x49, 0x7A, 0x91, 0x74, 0x24, + 0x54, 0xC7, 0xFA, 0xE8, 0x0A, 0x17, 0xD6, 0x57, 0xA6, 0xEA, 0xB1, 0x92, 0x29, 0xDC, 0x22, 0x25, + 0xDA, 0x9D, 0x85, 0x51, 0xA0, 0x20, 0x52, 0xBF, 0xBF, 0x50, 0x6C, 0x6D, 0xE4, 0x94, 0x4C, 0xD5, + 0xAA, 0x55, 0xB6, 0x83, 0x5E, 0x2D, 0xBD, 0x25, 0xDA, 0xAB, 0x25, 0xA1, 0x9A, 0xAB, 0xA5, 0xBA, + 0x44, 0x45, 0x61, 0xAD, 0xDA, 0x91, 0xD8, 0xB4, 0x28, 0x3A, 0x4D, 0xB5, 0x2F, 0x89, 0x61, 0xB4, + 0xB9, 0x4B, 0x15, 0x34, 0x23, 0xC7, 0xC7, 0x38, 0x2B, 0x9B, 0x5B, 0xA9, 0x1D, 0x2C, 0xD3, 0x35, + 0x5C, 0x31, 0xB2, 0xC0, 0x6E, 0xD4, 0x30, 0x1E, 0x88, 0xC3, 0x0F, 0x18, 0xD4, 0x38, 0x64, 0x96, + 0x5E, 0x34, 0x43, 0xB2, 0xAD, 0x43, 0xE9, 0xFC, 0x94, 0x1C, 0xD9, 0xFA, 0x14, 0xD4, 0xED, 0x1A, + 0xF3, 0x86, 0x01, 0x17, 0x54, 0xE0, 0xB6, 0x5A, 0xE0, 0xCC, 0xC9, 0xDD, 0xD6, 0xF1, 0x6D, 0x36, + 0x81, 0x8E, 0xDD, 0xC8, 0xC6, 0xA7, 0x90, 0x9E, 0x98, 0x41, 0x7A, 0xE6, 0x04, 0x26, 0x57, 0x46, + 0x8A, 0x63, 0xEA, 0x51, 0xEB, 0x2F, 0x9E, 0xC7, 0x6B, 0xDE, 0x37, 0xEC, 0x0A, 0x08, 0xC2, 0xC8, + 0x2A, 0x07, 0x76, 0x4B, 0x5D, 0x4F, 0x99, 0x8D, 0x62, 0x12, 0x51, 0xEB, 0x05, 0xCD, 0x9D, 0x49, + 0xAE, 0x05, 0x6C, 0xAC, 0x65, 0x37, 0x6F, 0xDE, 0x4B, 0x89, 0x6B, 0x2A, 0x75, 0x61, 0x97, 0x8E, + 0xFC, 0x68, 0xB7, 0x6B, 0x2B, 0xC9, 0x68, 0xA1, 0x72, 0xAF, 0x36, 0xDA, 0xF7, 0x85, 0xB4, 0xDC, + 0x23, 0x49, 0x9C, 0x5D, 0x72, 0x71, 0x51, 0x37, 0xC9, 0x0D, 0x70, 0xF7, 0x63, 0x1A, 0x0B, 0x28, + 0x36, 0x49, 0x39, 0x35, 0x11, 0x64, 0x73, 0x57, 0x81, 0xDF, 0x9E, 0xAD, 0x63, 0x92, 0x08, 0x86, + 0x2A, 0xD5, 0x89, 0xAB, 0x55, 0x7A, 0x91, 0x84, 0x5B, 0x5B, 0xB6, 0xD7, 0xC5, 0x0E, 0x3A, 0x3F, + 0x63, 0x41, 0x9F, 0x05, 0x57, 0x59, 0x7C, 0xCC, 0x3E, 0x06, 0xEC, 0xE3, 0x34, 0x7D, 0x83, 0xD9, + 0xC7, 0x84, 0x7D, 0x5C, 0x9C, 0x60, 0xBC, 0x86, 0x2C, 0xA3, 0x2E, 0x5B, 0x9E, 0x1A, 0x2D, 0x55, + 0x3E, 0x05, 0x22, 0x42, 0xC2, 0xDF, 0xB2, 0x81, 0xAC, 0xFF, 0xB6, 0x22, 0x11, 0x97, 0x10, 0x7B, + 0xA9, 0x62, 0x0B, 0xA5, 0x19, 0xC8, 0x84, 0x05, 0x12, 0x97, 0xE9, 0xBA, 0x92, 0x29, 0x4B, 0x2F, + 0x20, 0x25, 0x4B, 0x2F, 0xCA, 0x8C, 0x4A, 0x91, 0x98, 0xCB, 0x25, 0x78, 0xF5, 0x92, 0x22, 0x2A, + 0x85, 0x0C, 0x22, 0xA5, 0xBC, 0x89, 0x55, 0x28, 0x14, 0x41, 0xB3, 0x35, 0x40, 0xAD, 0x29, 0x07, + 0x59, 0x53, 0xF6, 0xC9, 0x97, 0xA4, 0x2C, 0x02, 0x42, 0x45, 0x31, 0x7B, 0xA5, 0xED, 0x64, 0x8D, + 0x3D, 0xAB, 0x83, 0x32, 0xDB, 0x63, 0xB1, 0xFB, 0x65, 0xC3, 0x38, 0x0B, 0xF4, 0xAA, 0x71, 0x0D, + 0xFE, 0xAA, 0x40, 0xA3, 0xE9, 0x78, 0xF8, 0xD3, 0x4D, 0xD8, 0x5F, 0xA0, 0x4D, 0xD8, 0x3B, 0xED, + 0xBF, 0xBC, 0x41, 0x30, 0x2D, 0x6F, 0x0C, 0xD0, 0x52, 0x36, 0xDF, 0x51, 0x86, 0xF1, 0x8F, 0xB0, + 0x7D, 0x45, 0x92, 0x1C, 0x67, 0xF4, 0x49, 0xBA, 0xC2, 0x60, 0xB9, 0x02, 0xAD, 0xAB, 0x00, 0xF1, + 0xD9, 0xD9, 0x9A, 0x2C, 0xC1, 0xE4, 0xD2, 0x3E, 0xE8, 0x35, 0x7D, 0x86, 0x2F, 0xF3, 0x70, 0xCB, + 0x43, 0x5A, 0xC2, 0x67, 0xF8, 0xF2, 0x2C, 0x86, 0x37, 0xB8, 0x87, 0x59, 0xBC, 0x7C, 0x8D, 0x29, + 0x5E, 0x3D, 0x8F, 0x73, 0x8A, 0x05, 0x5A, 0x94, 0x66, 0xE4, 0x98, 0x24, 0x2C, 0x24, 0x6C, 0x54, + 0x7E, 0x91, 0xC5, 0x67, 0x31, 0xB8, 0xDA, 0x63, 0x91, 0x39, 0x4E, 0x56, 0x0F, 0xD3, 0xE5, 0x39, + 0xA0, 0xBD, 0xD0, 0x92, 0xDC, 0x82, 0xBB, 0x74, 0x58, 0xDD, 0xFA, 0x06, 0x83, 0x4B, 0xFF, 0x6D, + 0x16, 0xC3, 0xEB, 0xF4, 0xB8, 0xBA, 0x16, 0x4E, 0x8D, 0x03, 0x25, 0x69, 0x99, 0x8B, 0xE4, 0xBC, + 0xDE, 0x8F, 0xB8, 0xF1, 0x33, 0xF2, 0x23, 0xED, 0x25, 0xA9, 0x4C, 0xFB, 0x94, 0xAC, 0x56, 0x38, + 0xD1, 0x2F, 0x48, 0xC0, 0xCF, 0xE6, 0xAD, 0x17, 0xB8, 0x25, 0xB4, 0xC8, 0x5A, 0xB9, 0x1A, 0x29, + 0xBD, 0xF5, 0xDE, 0x1A, 0x65, 0x25, 0x8B, 0x8E, 0xA4, 0x82, 0x9C, 0xCF, 0x0A, 0xB7, 0xC7, 0xAC, + 0xC3, 0xAB, 0xEC, 0x15, 0x9C, 0x2F, 0xF0, 0x2F, 0x9E, 0xE3, 0x9C, 0x1E, 0x18, 0xC7, 0x87, 0xB7, + 0x2F, 0xE2, 0x9A, 0xEC, 0x6D, 0xC8, 0x75, 0x02, 0x4E, 0xD3, 0x15, 0xCE, 0x23, 0xDB, 0x45, 0x31, + 0x3F, 0x71, 0x76, 0xEC, 0xA5, 0x40, 0xBD, 0xC2, 0xCB, 0xE7, 0x19, 0x68, 0xC9, 0x3C, 0xA9, 0xC1, + 0xAC, 0x2B, 0x17, 0x21, 0xEF, 0x8D, 0xA5, 0x36, 0x8B, 0xCA, 0x3B, 0x12, 0xA5, 0x11, 0x63, 0x4A, + 0x9A, 0x7E, 0xC1, 0xB4, 0x22, 0x20, 0xD5, 0x07, 0x74, 0x45, 0x12, 0x53, 0x7D, 0x98, 0x34, 0xAE, + 0xD0, 0xC4, 0x19, 0xB7, 0x5A, 0xE3, 0xB4, 0x63, 0xE6, 0x67, 0xA9, 0xCF, 0x4A, 0x31, 0xE8, 0x76, + 0xC5, 0x31, 0xFB, 0x56, 0x14, 0x11, 0x79, 0xEC, 0x7C, 0x3D, 0x8F, 0xB9, 0x33, 0x58, 0x54, 0x96, + 0xA6, 0x09, 0x95, 0x4C, 0xAB, 0xF4, 0xAE, 0xFE, 0x0A, 0x1F, 0x9E, 0x1F, 0xDB, 0x5F, 0xE5, 0xDC, + 0xFF, 0x2C, 0xF7, 0x84, 0x2D, 0xD6, 0xCC, 0xDC, 0x98, 0x33, 0x86, 0x7B, 0x0D, 0x6A, 0x5B, 0x96, + 0x70, 0x18, 0x83, 0x59, 0x9C, 0x61, 0x30, 0xD4, 0xD1, 0x8C, 0x54, 0xF3, 0xFE, 0x01, 0xA5, 0x61, + 0xC5, 0x6B, 0x7D, 0x65, 0x53, 0x5A, 0x54, 0xBC, 0x15, 0x97, 0xD5, 0x4B, 0xC2, 0x76, 0x9A, 0x0F, + 0x01, 0xFB, 0x87, 0x51, 0x2D, 0xBA, 0x89, 0xA0, 0x9B, 0x0D, 0xFF, 0xAB, 0x1B, 0x57, 0x00, 0x8F, + 0x15, 0x45, 0x2C, 0xCA, 0x6F, 0x3C, 0xF4, 0x5E, 0x55, 0xA7, 0x85, 0x55, 0x81, 0xA6, 0xEE, 0x78, + 0xF0, 0x81, 0xAE, 0x2E, 0xF9, 0x94, 0x4B, 0xD2, 0xA4, 0x71, 0xB6, 0x01, 0xA5, 0x3D, 0x77, 0x38, + 0xD4, 0x94, 0xF6, 0xC0, 0x87, 0x12, 0xCC, 0x31, 0xE0, 0x42, 0xC9, 0x73, 0x47, 0x8E, 0x30, 0x5F, + 0xE4, 0xA2, 0x93, 0xC8, 0xAD, 0x59, 0xDC, 0x4F, 0xDA, 0xC6, 0xF0, 0xEA, 0xF0, 0xBD, 0x52, 0xA4, + 0xF0, 0x97, 0x78, 0x69, 0xFF, 0x00, 0xAC, 0x56, 0x3F, 0x26, 0x39, 0x05, 0xAE, 0xF3, 0xB5, 0x09, + 0xDE, 0xE3, 0x14, 0x86, 0xB8, 0x7F, 0x1A, 0x67, 0xAF, 0x85, 0x22, 0xAB, 0x2E, 0x36, 0x0A, 0xCF, + 0x0B, 0x31, 0x02, 0x35, 0x3A, 0xFB, 0xCF, 0x5A, 0x46, 0xE8, 0xD6, 0xDC, 0x2D, 0xA8, 0x2B, 0x03, + 0xA2, 0x0E, 0xC2, 0xD6, 0xBE, 0xEF, 0x59, 0xB4, 0x96, 0xB5, 0x09, 0xA9, 0x5E, 0xA8, 0x6E, 0x6F, + 0x3E, 0x69, 0xB4, 0x37, 0x5F, 0x39, 0xF3, 0xA8, 0xB1, 0xBB, 0xCF, 0x5F, 0xCF, 0xD8, 0xE2, 0xFC, + 0xA3, 0xB1, 0x40, 0x21, 0xCF, 0xE6, 0x41, 0x88, 0x54, 0x2B, 0xD4, 0x70, 0x55, 0xF7, 0xE4, 0x4D, + 0xC5, 0x94, 0x2A, 0x61, 0x2A, 0x51, 0xED, 0x6A, 0x45, 0x9B, 0xD6, 0x75, 0xEA, 0xF5, 0x57, 0x8F, + 0x6B, 0xA5, 0xB2, 0xAC, 0xB9, 0xCF, 0x15, 0x39, 0x4B, 0xFD, 0x7C, 0xAE, 0x1E, 0x59, 0xBE, 0x2B, + 0x70, 0x9C, 0x19, 0xAD, 0x26, 0x5F, 0xD1, 0xF2, 0x55, 0xB0, 0x46, 0x29, 0x37, 0xB9, 0x01, 0xFE, + 0x7B, 0x6F, 0x60, 0x09, 0x75, 0x90, 0xF6, 0x74, 0x81, 0xB1, 0xA4, 0x2E, 0xCE, 0x7D, 0xBE, 0xF8, + 0xB2, 0xE9, 0xF5, 0x42, 0x2A, 0x11, 0x96, 0xEF, 0x24, 0xE5, 0x34, 0x75, 0xFB, 0x06, 0xD4, 0x68, + 0x99, 0xD5, 0xC1, 0xC0, 0xD8, 0x88, 0xED, 0x14, 0x9F, 0x1C, 0x63, 0x5A, 0x52, 0x90, 0xDF, 0x55, + 0xBA, 0xCB, 0x6A, 0x4B, 0x81, 0x32, 0xC4, 0x9F, 0x31, 0xA4, 0x91, 0x8B, 0xE2, 0xC8, 0xD5, 0xCE, + 0xCD, 0x4E, 0x9A, 0x49, 0x38, 0xC6, 0xF4, 0x33, 0x7C, 0xF9, 0x88, 0xE2, 0x2C, 0x86, 0xDD, 0x81, + 0xE3, 0xA4, 0x70, 0x82, 0xB1, 0x15, 0x45, 0x76, 0x1E, 0x9D, 0xF4, 0xC5, 0x20, 0xDD, 0x7F, 0xEB, + 0x74, 0xBB, 0xBC, 0x07, 0x6F, 0xC1, 0x3E, 0x23, 0x64, 0xF8, 0xD3, 0x9E, 0x2D, 0x61, 0x33, 0x0D, + 0xF6, 0x82, 0xAC, 0xE8, 0x89, 0x0E, 0x9F, 0xED, 0x65, 0xA1, 0xE7, 0x20, 0xBC, 0x1B, 0xA5, 0xDD, + 0x2E, 0xDE, 0x89, 0xBB, 0x5D, 0x7B, 0x8B, 0x6C, 0x36, 0x2A, 0x73, 0xA2, 0x65, 0x5E, 0xC7, 0x97, + 0x38, 0xD3, 0x33, 0x27, 0x7B, 0x49, 0x68, 0x1D, 0xC2, 0x04, 0x67, 0x39, 0x60, 0x7A, 0xA0, 0xDB, + 0xB5, 0x2F, 0x09, 0x5E, 0xAF, 0x3A, 0x27, 0x4E, 0x71, 0x94, 0x66, 0x0F, 0xE2, 0xE5, 0x49, 0xC9, + 0x16, 0x9D, 0x2B, 0xCA, 0x7D, 0x9B, 0x51, 0x65, 0x91, 0xE5, 0xDE, 0xE5, 0x67, 0x98, 0x0D, 0xB3, + 0x36, 0x8D, 0x76, 0xE5, 0x0E, 0x0B, 0xA5, 0xB3, 0x38, 0x2A, 0xAB, 0x44, 0x9B, 0xAB, 0xCF, 0xAA, + 0xC3, 0x46, 0xCD, 0xB8, 0xA7, 0xD5, 0x80, 0xB6, 0x57, 0x9F, 0xD5, 0x80, 0x57, 0x3F, 0x66, 0xD5, + 0x3F, 0xA9, 0x56, 0x3F, 0xD5, 0x32, 0xD7, 0xAA, 0x9F, 0xEE, 0xA5, 0xB5, 0xEA, 0xC3, 0x6D, 0xAB, + 0xE3, 0x54, 0xDE, 0xF1, 0xFC, 0x89, 0x8C, 0x15, 0x45, 0xD3, 0x64, 0xB3, 0x14, 0xD3, 0xC5, 0xFA, + 0xE6, 0xE9, 0xA2, 0xAA, 0xB4, 0x24, 0xEA, 0x29, 0xD7, 0xF9, 0xFA, 0x73, 0x16, 0xAF, 0x5C, 0x5E, + 0x26, 0x2B, 0x9C, 0x89, 0x71, 0xF6, 0xF6, 0x03, 0x31, 0xCF, 0x16, 0x35, 0x21, 0xA9, 0x8E, 0xF6, + 0xE2, 0x39, 0xD1, 0xED, 0xC7, 0x78, 0x3D, 0x43, 0x89, 0xC0, 0x40, 0x2B, 0x74, 0x5A, 0x8E, 0xF5, + 0x33, 0x75, 0x1E, 0xF7, 0x50, 0x8F, 0xE3, 0xE3, 0x5D, 0x24, 0x87, 0x4C, 0x83, 0x2B, 0xFD, 0xF4, + 0x0D, 0xE3, 0x30, 0xBE, 0x78, 0x71, 0xBE, 0xC6, 0x99, 0x58, 0x4B, 0x74, 0xBB, 0x5B, 0x37, 0xC2, + 0xF4, 0xA5, 0xDD, 0x44, 0x39, 0x2C, 0xDE, 0x0A, 0x38, 0xB2, 0x8E, 0xCE, 0xD7, 0x6B, 0xA1, 0x7D, + 0x7D, 0x18, 0x2F, 0x5F, 0x1F, 0xC3, 0xC6, 0x0E, 0x5C, 0xCF, 0xBF, 0xF8, 0xDE, 0x3D, 0xED, 0xA9, + 0x08, 0x3F, 0x5E, 0x30, 0xEB, 0x59, 0x2D, 0xAA, 0x82, 0x60, 0xAF, 0xC2, 0x95, 0xBC, 0xBF, 0xCC, + 0xF3, 0x3E, 0x4D, 0x21, 0xF1, 0xDA, 0x9C, 0xEA, 0xE4, 0x4B, 0x66, 0xE5, 0x7D, 0xA1, 0xA2, 0x3B, + 0x74, 0x0C, 0x54, 0x1F, 0xA5, 0x19, 0x7E, 0x07, 0xAA, 0x1F, 0xD6, 0xA8, 0xAE, 0x20, 0xD8, 0xAB, + 0xB4, 0xDB, 0x35, 0x54, 0x57, 0x72, 0x9A, 0x54, 0x3F, 0x6C, 0xA6, 0xFA, 0xE1, 0x71, 0xCD, 0xAA, + 0x53, 0x29, 0x4C, 0x62, 0x85, 0x0E, 0xDD, 0x45, 0x7B, 0x56, 0x57, 0x14, 0x68, 0x10, 0x0C, 0x26, + 0x1F, 0xB6, 0x60, 0x7C, 0x04, 0xCF, 0xC2, 0x28, 0x31, 0xBA, 0x31, 0xED, 0x8B, 0xD0, 0x3E, 0xB7, + 0x84, 0xC6, 0x44, 0xA2, 0xB6, 0x8E, 0xE4, 0xA7, 0x16, 0xB0, 0x8E, 0x0C, 0x06, 0x81, 0x74, 0xCD, + 0x94, 0x18, 0x9D, 0xBC, 0xDF, 0xEF, 0x97, 0xE6, 0xCE, 0x13, 0x9A, 0x11, 0xCC, 0xD7, 0x82, 0x4F, + 0xE2, 0xB3, 0x72, 0x06, 0x9A, 0x53, 0x44, 0x16, 0xE9, 0x51, 0x47, 0xD8, 0x84, 0x82, 0xD7, 0xF7, + 0x88, 0x80, 0xE1, 0xF4, 0x26, 0x37, 0x01, 0x02, 0x8F, 0x7C, 0xE9, 0x64, 0xAC, 0x4E, 0x64, 0x9A, + 0xCC, 0x8A, 0x88, 0x9C, 0x07, 0xD8, 0x78, 0x53, 0x2B, 0xD1, 0xCC, 0x24, 0xFE, 0xB2, 0x59, 0x97, + 0x13, 0x70, 0x12, 0xE7, 0xB5, 0x97, 0x65, 0x12, 0x98, 0xA7, 0x15, 0x9C, 0x88, 0x66, 0x10, 0x9E, + 0xC6, 0x06, 0xCA, 0x3A, 0x37, 0x93, 0x36, 0xD6, 0x5F, 0x63, 0x9A, 0x8D, 0x43, 0x70, 0x06, 0x4A, + 0xC3, 0x2F, 0x32, 0x12, 0x6A, 0x9C, 0xF7, 0x1F, 0x35, 0xE1, 0xE4, 0x7A, 0x8B, 0x45, 0xA9, 0xF3, + 0xA2, 0x5F, 0x5F, 0x19, 0x08, 0x40, 0xB9, 0xFC, 0x58, 0x83, 0xAB, 0xD4, 0x4C, 0x01, 0x8B, 0xAA, + 0x71, 0x43, 0x63, 0x8F, 0xC4, 0xCB, 0x42, 0x1B, 0xA3, 0x7E, 0xBF, 0xAF, 0xB5, 0x17, 0x18, 0x77, + 0x29, 0xD1, 0xDD, 0xC7, 0x67, 0x6C, 0xE8, 0x4D, 0x96, 0x04, 0xE7, 0x8E, 0x8D, 0x9D, 0x7E, 0x9E, + 0x66, 0x54, 0xB9, 0x19, 0xC5, 0xDC, 0xBA, 0xDA, 0x36, 0xE5, 0x7F, 0x1D, 0x07, 0xE5, 0xD2, 0xE2, + 0x81, 0x58, 0x2A, 0xB2, 0xF9, 0x8B, 0xD4, 0x1E, 0x25, 0xEB, 0x24, 0xD1, 0x3E, 0x59, 0xC1, 0x42, + 0x72, 0x8B, 0xD4, 0x2F, 0x80, 0xE6, 0x26, 0xB5, 0x8B, 0xCE, 0x47, 0x57, 0xB8, 0x9F, 0xC4, 0xA7, + 0xB8, 0xE8, 0xAC, 0x80, 0xB2, 0xBC, 0x93, 0x26, 0x9D, 0xCF, 0x9F, 0x7E, 0xF6, 0xF4, 0xD9, 0x17, + 0x4F, 0x3B, 0x02, 0x6F, 0xE7, 0xA3, 0x2B, 0x86, 0xB4, 0xE8, 0x7F, 0xE5, 0xCC, 0xD4, 0xBB, 0xD3, + 0x42, 0x1D, 0xDD, 0x49, 0xE3, 0x01, 0xEE, 0x1E, 0x99, 0xBB, 0x0B, 0x4E, 0x79, 0x48, 0xD5, 0x5B, + 0xD0, 0x23, 0x5B, 0x86, 0xD9, 0x64, 0x7F, 0x0B, 0x92, 0x1E, 0x92, 0x8C, 0xF5, 0x2E, 0x51, 0xF6, + 0x4A, 0x32, 0xEC, 0x92, 0x55, 0xBD, 0x24, 0x37, 0xA6, 0x1D, 0x39, 0x52, 0x77, 0x3E, 0xBA, 0x4A, + 0x7A, 0x5E, 0xD1, 0x59, 0xA6, 0xC9, 0xD1, 0x9A, 0x2C, 0x69, 0xDE, 0xB9, 0x20, 0xF4, 0x04, 0xA8, + 0x16, 0x2F, 0xD9, 0x3A, 0xC2, 0xE4, 0x88, 0x3A, 0x22, 0x2E, 0x7D, 0xDB, 0x30, 0x4A, 0x30, 0xEB, + 0xA3, 0x73, 0xD6, 0x6E, 0xAC, 0xF1, 0xF2, 0x05, 0x7F, 0x5C, 0x30, 0x19, 0x8D, 0x7E, 0x7A, 0x34, + 0xFD, 0x17, 0xE4, 0x68, 0xBA, 0x3C, 0xAC, 0xA8, 0x9F, 0x4C, 0xAB, 0x73, 0x01, 0x3E, 0xD8, 0xC7, + 0xD1, 0x15, 0x9C, 0xB0, 0x84, 0x29, 0xCB, 0x05, 0x5A, 0x6C, 0x0F, 0x92, 0xF3, 0xD3, 0xFE, 0xFD, + 0x07, 0xF7, 0x3E, 0xFF, 0x1E, 0x22, 0xC9, 0x51, 0x5A, 0x4D, 0x79, 0xF4, 0xF4, 0xE1, 0x33, 0x74, + 0x11, 0x67, 0x49, 0x35, 0xE1, 0x8B, 0xBB, 0x2F, 0x9E, 0x22, 0x30, 0xF1, 0x5C, 0x4D, 0x79, 0xF0, + 0xE2, 0xC5, 0xB3, 0x17, 0x28, 0x3D, 0x3A, 0xAA, 0x26, 0x3C, 0x7B, 0xF8, 0x90, 0x6B, 0x58, 0x9C, + 0x54, 0x8E, 0x95, 0x6F, 0xBD, 0xC6, 0xAC, 0x9E, 0x14, 0x8B, 0xB5, 0xE6, 0x5A, 0x94, 0x12, 0xD5, + 0x0B, 0x14, 0xF9, 0xCE, 0xCF, 0x56, 0x31, 0xC5, 0x32, 0xD1, 0xAE, 0x7A, 0x86, 0x6B, 0x3C, 0xB6, + 0x4A, 0x93, 0x83, 0x33, 0xBC, 0x24, 0x47, 0x64, 0xC9, 0x97, 0x57, 0xFC, 0x5A, 0xDC, 0xB6, 0x64, + 0x69, 0x16, 0xD2, 0xDE, 0xFB, 0x55, 0x0B, 0x60, 0x3B, 0xF1, 0x5A, 0xE4, 0x95, 0x49, 0x6D, 0x3C, + 0xBF, 0xE9, 0xB8, 0x4C, 0x82, 0x2E, 0x8A, 0x57, 0xF8, 0x4D, 0xBC, 0x7E, 0x1C, 0xFF, 0xE8, 0x92, + 0x27, 0xC5, 0xEB, 0xD2, 0x1A, 0x45, 0xD5, 0x85, 0x98, 0x18, 0xBC, 0x68, 0xAF, 0xE7, 0x34, 0xF4, + 0x29, 0x3C, 0xA7, 0x0B, 0x69, 0xD4, 0x81, 0xFD, 0xB0, 0x3D, 0xF2, 0xAB, 0x75, 0x7A, 0x6C, 0x5A, + 0xFB, 0x6A, 0x29, 0x8D, 0xB0, 0xCD, 0x35, 0x18, 0x8B, 0x61, 0xAD, 0x94, 0xAE, 0x31, 0xB2, 0xDE, + 0x52, 0x9C, 0x9D, 0xF6, 0x7F, 0x21, 0x0F, 0x3B, 0x56, 0x0F, 0x86, 0x20, 0xE2, 0x14, 0xFC, 0x14, + 0x4F, 0xCE, 0x26, 0x46, 0xA5, 0x77, 0xAA, 0x6D, 0x04, 0xA2, 0xA7, 0x6E, 0x8E, 0xD3, 0x63, 0x89, + 0x99, 0xE5, 0x40, 0x30, 0x9F, 0x31, 0xB1, 0xBC, 0x25, 0x32, 0x26, 0xAD, 0x4D, 0xB8, 0x18, 0x0A, + 0x8E, 0x8C, 0x89, 0xF2, 0x2D, 0x91, 0x31, 0x09, 0x6F, 0x42, 0xC6, 0x50, 0x70, 0x64, 0x20, 0xFE, + 0xB7, 0xC4, 0x06, 0xBD, 0xA2, 0x09, 0x1D, 0x20, 0xE1, 0xF8, 0x8A, 0xD9, 0x89, 0x3C, 0x9A, 0x4C, + 0x1B, 0x4E, 0x1C, 0x4F, 0x2A, 0xBD, 0xFD, 0xA4, 0x40, 0xE3, 0xC0, 0xFD, 0x50, 0x93, 0xB4, 0x66, + 0x8F, 0xA2, 0x7D, 0x71, 0xC9, 0xFD, 0xEA, 0xD9, 0xF3, 0x97, 0x8F, 0x9E, 0x3D, 0x3D, 0x68, 0x72, + 0xE1, 0x3E, 0x12, 0xC6, 0x69, 0x47, 0x9E, 0x37, 0x28, 0xCF, 0x1F, 0x67, 0xF5, 0xBC, 0xFC, 0xC1, + 0xC3, 0xC4, 0xE5, 0x2F, 0x1E, 0xFC, 0x01, 0xE2, 0x2F, 0xF4, 0xEF, 0xAD, 0x49, 0xF2, 0x3A, 0xDC, + 0xF2, 0xC4, 0xE7, 0x01, 0xBD, 0x5C, 0xE3, 0xD0, 0x3A, 0x5C, 0xA7, 0xCB, 0xD7, 0x96, 0x88, 0xFB, + 0x82, 0x6D, 0xB5, 0x43, 0x06, 0x91, 0xD3, 0xF4, 0xF4, 0x7B, 0xEB, 0xCB, 0xB3, 0x93, 0x3C, 0xDC, + 0x72, 0xD1, 0x2A, 0x8B, 0x2F, 0xEE, 0xA5, 0xEB, 0xD5, 0x4B, 0xFC, 0x96, 0x3E, 0x4A, 0xEE, 0x65, + 0xE4, 0xF8, 0x84, 0xC2, 0x2A, 0x1D, 0x52, 0x8F, 0x62, 0x79, 0x72, 0xFE, 0x24, 0x5D, 0x81, 0xDB, + 0xA2, 0xD0, 0x8A, 0xD7, 0xD4, 0xD2, 0x12, 0x0E, 0x30, 0x38, 0x2A, 0x78, 0x43, 0xE8, 0x65, 0x38, + 0x44, 0x47, 0x69, 0x42, 0x1F, 0xC6, 0xA7, 0x64, 0x7D, 0x19, 0x5A, 0xCB, 0xF4, 0x3C, 0x23, 0x38, + 0xDB, 0x4E, 0xF0, 0x05, 0xEA, 0x88, 0x0F, 0xD4, 0x39, 0x4D, 0x93, 0x14, 0x9E, 0x42, 0x5B, 0x00, + 0x7C, 0x40, 0x7E, 0x84, 0x43, 0x8F, 0x67, 0xFC, 0x02, 0xB3, 0xD2, 0x43, 0xF9, 0xD6, 0x58, 0x8B, + 0x63, 0x14, 0xB2, 0xBD, 0xFD, 0x7A, 0x65, 0xA1, 0x35, 0x49, 0xF0, 0xA7, 0x1C, 0xD2, 0x43, 0x6B, + 0xCC, 0x76, 0x9F, 0x07, 0x67, 0xF1, 0x92, 0x24, 0xC7, 0xA1, 0xCB, 0x12, 0x5F, 0x8B, 0x97, 0x81, + 0x30, 0x9F, 0x22, 0x29, 0x3F, 0xA1, 0xC5, 0x64, 0xD6, 0x42, 0xFC, 0xF2, 0x80, 0xED, 0xA3, 0x42, + 0x0F, 0x07, 0xA8, 0x76, 0x97, 0xC0, 0x6A, 0x9D, 0xD7, 0x2A, 0xE6, 0xB1, 0x38, 0x8C, 0x93, 0x17, + 0x38, 0x5E, 0xE1, 0x4C, 0xDE, 0x06, 0xE6, 0xA7, 0x69, 0x4A, 0x4F, 0x38, 0x1B, 0xEE, 0x9F, 0xF3, + 0x8D, 0x7F, 0xE8, 0xA2, 0xD3, 0x58, 0x0C, 0x70, 0x8F, 0xF2, 0x27, 0x98, 0xC6, 0x0C, 0x52, 0x45, + 0xED, 0xAF, 0xC9, 0xF2, 0xF5, 0xC3, 0x34, 0x5B, 0xE2, 0xFC, 0x00, 0x8B, 0xB5, 0x2F, 0x00, 0x90, + 0x84, 0x9C, 0x9E, 0x9F, 0xEE, 0xA7, 0x09, 0xCD, 0xE2, 0x9C, 0xBE, 0x60, 0xB8, 0x42, 0x0F, 0xE9, + 0xC7, 0xFB, 0x70, 0x55, 0xB9, 0x5E, 0xA7, 0x17, 0x4C, 0x0E, 0xD3, 0x1C, 0xAF, 0xEE, 0x9E, 0x11, + 0x15, 0x07, 0x4E, 0xF1, 0xCF, 0xE2, 0x8C, 0xAD, 0x8D, 0x58, 0x24, 0x8D, 0x0F, 0x0F, 0x68, 0x7A, + 0xC6, 0x5B, 0x7D, 0x82, 0xE8, 0x09, 0x3E, 0xC5, 0xE1, 0x55, 0x81, 0x78, 0xFB, 0x32, 0x22, 0x78, + 0xF1, 0xF9, 0x17, 0x69, 0xB6, 0x0A, 0xB3, 0x3E, 0xC9, 0x9F, 0xC4, 0x4B, 0x74, 0x41, 0x92, 0x55, + 0x2A, 0x07, 0x4B, 0x06, 0xCE, 0x23, 0x72, 0x59, 0xE1, 0x8B, 0x34, 0x5B, 0x1D, 0x60, 0x36, 0x0F, + 0xD3, 0x34, 0x0B, 0xAD, 0x8E, 0xED, 0xCC, 0x17, 0x57, 0xC5, 0xC7, 0xE8, 0x4B, 0xEB, 0x2B, 0x0B, + 0xC5, 0x6B, 0x8E, 0xF8, 0x49, 0xFA, 0x06, 0x8B, 0xDB, 0x44, 0xC6, 0xCC, 0x65, 0x9A, 0xBC, 0xC1, + 0x19, 0x7D, 0x90, 0xAE, 0x81, 0x2E, 0x9C, 0x9D, 0x3E, 0x8D, 0x4F, 0x71, 0xC8, 0xC7, 0x39, 0x0B, + 0x2D, 0xD9, 0x3A, 0x4F, 0x68, 0x48, 0xC0, 0x0D, 0xAB, 0xBE, 0x0D, 0xE7, 0xE4, 0xBB, 0xC5, 0x4C, + 0x3A, 0x1B, 0x98, 0x2B, 0xD9, 0x10, 0xC2, 0x60, 0x79, 0xAE, 0x6B, 0x21, 0xCB, 0x87, 0xDF, 0x00, + 0x7E, 0x07, 0xF0, 0x3B, 0x84, 0xDF, 0x11, 0xFC, 0x8E, 0xE1, 0x77, 0x02, 0xBF, 0x53, 0xD7, 0xB5, + 0x16, 0x62, 0x6B, 0x16, 0xBF, 0xCF, 0x84, 0x99, 0xE8, 0x93, 0x57, 0xC3, 0xB9, 0x48, 0xDE, 0x7C, + 0x2E, 0x52, 0xCF, 0x55, 0x41, 0x25, 0xB4, 0xFE, 0xE4, 0x62, 0x5E, 0x8C, 0x3C, 0x71, 0x9E, 0x93, + 0xE3, 0xC4, 0xBE, 0x2A, 0x50, 0x6D, 0x30, 0x70, 0x8C, 0xAD, 0x00, 0x49, 0x3A, 0x60, 0x3B, 0x15, + 0x42, 0xC4, 0xA1, 0xD9, 0xA5, 0x66, 0xF0, 0x8E, 0x2E, 0x66, 0x44, 0x33, 0x3A, 0x14, 0x27, 0x84, + 0x92, 0x1F, 0xE1, 0xBB, 0xC9, 0xEA, 0xFB, 0xF1, 0x9A, 0xB0, 0x29, 0x95, 0x13, 0x62, 0x53, 0x94, + 0x3B, 0xC5, 0x32, 0xA6, 0x7C, 0x77, 0x68, 0x0C, 0xA8, 0x70, 0x45, 0x05, 0x95, 0x55, 0xB3, 0xA9, + 0xBC, 0x57, 0x96, 0x07, 0x55, 0x35, 0x92, 0x95, 0xCD, 0xCA, 0x1C, 0xD3, 0xF3, 0x33, 0x91, 0xCB, + 0x76, 0x8A, 0x96, 0x85, 0x40, 0xED, 0xB5, 0xAF, 0xC9, 0x20, 0xDB, 0x26, 0xD1, 0xEE, 0x15, 0xE1, + 0x4A, 0xFC, 0xE2, 0x69, 0x7A, 0x49, 0xCC, 0x1C, 0x2F, 0xE0, 0xA0, 0x2F, 0x4D, 0x9E, 0x9C, 0xAF, + 0x29, 0x39, 0x5B, 0xE3, 0x77, 0xC7, 0xCD, 0x4D, 0x58, 0x2B, 0xA3, 0xD6, 0xC4, 0x61, 0xE5, 0x00, + 0xD6, 0x4A, 0x0D, 0xD4, 0xA1, 0x3C, 0x66, 0x14, 0x81, 0x31, 0x0C, 0xC6, 0xF6, 0x7A, 0x13, 0xD5, + 0x77, 0x38, 0x4F, 0xD3, 0x0E, 0xE7, 0x17, 0xDF, 0x97, 0xBC, 0xC6, 0x97, 0xA5, 0xDE, 0x9D, 0xF1, + 0xD2, 0x59, 0xAF, 0x59, 0x81, 0x48, 0x24, 0x5E, 0x89, 0x7F, 0x8B, 0xC5, 0x91, 0x1B, 0xE5, 0x01, + 0xAB, 0x26, 0x34, 0xC8, 0xD9, 0x02, 0x37, 0x4B, 0x0D, 0x2D, 0xA0, 0x7C, 0x80, 0x55, 0x44, 0x5B, + 0xDD, 0x15, 0x56, 0x45, 0xB6, 0x82, 0xA2, 0x7C, 0xF6, 0x74, 0x75, 0x8C, 0x69, 0x88, 0xFB, 0x87, + 0x24, 0xE1, 0x36, 0x8B, 0x11, 0x75, 0x50, 0x8E, 0x69, 0x48, 0x8C, 0xA8, 0xD6, 0xE5, 0xBD, 0x26, + 0x96, 0x08, 0x84, 0xBA, 0xB8, 0xA1, 0x96, 0xD2, 0x75, 0x87, 0x70, 0x7B, 0x65, 0x69, 0x13, 0xA9, + 0x15, 0x92, 0x23, 0x9B, 0x6C, 0x36, 0x36, 0xA9, 0x4F, 0xE6, 0x4C, 0xEA, 0xD0, 0x56, 0xB9, 0x23, + 0x91, 0x32, 0x26, 0xE6, 0x5E, 0x26, 0xAB, 0x9B, 0x8D, 0x75, 0x9E, 0xAC, 0x70, 0xC6, 0xA6, 0x2D, + 0x19, 0x71, 0x18, 0x67, 0x10, 0x2C, 0x6C, 0xD2, 0xD0, 0x66, 0xD6, 0x47, 0x57, 0xA4, 0xB0, 0xC0, + 0x14, 0x44, 0x4A, 0x3B, 0x71, 0xE7, 0x0D, 0x23, 0xB7, 0x03, 0x8B, 0x0C, 0xB6, 0x1F, 0x63, 0xFB, + 0xDE, 0xE2, 0x2B, 0xDD, 0x43, 0x81, 0x65, 0x8C, 0xCB, 0x56, 0x78, 0x0D, 0xB1, 0x7A, 0xAE, 0x72, + 0x7A, 0xB5, 0xC2, 0x4A, 0x04, 0x9B, 0x6F, 0xA1, 0xDE, 0x56, 0x72, 0x7E, 0x7A, 0x88, 0xB3, 0x72, + 0xB9, 0x4B, 0xBA, 0x5D, 0x6F, 0x87, 0x35, 0x3F, 0xD9, 0x89, 0x3C, 0x1C, 0x38, 0x1C, 0x1F, 0x89, + 0xD2, 0x3E, 0x49, 0x96, 0xEB, 0xF3, 0x15, 0x66, 0x8B, 0xDA, 0x3D, 0x12, 0x36, 0x95, 0xAE, 0x17, + 0xAE, 0xAD, 0x4A, 0xAC, 0x90, 0xF0, 0x97, 0x65, 0x47, 0xEB, 0x34, 0xCD, 0x6C, 0xE2, 0x70, 0x88, + 0x72, 0x9E, 0x17, 0xE4, 0xE9, 0x73, 0x1A, 0x6F, 0x94, 0x9D, 0xBA, 0xA1, 0xBC, 0xAF, 0x18, 0x77, + 0x3A, 0xCB, 0x38, 0x11, 0x16, 0x54, 0xD7, 0x38, 0xCF, 0xB9, 0xB9, 0x3C, 0x0F, 0x71, 0x1E, 0x86, + 0x1D, 0xC6, 0x5F, 0x93, 0x81, 0x4D, 0xD3, 0xAF, 0x22, 0xEB, 0x34, 0x7E, 0x6B, 0x7B, 0x48, 0x3D, + 0x79, 0xF3, 0x45, 0x18, 0x0E, 0x34, 0x6D, 0xCF, 0xFD, 0x84, 0x38, 0x77, 0x3C, 0xD7, 0x31, 0xF0, + 0x95, 0xAB, 0x0C, 0x20, 0xD4, 0x96, 0x98, 0x08, 0xDB, 0xA0, 0x0E, 0xFC, 0xE9, 0x60, 0x3A, 0x1A, + 0xFB, 0xD3, 0xA1, 0xE3, 0xEC, 0xB8, 0xEF, 0x50, 0x03, 0xF7, 0x9A, 0x1A, 0x34, 0x2E, 0xC8, 0x04, + 0xE3, 0x6A, 0xEB, 0x19, 0xC1, 0xBD, 0xE8, 0x5D, 0x0A, 0x4F, 0xB3, 0x0E, 0x28, 0x33, 0x76, 0x68, + 0x5A, 0x27, 0x04, 0x8A, 0x61, 0x6B, 0x52, 0x51, 0x22, 0x5B, 0xA6, 0x42, 0x21, 0x5B, 0xA4, 0xDB, + 0xE5, 0x86, 0xAD, 0x9B, 0x4B, 0x92, 0xAE, 0x87, 0x93, 0xF3, 0x53, 0x9C, 0x91, 0x65, 0x05, 0xAF, + 0xBC, 0x28, 0x24, 0x45, 0x51, 0x5B, 0x58, 0xC7, 0x05, 0xF2, 0x47, 0x23, 0xF7, 0xA7, 0xA7, 0x32, + 0x7F, 0x41, 0x4E, 0x65, 0x9E, 0xE5, 0xCB, 0xC7, 0x24, 0x79, 0x7D, 0xBD, 0xCE, 0xA0, 0xB8, 0xD1, + 0xBD, 0xC6, 0x58, 0x47, 0xB3, 0x0E, 0x5D, 0xC2, 0x76, 0x3F, 0xAB, 0xC8, 0x43, 0xC6, 0x81, 0xF5, + 0x17, 0x84, 0x9E, 0x3C, 0x5A, 0xC9, 0xF3, 0x79, 0xCD, 0xFE, 0xF6, 0xBD, 0x4B, 0x46, 0x4A, 0x99, + 0xA4, 0xEE, 0xFB, 0x59, 0x74, 0x9B, 0x3D, 0xB2, 0x8A, 0xA2, 0x93, 0xEE, 0x5F, 0x12, 0xF7, 0xC9, + 0x4A, 0x3B, 0xC7, 0xED, 0xC7, 0xAB, 0xD5, 0x13, 0xB8, 0xF3, 0xB2, 0xA9, 0x78, 0xD7, 0x4C, 0xFB, + 0x97, 0x0E, 0xCA, 0xA3, 0x2B, 0x56, 0x7A, 0x88, 0x11, 0x59, 0x85, 0x3A, 0xE1, 0xBD, 0x1E, 0xEC, + 0x8A, 0xF2, 0x70, 0x4E, 0x16, 0x45, 0xE9, 0xBD, 0xA3, 0xAA, 0x29, 0x00, 0x39, 0x32, 0xB8, 0xC3, + 0xE4, 0xE8, 0x1F, 0x66, 0xE9, 0x29, 0x90, 0x9C, 0x33, 0x61, 0x70, 0x1A, 0x6A, 0x28, 0x8E, 0xD1, + 0xC9, 0x0A, 0xF1, 0x87, 0xE7, 0xAB, 0x42, 0xF9, 0x25, 0x50, 0x96, 0xF6, 0x8F, 0x31, 0x7D, 0x90, + 0xD0, 0xEC, 0xF2, 0xD1, 0xEA, 0x33, 0x7C, 0x69, 0x13, 0x47, 0x19, 0xCB, 0x37, 0xD8, 0x08, 0xE7, + 0xD1, 0x39, 0x1C, 0x46, 0x67, 0xA6, 0x6D, 0xA4, 0xD5, 0xEA, 0x31, 0x49, 0x30, 0xBC, 0xA9, 0x7D, + 0x6D, 0x67, 0xAC, 0x2C, 0xA3, 0xD6, 0x2C, 0x46, 0xB5, 0x73, 0x2B, 0x6F, 0xD2, 0xE8, 0xAA, 0xCE, + 0x94, 0xD7, 0xF8, 0x32, 0x6C, 0xA1, 0x11, 0x18, 0x49, 0x24, 0xDB, 0x92, 0x92, 0x6D, 0xC9, 0x3B, + 0xB0, 0x2D, 0x45, 0x49, 0xC9, 0x36, 0xB3, 0xB6, 0x8C, 0x6F, 0x69, 0xFF, 0x35, 0xBE, 0x64, 0xBD, + 0xA6, 0x85, 0xAF, 0x29, 0xAB, 0x2B, 0xEB, 0x54, 0x8C, 0xAF, 0x26, 0x1B, 0x1A, 0xAE, 0x79, 0x8C, + 0xEC, 0xA5, 0x55, 0x3B, 0x36, 0x15, 0x8B, 0xC7, 0xE9, 0xF8, 0x0D, 0xCE, 0x2E, 0x85, 0xFE, 0x16, + 0x8B, 0xD9, 0x8A, 0x22, 0xEA, 0x38, 0x9A, 0x0A, 0x49, 0xAB, 0x34, 0xEA, 0x5C, 0x75, 0x66, 0xC6, + 0xEB, 0x7D, 0xEC, 0x20, 0xFC, 0x0E, 0x2C, 0x21, 0x60, 0xC8, 0xBD, 0x10, 0xC6, 0xF9, 0x5E, 0xDF, + 0x8F, 0x69, 0xCC, 0x3A, 0x04, 0x1B, 0xAD, 0xE8, 0xCC, 0xBC, 0x6E, 0x2C, 0x6D, 0x96, 0xD6, 0x6B, + 0xE6, 0x6C, 0x36, 0xA5, 0x47, 0x1B, 0xA9, 0x10, 0x45, 0xFB, 0x0C, 0xB2, 0xA8, 0x34, 0xA6, 0x5A, + 0x74, 0xB1, 0x19, 0x85, 0x71, 0x72, 0x06, 0x6F, 0xD0, 0xCE, 0x33, 0x52, 0x7C, 0x55, 0x34, 0x13, + 0x69, 0x70, 0x17, 0x4B, 0x7B, 0x07, 0x15, 0x5F, 0x36, 0x04, 0x5E, 0x65, 0x1A, 0xF6, 0x0A, 0x08, + 0xF2, 0x1C, 0xC4, 0x3B, 0xAC, 0x6E, 0x10, 0xA1, 0xDB, 0xB5, 0x95, 0x12, 0x02, 0x06, 0x1A, 0xFB, + 0x64, 0xA5, 0xDE, 0x6A, 0x18, 0x62, 0x21, 0xF4, 0x6E, 0x30, 0x93, 0x8C, 0x46, 0xB9, 0x50, 0x00, + 0x64, 0x05, 0x7C, 0x9C, 0xA5, 0xAD, 0xCA, 0x75, 0x0B, 0x10, 0xAD, 0xEA, 0xC0, 0x98, 0x16, 0x68, + 0x12, 0x0C, 0x02, 0xF5, 0x50, 0x5C, 0x3D, 0xD8, 0x24, 0xEA, 0x44, 0xB2, 0xBF, 0x22, 0x1F, 0xD1, + 0x38, 0x3B, 0xC6, 0xA0, 0xC8, 0xBF, 0x07, 0xDF, 0x2B, 0xED, 0x2E, 0x8A, 0x37, 0x3C, 0xEB, 0x4F, + 0x18, 0xF1, 0x1B, 0x1C, 0x52, 0x38, 0xA1, 0x5D, 0x83, 0x8B, 0xE6, 0x26, 0xCC, 0x02, 0xE9, 0xA8, + 0xA9, 0x53, 0xBC, 0xC7, 0x30, 0xCF, 0x2F, 0x80, 0x84, 0x22, 0x45, 0x9A, 0x45, 0xB4, 0xE5, 0xBE, + 0x2C, 0xA2, 0x7D, 0x71, 0x2B, 0xC4, 0xF5, 0x8B, 0xB2, 0xCB, 0xF2, 0x41, 0x7B, 0x35, 0x41, 0x0D, + 0xE0, 0x6D, 0xB8, 0xEA, 0x0B, 0xF8, 0x0E, 0xAE, 0x56, 0x76, 0xB3, 0x99, 0x2F, 0x8A, 0x06, 0x02, + 0xF5, 0xBC, 0x70, 0xBF, 0x55, 0x29, 0x5D, 0x5C, 0x8C, 0x96, 0x2E, 0x11, 0xAA, 0xE9, 0xA2, 0x2B, + 0xCB, 0x9D, 0x8F, 0xB1, 0x44, 0xC9, 0x94, 0x8B, 0x94, 0xEA, 0xFA, 0xA4, 0x6E, 0x27, 0xF5, 0x2F, + 0x3F, 0x12, 0x55, 0x7B, 0x1A, 0x9F, 0xE2, 0xED, 0x95, 0x24, 0x90, 0x2D, 0xE6, 0x3A, 0x69, 0xB2, + 0xBE, 0x64, 0xCB, 0xAC, 0xF3, 0x1C, 0xAF, 0xD8, 0x02, 0x4E, 0xAE, 0x2B, 0x3A, 0x71, 0x07, 0xE6, + 0x6F, 0x4C, 0x71, 0x66, 0x39, 0x33, 0x62, 0xE7, 0x08, 0xA3, 0xCC, 0x29, 0x4A, 0xB7, 0xF0, 0x54, + 0x98, 0x52, 0x04, 0x83, 0xB2, 0xB8, 0xCE, 0x5C, 0x71, 0x4D, 0xCA, 0x66, 0x87, 0xA2, 0x40, 0x6C, + 0x12, 0xFE, 0xC0, 0xEB, 0xF7, 0xBA, 0x0E, 0x0D, 0xED, 0x3F, 0xFA, 0xDC, 0xB0, 0x46, 0xC5, 0x62, + 0x2A, 0x52, 0x4F, 0xAB, 0xC7, 0xBB, 0x2C, 0x46, 0x3B, 0xDA, 0xA5, 0xC6, 0xE1, 0x31, 0x4B, 0x6C, + 0xB9, 0xE7, 0x7F, 0x54, 0xB1, 0x86, 0x40, 0x8D, 0xE7, 0x2B, 0xF2, 0xD3, 0x78, 0xBA, 0x42, 0x2B, + 0x1D, 0xB3, 0xE1, 0x84, 0x17, 0xF4, 0x01, 0x60, 0xA9, 0x39, 0xAB, 0x41, 0xDB, 0x60, 0x01, 0xC5, + 0x94, 0x2A, 0xC7, 0xB6, 0x0C, 0x20, 0x0B, 0x58, 0x53, 0x2B, 0xB9, 0x25, 0x6B, 0x15, 0xAE, 0xCC, + 0x7D, 0x8B, 0x8C, 0x66, 0x1E, 0x93, 0x19, 0x6D, 0xD9, 0x0C, 0x28, 0x9E, 0xB3, 0x91, 0xBD, 0x2D, + 0xF9, 0x9B, 0x60, 0x2D, 0x07, 0x81, 0x5A, 0x99, 0xDE, 0x6C, 0x9B, 0x8D, 0x5D, 0x69, 0xC7, 0xAB, + 0xC2, 0x71, 0xE6, 0x19, 0xBF, 0xF3, 0x88, 0xDC, 0x45, 0x64, 0x41, 0xC8, 0x42, 0xD9, 0x3C, 0x83, + 0xBB, 0x8B, 0xC8, 0x5B, 0x44, 0x16, 0x0B, 0xF0, 0xA8, 0x2F, 0xEE, 0xBE, 0x78, 0x1A, 0xF9, 0x8B, + 0xC8, 0x62, 0x01, 0x1E, 0x05, 0xD7, 0x08, 0x51, 0xB0, 0x88, 0x2C, 0x08, 0xF1, 0xC8, 0x67, 0x0F, + 0x1F, 0x46, 0x83, 0x45, 0x64, 0x3D, 0x7B, 0xF8, 0xD0, 0x42, 0xA6, 0x20, 0xB5, 0x54, 0xA1, 0x84, + 0xE0, 0xD5, 0xAF, 0x08, 0x63, 0x4B, 0x2E, 0x13, 0x4A, 0xE4, 0x34, 0x05, 0xBB, 0x2D, 0xA7, 0x01, + 0xC5, 0x73, 0x56, 0x3A, 0x49, 0x4B, 0x4E, 0x13, 0xCA, 0x6A, 0xE9, 0x73, 0x2D, 0x99, 0x6B, 0x80, + 0x96, 0x53, 0x20, 0x6F, 0x30, 0x71, 0x3F, 0xAC, 0xD3, 0x57, 0x28, 0xBF, 0xE6, 0x86, 0xC4, 0xF7, + 0x87, 0xCE, 0xAC, 0x96, 0xA1, 0x5D, 0x47, 0xE4, 0x2C, 0x4B, 0xDF, 0x90, 0xD5, 0xF5, 0xAE, 0xE0, + 0x84, 0x21, 0x4F, 0xF5, 0xE6, 0x5B, 0x1D, 0xD3, 0xD6, 0x8F, 0x73, 0xE5, 0x69, 0x6E, 0xE5, 0x1C, + 0xB7, 0xE1, 0x04, 0x57, 0xDA, 0x6B, 0x15, 0x94, 0x7E, 0x7F, 0x34, 0x33, 0x8F, 0x8A, 0x71, 0xA5, + 0x74, 0x65, 0xDD, 0xAF, 0xFA, 0x50, 0x1D, 0xC8, 0x6F, 0xF0, 0x71, 0xA7, 0x4A, 0x2D, 0xF5, 0x9F, + 0x9A, 0xED, 0x09, 0xEA, 0x2F, 0xC0, 0x2B, 0x4C, 0x71, 0x6E, 0xB6, 0x24, 0x28, 0x4C, 0x77, 0x35, + 0x9A, 0x0B, 0x34, 0x9E, 0x8E, 0x72, 0x8C, 0xD7, 0xBE, 0x34, 0x16, 0xBC, 0x90, 0x34, 0x36, 0x3F, + 0x38, 0x56, 0x7B, 0xB2, 0x0A, 0x07, 0xEA, 0x05, 0x55, 0x9A, 0x4B, 0xBD, 0xA4, 0xA8, 0x1B, 0x62, + 0xD4, 0x72, 0x49, 0x36, 0x2F, 0x22, 0x5C, 0x5C, 0x2C, 0x41, 0x01, 0xB5, 0xA6, 0xD5, 0x63, 0x96, + 0xDC, 0x2F, 0xC1, 0x40, 0x15, 0x08, 0xA6, 0xC3, 0x7D, 0xBC, 0x5E, 0x7F, 0x21, 0x33, 0xCB, 0xCB, + 0x62, 0x6D, 0x45, 0xC9, 0xAF, 0x8C, 0x4B, 0x3F, 0x75, 0xEE, 0x2C, 0xDF, 0x21, 0xDC, 0x0B, 0x37, + 0x8B, 0xC8, 0x22, 0xE3, 0x85, 0x05, 0xDF, 0x16, 0x0D, 0x87, 0xFE, 0x74, 0xB4, 0x13, 0x65, 0xDD, + 0x6E, 0xB6, 0x13, 0x0D, 0x47, 0x81, 0x37, 0x05, 0x16, 0x83, 0x5B, 0x6B, 0xE5, 0xC5, 0x8D, 0xF6, + 0x80, 0x46, 0x49, 0x53, 0xE6, 0xA8, 0xAD, 0x51, 0x15, 0xE3, 0x70, 0x14, 0xF8, 0xEE, 0x4E, 0x94, + 0x74, 0xBB, 0xC9, 0x4E, 0x34, 0x1C, 0x07, 0x83, 0x60, 0x2F, 0x8B, 0x3C, 0xD7, 0x1F, 0x7C, 0x62, + 0x67, 0xDB, 0x50, 0x96, 0xD3, 0x4B, 0xB6, 0x01, 0xAA, 0x37, 0x1A, 0x0E, 0x83, 0x51, 0x48, 0x7B, + 0x91, 0x81, 0x3C, 0x71, 0x8A, 0x6A, 0x54, 0xA6, 0x29, 0x6F, 0x83, 0x43, 0x2D, 0x70, 0x9A, 0x50, + 0x2E, 0x31, 0xE5, 0x89, 0x4A, 0x44, 0xE7, 0xF9, 0xA2, 0xDC, 0xE3, 0x82, 0xD3, 0x52, 0x91, 0x31, + 0xEB, 0xE3, 0xB7, 0x67, 0x69, 0x46, 0x73, 0x98, 0x10, 0x13, 0x80, 0x8C, 0xAE, 0x44, 0x5C, 0x78, + 0x55, 0xA8, 0xC5, 0x07, 0xB8, 0x1D, 0x83, 0xCB, 0xF1, 0x44, 0x66, 0x41, 0x09, 0x2A, 0xC3, 0xC4, + 0x29, 0x3F, 0x0A, 0x7E, 0xEC, 0x73, 0x25, 0x33, 0x73, 0xDD, 0x77, 0x16, 0x89, 0xA3, 0xBC, 0xE5, + 0xB8, 0x01, 0xB7, 0x0F, 0x49, 0xB8, 0xFF, 0x12, 0x67, 0xA7, 0x24, 0x89, 0xD7, 0xE6, 0x60, 0x44, + 0x23, 0x62, 0x07, 0x7E, 0x30, 0xE2, 0x83, 0xD1, 0xD4, 0x1D, 0xF8, 0xFC, 0xBA, 0x76, 0x3C, 0x1D, + 0x8B, 0x07, 0x8B, 0x63, 0x77, 0x2A, 0x1E, 0x2C, 0x0E, 0xC7, 0x03, 0x4F, 0x3C, 0x58, 0xF4, 0x27, + 0x43, 0x07, 0x2D, 0xA3, 0x39, 0x3F, 0x17, 0x43, 0xFC, 0xA4, 0x6C, 0x31, 0xD3, 0x4A, 0xB9, 0xC9, + 0xBC, 0x28, 0xEB, 0x4D, 0x54, 0x81, 0xDB, 0xA6, 0xD1, 0x7A, 0xE9, 0xD0, 0x80, 0x9B, 0x18, 0xD4, + 0x7D, 0x1C, 0x48, 0xDB, 0x18, 0xE7, 0x87, 0x6B, 0x79, 0xD9, 0xD2, 0x70, 0x4F, 0x53, 0x96, 0x23, + 0x0F, 0xCD, 0x4B, 0x17, 0x39, 0x58, 0xEE, 0xF6, 0xF4, 0x64, 0xD6, 0xF9, 0xF2, 0x48, 0xEE, 0x30, + 0x44, 0xFA, 0x09, 0x5E, 0xBE, 0x7E, 0x81, 0xE3, 0x15, 0x5B, 0x6B, 0xCA, 0x9B, 0x12, 0xEC, 0x34, + 0x20, 0xE7, 0x76, 0x21, 0x0C, 0x43, 0x15, 0xC4, 0x30, 0x5C, 0x9A, 0x9A, 0xB7, 0x01, 0x94, 0xDF, + 0x06, 0xE8, 0x47, 0xFF, 0x98, 0xDF, 0x06, 0xE4, 0x46, 0xD4, 0xB5, 0xB7, 0x01, 0x26, 0x0F, 0x84, + 0x7A, 0x40, 0x1B, 0xD1, 0xAC, 0xDB, 0x2D, 0xCB, 0x03, 0x6D, 0xDC, 0x70, 0x48, 0xCF, 0x81, 0xC5, + 0x10, 0x66, 0xAC, 0xB1, 0xD9, 0x50, 0x09, 0xF5, 0xC1, 0x1D, 0xAD, 0x3D, 0xBF, 0x72, 0x44, 0x69, + 0xDA, 0xED, 0xAD, 0xAD, 0x0F, 0xA1, 0x7A, 0xCD, 0x1B, 0x34, 0x57, 0xAA, 0x37, 0xBF, 0xF5, 0xF5, + 0xFF, 0x0F, 0xD3, 0x73, 0x7E, 0x9C, 0xCA, 0x08, 0x60, 0xA5, 0x57, 0xB3, 0xC8, 0x9B, 0x20, 0x9A, + 0x76, 0x68, 0x76, 0x8E, 0xD9, 0xDF, 0xF3, 0x1C, 0x77, 0xCE, 0x04, 0x44, 0xE7, 0xEE, 0xF3, 0x47, + 0x42, 0xC3, 0x39, 0x4D, 0xEE, 0x19, 0x06, 0xF0, 0x75, 0x0A, 0x21, 0x49, 0x42, 0xC1, 0x53, 0xB0, + 0x36, 0x38, 0x48, 0x14, 0x90, 0xFC, 0x3E, 0xF8, 0x49, 0xFA, 0xA6, 0x66, 0x71, 0x5A, 0x40, 0x97, + 0x00, 0x22, 0x07, 0x9C, 0x1C, 0x34, 0xC3, 0x82, 0x15, 0x7E, 0x0E, 0xF5, 0x19, 0x6E, 0x2B, 0xFE, + 0x33, 0x2C, 0xCB, 0x7E, 0x4C, 0x12, 0xFC, 0x10, 0xD7, 0xED, 0xE0, 0x0B, 0x40, 0x99, 0x2C, 0xA0, + 0xB9, 0x36, 0x7C, 0x0B, 0x2C, 0x4F, 0x54, 0x90, 0x60, 0x9D, 0xB2, 0x0D, 0x92, 0x25, 0x0A, 0x48, + 0x7E, 0x30, 0xDF, 0x02, 0xC9, 0x13, 0x25, 0xA4, 0x54, 0x0A, 0x10, 0xF7, 0x92, 0x2D, 0x59, 0x4C, + 0x28, 0x91, 0xF7, 0x25, 0xA1, 0x6B, 0x7C, 0x6D, 0x3E, 0x0D, 0x42, 0xE4, 0xF9, 0x22, 0x23, 0x94, + 0x7B, 0x64, 0x6E, 0x63, 0x8F, 0x06, 0x01, 0x79, 0x30, 0x37, 0x8F, 0xD8, 0x08, 0x2D, 0xD2, 0x00, + 0xEE, 0x0C, 0x8C, 0x79, 0x57, 0xC1, 0x78, 0xAC, 0x7A, 0xA9, 0xC8, 0x3F, 0xB9, 0x02, 0x6F, 0x69, + 0xFE, 0x5B, 0x33, 0x3B, 0xEE, 0x68, 0xBE, 0xA9, 0x73, 0xC1, 0x79, 0x61, 0x9A, 0xB8, 0x46, 0x41, + 0xAD, 0x77, 0x21, 0xFE, 0xCA, 0xAE, 0xB4, 0xE2, 0xAC, 0x23, 0x06, 0x54, 0x14, 0xBF, 0xA5, 0x71, + 0x86, 0x9B, 0x05, 0x4D, 0x26, 0x02, 0x24, 0x1B, 0xB2, 0x1B, 0xA1, 0x58, 0x02, 0x77, 0x96, 0x91, + 0xAE, 0x9B, 0x21, 0x58, 0x42, 0xBB, 0x8D, 0x54, 0x71, 0x1E, 0xA7, 0x58, 0x22, 0x3C, 0x75, 0x30, + 0xD2, 0x4F, 0x1A, 0xBC, 0x07, 0x34, 0xF1, 0x86, 0x67, 0x81, 0x22, 0xF8, 0x53, 0x89, 0x3A, 0x1D, + 0x75, 0xDE, 0x68, 0x04, 0x8A, 0x4C, 0x1C, 0x41, 0xCA, 0x46, 0xBC, 0xEA, 0x99, 0xA1, 0xA8, 0x47, + 0x69, 0x5F, 0xA3, 0xF2, 0x70, 0x58, 0x38, 0x84, 0xB1, 0x92, 0x34, 0xC1, 0xD6, 0x4C, 0xDC, 0xA5, + 0x56, 0xB2, 0xEA, 0x3B, 0xD2, 0x8A, 0xF9, 0x18, 0x71, 0xE9, 0xFA, 0x03, 0xCF, 0xB5, 0x42, 0x1A, + 0x59, 0x6F, 0x3D, 0xD7, 0xD2, 0xEF, 0xB6, 0xC0, 0xF0, 0x19, 0xA4, 0xBC, 0xA1, 0x2C, 0xA4, 0xA7, + 0xDD, 0x7F, 0x71, 0xF7, 0x7B, 0x90, 0xB4, 0xCA, 0xE2, 0x63, 0x23, 0xE5, 0xEE, 0xD3, 0x1F, 0x42, + 0x42, 0x9C, 0x5C, 0x5A, 0x62, 0xD1, 0xD2, 0x6C, 0x03, 0x00, 0xB4, 0x5B, 0xB8, 0x5F, 0x98, 0x5A, + 0x5A, 0xDD, 0x38, 0x40, 0x1D, 0x9A, 0xC7, 0x37, 0x59, 0x0C, 0xC0, 0xFD, 0x7A, 0x24, 0xD2, 0x0C, + 0x15, 0xB4, 0x30, 0x17, 0xDA, 0xA0, 0x5F, 0xC2, 0xA1, 0x53, 0xC6, 0xBA, 0x97, 0x0C, 0x15, 0x49, + 0x8E, 0x79, 0x4E, 0x61, 0x8A, 0x40, 0x14, 0xC3, 0x3F, 0xEA, 0x46, 0x09, 0x44, 0x72, 0x2D, 0xBE, + 0xB4, 0x54, 0x20, 0x20, 0xD4, 0xB7, 0x66, 0xB6, 0x40, 0x24, 0x95, 0x11, 0x05, 0x1F, 0x34, 0xCE, + 0x1A, 0xDF, 0x41, 0x1A, 0xF3, 0x2B, 0xEC, 0x17, 0xD2, 0x72, 0x3E, 0xAD, 0x69, 0xAA, 0x34, 0xE4, + 0x91, 0x0A, 0x94, 0xC5, 0xE1, 0xFA, 0xBC, 0xDC, 0xC0, 0x71, 0xDF, 0x03, 0x10, 0x53, 0x1C, 0x31, + 0x02, 0xCD, 0x14, 0x11, 0x55, 0x37, 0x2D, 0xFC, 0xEA, 0x0D, 0xCE, 0xC8, 0xD1, 0xE5, 0xA3, 0x84, + 0xE2, 0x63, 0xD6, 0x21, 0x74, 0x93, 0xBA, 0xDC, 0x00, 0xBD, 0xCA, 0x50, 0xA4, 0x67, 0xB8, 0x6A, + 0xFE, 0x5C, 0x44, 0x15, 0x31, 0xA5, 0xF1, 0xF2, 0x64, 0x1F, 0x94, 0xE6, 0x3E, 0xC3, 0xFC, 0x5D, + 0x76, 0xCD, 0x99, 0x39, 0xE4, 0xB8, 0x1E, 0xD2, 0xB8, 0x21, 0x92, 0x3B, 0x8B, 0xDA, 0xC6, 0xC3, + 0x30, 0x8D, 0x5F, 0x81, 0x2C, 0x3D, 0x1E, 0x9C, 0xC4, 0x59, 0xBC, 0xA4, 0x38, 0xFB, 0xD9, 0x94, + 0x24, 0x4D, 0x48, 0xAE, 0xED, 0xEB, 0xED, 0x58, 0x8A, 0x15, 0xBE, 0xA6, 0x88, 0xDB, 0xE0, 0xBE, + 0x0E, 0x81, 0x22, 0x5F, 0x5C, 0x33, 0xE0, 0xC8, 0xAD, 0xD0, 0x5D, 0x6D, 0x30, 0x03, 0x75, 0x79, + 0x3F, 0x81, 0xDB, 0x5E, 0xD7, 0xC2, 0x15, 0x03, 0x22, 0x28, 0x9F, 0xDD, 0x8E, 0x1D, 0xBC, 0x3C, + 0xEE, 0x8C, 0xF8, 0x0D, 0x56, 0xE5, 0xCA, 0xA7, 0x86, 0x34, 0xC2, 0xE6, 0x5B, 0x46, 0xBA, 0x47, + 0x43, 0x17, 0xC9, 0x64, 0xB6, 0xCB, 0xAB, 0x3D, 0x5F, 0x24, 0x7B, 0x44, 0x03, 0xC9, 0x23, 0xDC, + 0x3F, 0x01, 0x05, 0x86, 0xDA, 0x8B, 0xD0, 0xC6, 0x26, 0x31, 0xAA, 0x03, 0x2E, 0xF7, 0xE4, 0x34, + 0xDF, 0x38, 0xAD, 0x98, 0x00, 0x45, 0x0E, 0x61, 0x53, 0xEB, 0xB8, 0xDE, 0x07, 0x4A, 0x9D, 0x2C, + 0xC0, 0x61, 0x64, 0xE2, 0x0F, 0x5D, 0xAE, 0x2B, 0xD2, 0x04, 0x30, 0xE0, 0xA5, 0x53, 0xE7, 0x1B, + 0xF3, 0x95, 0x80, 0x05, 0xBC, 0xD6, 0xD5, 0x4B, 0xD4, 0xC7, 0xC3, 0x4A, 0x9A, 0xA8, 0x1F, 0x77, + 0xD8, 0x57, 0xAB, 0x01, 0x44, 0x0B, 0x10, 0x65, 0x46, 0xF9, 0x96, 0x23, 0x41, 0x35, 0x57, 0xED, + 0xA4, 0x45, 0xDF, 0x63, 0x95, 0xA7, 0x2D, 0x86, 0xE0, 0xAB, 0x23, 0x18, 0xC3, 0x6C, 0x71, 0x1B, + 0x01, 0x66, 0xF1, 0x46, 0x8E, 0x46, 0x5B, 0xC8, 0xB7, 0x41, 0x20, 0x73, 0x34, 0xD9, 0x46, 0xD6, + 0xE1, 0x44, 0x42, 0x8B, 0x3D, 0x64, 0x13, 0x52, 0xA6, 0xD5, 0xAC, 0x1E, 0xDF, 0x9A, 0x2A, 0x95, + 0xA5, 0x10, 0x2F, 0xB3, 0x6B, 0x4D, 0x6C, 0x3B, 0xC5, 0x05, 0x5B, 0x61, 0x1A, 0x06, 0x7C, 0x59, + 0x6A, 0x19, 0xCB, 0x01, 0xD6, 0x49, 0x1B, 0x88, 0x51, 0x2E, 0x8F, 0xB3, 0xBE, 0xCC, 0xBE, 0x4C, + 0x2C, 0x96, 0xF7, 0x8C, 0xCD, 0xBB, 0x95, 0xA1, 0x5A, 0xC6, 0x15, 0x19, 0x3E, 0xCA, 0x70, 0x7E, + 0xF2, 0x4E, 0xD3, 0x46, 0x99, 0xC3, 0x34, 0xB2, 0xA2, 0xA6, 0x15, 0x78, 0x0C, 0x0C, 0x75, 0x7B, + 0x89, 0xDF, 0xD2, 0xF3, 0x0C, 0xDF, 0xA5, 0xEB, 0x38, 0x6F, 0xA8, 0xBA, 0x99, 0xAC, 0x3B, 0x05, + 0xAC, 0x9E, 0x47, 0xE9, 0x02, 0x58, 0x82, 0xC9, 0x6D, 0xAF, 0x78, 0xCF, 0xC4, 0xE6, 0xE6, 0x1C, + 0x0E, 0xA7, 0xB4, 0xB9, 0x39, 0x2B, 0xAA, 0x35, 0xE2, 0x2F, 0x10, 0x2B, 0xAF, 0xC8, 0xB8, 0xEA, + 0x68, 0x14, 0x45, 0xDE, 0x1D, 0x77, 0xB3, 0x21, 0xF9, 0xD3, 0xF8, 0xA9, 0x4D, 0x9D, 0xCD, 0x86, + 0xFE, 0x8C, 0xB7, 0xD5, 0xA0, 0x25, 0x64, 0xBD, 0x3C, 0x21, 0x39, 0xDB, 0x2F, 0xF2, 0x4D, 0x6F, + 0xBC, 0x5C, 0xE2, 0x33, 0x9A, 0x77, 0x88, 0x28, 0xC3, 0x72, 0x8A, 0xB6, 0xD1, 0xF5, 0x9A, 0xD2, + 0xC1, 0xD1, 0x78, 0x0B, 0x05, 0x9B, 0x0D, 0xDD, 0x71, 0xEB, 0xBB, 0xF0, 0x16, 0x3A, 0xCE, 0x44, + 0xA9, 0x3A, 0x41, 0x45, 0xE1, 0xD8, 0x0E, 0xCA, 0xD9, 0x6F, 0xE1, 0x38, 0xB3, 0xEF, 0xDC, 0xB9, + 0xF3, 0xDD, 0x4E, 0x9E, 0x9E, 0x67, 0x4B, 0xFC, 0x24, 0x3E, 0x3B, 0x23, 0xC9, 0xF1, 0xE7, 0x2F, + 0x1E, 0x47, 0xF2, 0xED, 0x45, 0xFF, 0x34, 0x3E, 0xFB, 0x4E, 0xA7, 0xD3, 0xE9, 0xDC, 0xF9, 0xA4, + 0xC3, 0xA2, 0xB6, 0x7F, 0x21, 0xDF, 0xC6, 0xC9, 0xAA, 0xF3, 0xC9, 0x1D, 0x88, 0xDD, 0xB9, 0xC3, + 0x55, 0x7E, 0x76, 0xF9, 0x97, 0xFE, 0x51, 0x66, 0xE1, 0xEB, 0x81, 0x6D, 0xF0, 0x0F, 0xCF, 0x32, + 0x6E, 0x99, 0x1A, 0x32, 0x35, 0x0D, 0x21, 0x71, 0x90, 0xD5, 0xED, 0xD6, 0x52, 0x4E, 0xE1, 0x80, + 0x6A, 0x8F, 0xFF, 0x91, 0x07, 0x5E, 0x11, 0xB5, 0x9D, 0xB0, 0x41, 0x99, 0x88, 0x9F, 0x7D, 0x74, + 0xBB, 0xFC, 0x6F, 0x3F, 0x3E, 0x5D, 0xED, 0xF1, 0xA0, 0x3D, 0x5F, 0x20, 0xEA, 0x84, 0x6D, 0xE5, + 0xEE, 0x89, 0xBF, 0xFD, 0xBB, 0x40, 0x37, 0x48, 0x18, 0x94, 0x81, 0xAB, 0x31, 0x85, 0x9D, 0xE3, + 0xF5, 0x11, 0xB2, 0x55, 0x7D, 0x94, 0x3B, 0x58, 0x38, 0x73, 0xB3, 0xCE, 0x73, 0xDC, 0xE1, 0x86, + 0x02, 0xAD, 0x19, 0x3F, 0x80, 0x6B, 0x38, 0x95, 0xA3, 0x11, 0x2E, 0x8F, 0x0D, 0xF9, 0xCC, 0x94, + 0x6B, 0x77, 0xAF, 0xF1, 0x6A, 0x05, 0x0B, 0xA8, 0xC7, 0x6C, 0x62, 0x64, 0x0B, 0x08, 0x96, 0x8C, + 0xAE, 0xA4, 0x53, 0x4C, 0x40, 0x93, 0x77, 0xBB, 0xAC, 0xBF, 0x9D, 0xA6, 0x6F, 0x70, 0x1D, 0xB6, + 0x28, 0xDE, 0xE7, 0xF2, 0x59, 0xAF, 0x69, 0xE9, 0x33, 0x54, 0x8B, 0xBC, 0xD6, 0x1B, 0xE3, 0x4A, + 0xA9, 0x90, 0x97, 0x56, 0xCE, 0x5F, 0xE5, 0x29, 0x5B, 0xFF, 0xAB, 0x43, 0x6D, 0xFE, 0xD9, 0xE7, + 0x76, 0x78, 0x5E, 0x5E, 0x9E, 0xE1, 0xC8, 0x02, 0xFF, 0xB4, 0x7C, 0x0B, 0x27, 0x6F, 0x20, 0x0E, + 0xC9, 0x8A, 0x64, 0x7C, 0xE6, 0x8B, 0xD7, 0xD1, 0x16, 0xEB, 0x1B, 0x5B, 0x1E, 0xB7, 0xDE, 0xA7, + 0xA7, 0x38, 0x85, 0xE6, 0xC2, 0xB3, 0x4E, 0x84, 0xF0, 0xBE, 0x60, 0xEB, 0x25, 0x23, 0xEB, 0x14, + 0xE7, 0x79, 0x7C, 0x8C, 0x2D, 0x6E, 0xCD, 0x41, 0xB9, 0x19, 0x00, 0xB5, 0x85, 0x99, 0x1A, 0x3F, + 0xF9, 0x40, 0x52, 0x4A, 0x09, 0x5B, 0xB5, 0x48, 0x07, 0xF0, 0x13, 0xE5, 0x31, 0xBD, 0x28, 0xB5, + 0x5F, 0x0C, 0xC2, 0x4A, 0x93, 0x23, 0x55, 0x6A, 0xE4, 0xF1, 0x0D, 0x68, 0xA9, 0x08, 0xC2, 0x70, + 0xB2, 0x12, 0x6A, 0x22, 0x9A, 0x0E, 0x52, 0x53, 0x46, 0x71, 0xDC, 0x64, 0x66, 0x15, 0x91, 0xD8, + 0xB9, 0x2E, 0x77, 0x95, 0x09, 0xCB, 0x75, 0x9A, 0x63, 0xFD, 0xBD, 0x99, 0x66, 0x43, 0xE5, 0xD6, + 0x48, 0x40, 0x2F, 0xBE, 0x0D, 0xC9, 0x8D, 0x16, 0x27, 0x4A, 0xEC, 0xBA, 0x4D, 0x93, 0x42, 0x67, + 0x87, 0xBE, 0xE8, 0x7E, 0x76, 0x86, 0x93, 0x03, 0x28, 0xD8, 0x56, 0x36, 0x5B, 0x84, 0x30, 0xB1, + 0x1C, 0xE0, 0xC3, 0xD5, 0x60, 0x87, 0x7E, 0xB4, 0x58, 0x45, 0xD0, 0x64, 0x72, 0x46, 0x6B, 0x59, + 0xE5, 0xC8, 0xB1, 0x72, 0x81, 0xA1, 0xF9, 0xD3, 0xCF, 0x1D, 0x38, 0xB6, 0xF7, 0x87, 0xC3, 0x6E, + 0xF5, 0xDE, 0xA1, 0x4E, 0x1B, 0x95, 0x67, 0x9F, 0x3A, 0x0D, 0x57, 0xC6, 0x29, 0x81, 0x00, 0xCF, + 0x70, 0xBC, 0xBA, 0x3C, 0xA0, 0x31, 0x15, 0x7A, 0xD8, 0x9D, 0x2F, 0xF0, 0x21, 0xCF, 0xD0, 0x7F, + 0xF6, 0xFC, 0xC1, 0xD3, 0x50, 0x58, 0xB6, 0x74, 0x67, 0x95, 0xC4, 0xFD, 0x67, 0x4F, 0x9F, 0x3E, + 0xD8, 0x7F, 0xF9, 0xE8, 0xE9, 0xF7, 0xC2, 0xBA, 0x83, 0x3D, 0xE8, 0xBF, 0xC2, 0x63, 0xEC, 0x45, + 0x9C, 0x0B, 0x1F, 0xB1, 0x9D, 0x43, 0x7C, 0x94, 0x66, 0xB8, 0xC3, 0x4B, 0x86, 0x04, 0xB6, 0xE9, + 0xB3, 0x9C, 0x1A, 0xEE, 0xC7, 0xCF, 0x0E, 0x18, 0x62, 0x31, 0x38, 0xE9, 0xAF, 0xD6, 0x2A, 0xC8, + 0x05, 0x2A, 0x92, 0x77, 0x98, 0x7C, 0xB1, 0xFE, 0xE3, 0xA0, 0x2D, 0xAF, 0x09, 0xDF, 0x83, 0xFB, + 0x37, 0xD0, 0x69, 0xA2, 0x02, 0x8F, 0xB6, 0x2B, 0x7C, 0x14, 0x9F, 0xAF, 0x69, 0x3D, 0xE3, 0xE7, + 0x09, 0x7E, 0x7B, 0x86, 0x97, 0x14, 0xAF, 0x64, 0x36, 0xB6, 0x22, 0xC0, 0x30, 0xE9, 0xC1, 0xAC, + 0x87, 0x6F, 0x31, 0xEB, 0x6D, 0x43, 0xB9, 0x62, 0xD6, 0x6A, 0x9A, 0x02, 0xC5, 0x7C, 0xF6, 0xAE, + 0xD3, 0xE0, 0x11, 0xA1, 0x7F, 0xFE, 0xE6, 0xC0, 0x87, 0x84, 0xEA, 0x13, 0xA0, 0xFE, 0xF9, 0xAD, + 0xCD, 0x7E, 0xEF, 0x31, 0x3D, 0x29, 0x3A, 0xD4, 0xDC, 0xA4, 0x62, 0x9A, 0x6E, 0xC0, 0x1B, 0x66, + 0x07, 0x2A, 0xEF, 0x9B, 0xF4, 0xFB, 0xE4, 0xE2, 0x88, 0xD0, 0xEA, 0x89, 0x9F, 0xB8, 0x14, 0xB8, + 0x4F, 0x4E, 0x71, 0x22, 0xEE, 0x93, 0xC1, 0x8C, 0x00, 0xDE, 0x6C, 0xB6, 0x4C, 0x54, 0x72, 0xB1, + 0xC6, 0xCF, 0x39, 0x9D, 0xF2, 0x13, 0x4C, 0x2E, 0x57, 0x47, 0x1A, 0x33, 0x2F, 0x5F, 0x0D, 0xCF, + 0x2A, 0x91, 0xE0, 0x09, 0x2A, 0x8A, 0x38, 0x06, 0x39, 0xD6, 0xA9, 0x54, 0x30, 0xF1, 0xCE, 0x52, + 0xB9, 0xF1, 0x67, 0x9B, 0xF6, 0x5F, 0x65, 0x70, 0x2A, 0xAF, 0x8C, 0x42, 0xF3, 0x6D, 0x05, 0xAA, + 0x62, 0x15, 0x07, 0x3E, 0x90, 0x0F, 0x49, 0xF2, 0x8A, 0x86, 0x8A, 0x6A, 0x23, 0xA7, 0xCC, 0x2D, + 0xAB, 0x51, 0x4F, 0x91, 0x67, 0xDE, 0x35, 0xBE, 0xC8, 0x84, 0x3E, 0xBC, 0xCA, 0x93, 0x5E, 0x85, + 0x4C, 0x7E, 0xE0, 0x46, 0x7E, 0x20, 0x1A, 0xE1, 0x6A, 0xA5, 0x56, 0x8A, 0x3E, 0xE9, 0xBB, 0x89, + 0x82, 0xBD, 0x95, 0x25, 0x5E, 0xAF, 0xF9, 0x39, 0xC4, 0x66, 0x53, 0x89, 0x15, 0x47, 0x0F, 0x46, + 0x81, 0x19, 0x58, 0xF7, 0xAF, 0x14, 0x9A, 0x1A, 0x76, 0x15, 0x0F, 0xE3, 0xE5, 0xEB, 0x3D, 0x37, + 0xC4, 0x7D, 0xE9, 0xD8, 0x59, 0x7A, 0x8E, 0x8A, 0xF9, 0x6B, 0x0D, 0x44, 0x22, 0xFE, 0x2A, 0x90, + 0xED, 0xEA, 0xF7, 0xD3, 0xD3, 0xB3, 0x73, 0x8A, 0x57, 0xF0, 0x50, 0xC6, 0xBE, 0x15, 0x03, 0x50, + 0x1A, 0xC1, 0x59, 0xFE, 0xA3, 0x84, 0xDA, 0xE0, 0xF6, 0x4A, 0xCA, 0xFE, 0xF7, 0x99, 0xA8, 0xDB, + 0x16, 0x27, 0xDB, 0x02, 0x73, 0x17, 0xEA, 0xF9, 0x85, 0x8B, 0xAE, 0xCD, 0x03, 0x0C, 0xB0, 0xD8, + 0xD4, 0x9D, 0xBC, 0x23, 0x71, 0x0E, 0x5A, 0x47, 0xE9, 0xB6, 0xAD, 0xB0, 0x27, 0x0D, 0xD8, 0xCF, + 0xE2, 0xD5, 0x8A, 0x24, 0xC7, 0xDB, 0x34, 0x3D, 0xB3, 0x1C, 0xA7, 0x77, 0x2B, 0x58, 0x69, 0x86, + 0xCA, 0x71, 0x50, 0x1C, 0xE5, 0xB7, 0x2C, 0x20, 0x13, 0x35, 0xBF, 0x5D, 0x11, 0x6B, 0x7C, 0xC4, + 0x80, 0x9D, 0xED, 0x4C, 0x8C, 0x2F, 0xFC, 0x71, 0xB0, 0xE2, 0x99, 0x8F, 0xB4, 0x47, 0x35, 0xF1, + 0x9D, 0xAA, 0xBC, 0x38, 0x0E, 0x7F, 0x44, 0x5C, 0x7D, 0xE2, 0xC2, 0xE1, 0xD7, 0x77, 0xEA, 0x92, + 0xF4, 0x3E, 0xF3, 0xC9, 0x11, 0xA1, 0x4D, 0x93, 0x09, 0x9B, 0x15, 0x1A, 0x67, 0x12, 0xFE, 0xB9, + 0xB5, 0xBD, 0x2D, 0xA6, 0x91, 0xED, 0xED, 0xCE, 0xD6, 0xBB, 0xFF, 0xF7, 0x2D, 0x65, 0x7E, 0x79, + 0x82, 0x3B, 0x50, 0x99, 0x0E, 0xA8, 0xAD, 0x70, 0x8B, 0xBD, 0x38, 0xC3, 0xFD, 0x3F, 0x63, 0xE2, + 0xB6, 0xB7, 0xB7, 0x25, 0xA7, 0x72, 0x26, 0xDB, 0x72, 0xCE, 0x3D, 0xA1, 0xA7, 0x6B, 0xD4, 0x39, + 0x4C, 0x57, 0x97, 0x9D, 0x2B, 0x11, 0xD5, 0xE9, 0x9C, 0xC6, 0xD9, 0x31, 0x49, 0xC2, 0x8E, 0x3B, + 0x53, 0x51, 0x42, 0x82, 0x8C, 0xB8, 0xC3, 0x34, 0x5B, 0xE1, 0xCC, 0x88, 0xE2, 0xCD, 0x1E, 0x76, + 0x3C, 0xD7, 0xFD, 0x19, 0x19, 0x5B, 0x7C, 0xE7, 0x3B, 0x12, 0xDE, 0x28, 0xA5, 0x34, 0x4C, 0x15, + 0x76, 0xBE, 0xEB, 0xBA, 0x1A, 0x96, 0xF4, 0x0D, 0xCE, 0x8E, 0xD6, 0xE9, 0x45, 0xD8, 0x39, 0x01, + 0xDB, 0xC2, 0x35, 0x4C, 0xFD, 0x65, 0x9A, 0xD0, 0x98, 0x24, 0x38, 0xD3, 0xF0, 0x49, 0x73, 0x2E, + 0x61, 0x27, 0x3E, 0xCC, 0xD3, 0xF5, 0x39, 0xC5, 0x25, 0x46, 0x9A, 0x9E, 0x85, 0x1D, 0xF7, 0xEC, + 0xAD, 0x4E, 0x3C, 0xEB, 0x6D, 0x95, 0x48, 0xD6, 0x3F, 0x2A, 0x51, 0x19, 0xAF, 0x90, 0x16, 0x57, + 0x52, 0xC1, 0x1B, 0xBA, 0xA4, 0x80, 0xCD, 0x8F, 0xEB, 0xF8, 0x32, 0x64, 0x0B, 0x3E, 0x8A, 0x13, + 0x9A, 0x97, 0x59, 0x84, 0xC8, 0x4A, 0xD6, 0xEF, 0xDC, 0x39, 0xC1, 0xF1, 0x0A, 0x5A, 0x64, 0x07, + 0xD8, 0x42, 0x56, 0x91, 0xC5, 0x02, 0x96, 0x58, 0x19, 0xAD, 0xC8, 0x9B, 0x0E, 0x40, 0x47, 0x56, + 0x43, 0xBD, 0xCA, 0xFA, 0x18, 0xF5, 0xD0, 0xE8, 0xD7, 0xE9, 0xB6, 0x00, 0xBB, 0x1C, 0xC6, 0x2C, + 0xD9, 0xF4, 0xAC, 0x8C, 0xDD, 0x9D, 0x3B, 0xEC, 0x57, 0x90, 0x57, 0x06, 0xCD, 0x85, 0xD9, 0x4C, + 0x5B, 0xBA, 0x68, 0xD5, 0x85, 0x65, 0x09, 0xE3, 0x40, 0x04, 0xEA, 0xF9, 0x33, 0x23, 0x41, 0x2C, + 0x2B, 0x9B, 0x92, 0x8E, 0xC4, 0x0A, 0xA4, 0x31, 0x31, 0xC3, 0xCB, 0x34, 0x49, 0xF0, 0x92, 0xDE, + 0xA5, 0x14, 0x9F, 0x9E, 0xD1, 0xBC, 0x13, 0xE9, 0x02, 0xC6, 0x40, 0x4E, 0xE3, 0xB7, 0x2F, 0x1A, + 0xA0, 0x86, 0x2D, 0x88, 0xEE, 0xE3, 0x75, 0x7C, 0xD9, 0x89, 0x3A, 0x3E, 0xC8, 0x98, 0x82, 0x29, + 0xBD, 0x12, 0x71, 0x30, 0xA3, 0x6A, 0x1C, 0x85, 0xF2, 0xDE, 0x11, 0x75, 0xEC, 0x75, 0xCA, 0x6F, + 0xEE, 0xFA, 0x65, 0x64, 0xD4, 0xB1, 0x4E, 0x28, 0x3D, 0xCB, 0x43, 0xCB, 0xE9, 0xEC, 0x75, 0xAC, + 0x8B, 0x3C, 0xB7, 0x3A, 0x21, 0xFB, 0x6B, 0xCD, 0x34, 0x44, 0x25, 0x23, 0xF0, 0x45, 0xB9, 0xA4, + 0xB7, 0x15, 0x9A, 0x5E, 0xC7, 0x0A, 0xEF, 0xDC, 0xB1, 0x3A, 0xBD, 0x8E, 0x2A, 0xE2, 0x24, 0xCD, + 0xA9, 0xFE, 0x7D, 0x16, 0xD3, 0x93, 0x24, 0x3E, 0xC5, 0x7A, 0x5C, 0x8E, 0xE3, 0x6C, 0x79, 0xE2, + 0xD4, 0x4B, 0xD2, 0x0E, 0x0A, 0x3A, 0x51, 0xE7, 0x63, 0xED, 0xA8, 0xE0, 0x63, 0xAD, 0xF6, 0x0A, + 0x3A, 0x4D, 0xD8, 0x16, 0xA6, 0x13, 0x75, 0x1A, 0x9B, 0x18, 0x7A, 0xC0, 0xF5, 0x2D, 0x02, 0xDD, + 0x0B, 0x67, 0xA7, 0xE2, 0x18, 0xE0, 0xE3, 0x2F, 0xB3, 0x2F, 0x93, 0x2F, 0xDF, 0x7A, 0x87, 0xF3, + 0xC0, 0x3F, 0xDD, 0xE7, 0x19, 0xF1, 0xAA, 0x0F, 0x31, 0xEE, 0x29, 0x4B, 0xFC, 0xD8, 0x31, 0x33, + 0xDF, 0xB9, 0xD3, 0x39, 0x60, 0x03, 0x3B, 0xE1, 0x36, 0xC6, 0x3B, 0x52, 0x50, 0x3B, 0x6C, 0xF1, + 0x65, 0x40, 0xB2, 0x9D, 0xA1, 0xD4, 0xA0, 0xD0, 0x71, 0x14, 0xCD, 0x15, 0x13, 0xC7, 0x16, 0x7A, + 0xDD, 0x40, 0xDD, 0xB2, 0x5A, 0x41, 0x72, 0xD4, 0xE1, 0x09, 0x70, 0xA0, 0xD1, 0x21, 0xC2, 0x92, + 0x54, 0x7A, 0xD4, 0x81, 0xBD, 0x2D, 0xBF, 0x50, 0xAF, 0x66, 0x32, 0x2A, 0x5D, 0xDD, 0x0C, 0x2B, + 0x64, 0x4E, 0xA5, 0xAE, 0x45, 0x07, 0x1E, 0xE3, 0x5D, 0x83, 0x4A, 0xCB, 0x5B, 0xC9, 0x7A, 0x73, + 0x85, 0x61, 0xDF, 0x77, 0x63, 0x75, 0x9B, 0x1B, 0xCB, 0x3B, 0xBD, 0x4F, 0xF2, 0xE5, 0x6D, 0xDA, + 0x2B, 0xE6, 0x62, 0xA0, 0xBA, 0xE0, 0xAD, 0xDA, 0x02, 0x0E, 0x3E, 0x0C, 0xD2, 0x58, 0x44, 0x95, + 0x34, 0xD3, 0x7C, 0xC0, 0xC7, 0xAA, 0xB7, 0x74, 0xB8, 0x91, 0xA3, 0x8F, 0x11, 0x0F, 0x54, 0x0B, + 0x2C, 0x59, 0x54, 0xEF, 0xDD, 0x75, 0x6A, 0x8D, 0x32, 0x59, 0xDB, 0xD7, 0x05, 0x7C, 0xA7, 0x71, + 0x8C, 0xB9, 0xB1, 0x63, 0xF4, 0x7A, 0xD7, 0x74, 0x0B, 0xE0, 0x72, 0x70, 0xAA, 0xB0, 0x92, 0xE4, + 0xB8, 0x63, 0x0B, 0xEA, 0x3A, 0x1F, 0x77, 0x7A, 0x0D, 0xFD, 0xAC, 0xD7, 0xF9, 0xF8, 0x0E, 0x4B, + 0x69, 0x1C, 0xF0, 0x7A, 0x9D, 0x8F, 0x9D, 0x7E, 0xFF, 0xBA, 0x86, 0xCA, 0x31, 0x7D, 0x49, 0x4E, + 0x71, 0x7A, 0x4E, 0x6D, 0x91, 0x19, 0x55, 0x46, 0x45, 0x93, 0x91, 0x4D, 0xB2, 0x59, 0xAF, 0x82, + 0x77, 0xFA, 0x30, 0x26, 0x6B, 0xFE, 0x26, 0x44, 0x61, 0xEB, 0x77, 0x9E, 0xAF, 0x71, 0x9C, 0xE3, + 0x8E, 0xB8, 0xEC, 0x00, 0x65, 0xB2, 0xB3, 0xF8, 0x18, 0xB7, 0xD3, 0x57, 0x5C, 0xDB, 0x6C, 0x7A, + 0x57, 0xAF, 0x35, 0x98, 0x18, 0x52, 0xBB, 0xDD, 0x4E, 0xED, 0x0C, 0xA8, 0x13, 0x45, 0x51, 0xE5, + 0x04, 0x88, 0xC1, 0xB1, 0x6A, 0x54, 0x9B, 0x0F, 0xA6, 0x92, 0xFC, 0xB8, 0x13, 0x75, 0x7E, 0xF6, + 0xE0, 0xD9, 0xD3, 0x3E, 0x3F, 0xBE, 0x24, 0x47, 0x97, 0x76, 0xAD, 0x77, 0x5E, 0x9E, 0xE1, 0xB0, + 0xF3, 0x31, 0xDF, 0x0D, 0x7E, 0x8C, 0x2A, 0xA9, 0xB0, 0x82, 0xE6, 0x7C, 0x82, 0x6D, 0x62, 0x25, + 0x19, 0x16, 0xCC, 0x3C, 0x99, 0x05, 0xCD, 0x2E, 0x5D, 0x6D, 0x30, 0xED, 0x00, 0xEC, 0x34, 0x3F, + 0xBE, 0x99, 0x5D, 0x62, 0xE3, 0x92, 0x26, 0xEB, 0x34, 0x5E, 0xB5, 0x8F, 0xE1, 0x77, 0xEE, 0x74, + 0xF6, 0x41, 0x87, 0x1D, 0x9A, 0x45, 0x8D, 0xAF, 0xFC, 0x48, 0x83, 0x5B, 0x79, 0x10, 0x1B, 0xBA, + 0xEF, 0x98, 0x2D, 0x2F, 0x66, 0x2D, 0xA5, 0x43, 0x5A, 0xE9, 0xAD, 0x9A, 0x21, 0x21, 0x50, 0x0F, + 0x34, 0xEB, 0xAE, 0x4C, 0xF5, 0x74, 0xBC, 0x41, 0x3D, 0x45, 0x58, 0xFC, 0xE9, 0x7C, 0xFC, 0x04, + 0x27, 0xEB, 0x14, 0x75, 0x9E, 0xA4, 0x49, 0xBC, 0x4C, 0x51, 0xC7, 0xDA, 0xE7, 0x56, 0x7F, 0x3A, + 0x4F, 0xF1, 0x85, 0xA5, 0x99, 0xFE, 0xA9, 0xF0, 0x9D, 0x5B, 0xA7, 0xA9, 0x0D, 0xA4, 0xFA, 0x9A, + 0xF2, 0xE3, 0xEF, 0x7A, 0x98, 0xFD, 0xAB, 0xB5, 0x58, 0x69, 0x5B, 0x94, 0x01, 0xAD, 0x06, 0xEC, + 0x5F, 0xBD, 0x59, 0xB9, 0x35, 0x9A, 0x9B, 0x00, 0xEE, 0x2E, 0x97, 0x38, 0xA1, 0xD7, 0x14, 0x96, + 0x2B, 0x93, 0x3D, 0x9D, 0x8F, 0xB3, 0xE3, 0xC3, 0xD8, 0xF6, 0x87, 0x43, 0xD4, 0x29, 0x7F, 0xDC, + 0x7E, 0xE0, 0x7C, 0xDC, 0x3E, 0xD0, 0x3B, 0xC6, 0x70, 0x7A, 0xE7, 0x4E, 0xE7, 0x79, 0x86, 0xD9, + 0xE6, 0x98, 0xF5, 0xBE, 0x23, 0x42, 0xD9, 0x1F, 0x2E, 0x04, 0x1A, 0x94, 0xBE, 0xBE, 0xC2, 0x17, + 0x1D, 0x79, 0xE0, 0xA3, 0x4E, 0x7E, 0xCC, 0x01, 0x1B, 0x44, 0xB3, 0xBC, 0x21, 0x94, 0x99, 0x6B, + 0x05, 0x3F, 0x63, 0xCB, 0x04, 0x5D, 0x7E, 0x2A, 0x8B, 0xA5, 0x72, 0x49, 0x1E, 0x75, 0x56, 0xE9, + 0x12, 0x5E, 0x9E, 0xB1, 0xAD, 0xA8, 0xD8, 0xC4, 0xDF, 0xBB, 0x7C, 0xB4, 0xB2, 0x3F, 0x96, 0x79, + 0x3F, 0xAE, 0x93, 0x00, 0xEA, 0x33, 0x0A, 0x89, 0x91, 0x2E, 0x69, 0xEA, 0xC3, 0xA9, 0x53, 0x95, + 0x30, 0xAE, 0x31, 0xD3, 0x39, 0xCF, 0x71, 0xD6, 0x21, 0xC9, 0xD9, 0x39, 0xED, 0x6C, 0xC3, 0xF0, + 0xC1, 0x78, 0x93, 0xE3, 0xEC, 0x0D, 0xCE, 0x6A, 0x45, 0xF1, 0xFB, 0x04, 0xD5, 0x5B, 0x60, 0xB6, + 0x6D, 0x58, 0x14, 0xBC, 0xDB, 0x38, 0x53, 0x5F, 0x21, 0xE8, 0xFD, 0xF9, 0xA6, 0x19, 0xBD, 0x56, + 0xAD, 0x17, 0x38, 0x5E, 0x42, 0xFB, 0xB2, 0x51, 0xA7, 0xB3, 0x04, 0x0D, 0xCC, 0xBC, 0xC2, 0x73, + 0x3E, 0x24, 0x89, 0x41, 0xBE, 0xB6, 0x9C, 0x56, 0xE3, 0x43, 0xED, 0x6A, 0x4C, 0x8D, 0x65, 0xED, + 0xAB, 0xBE, 0x3B, 0x77, 0x3A, 0xF7, 0xF1, 0x61, 0x7A, 0x9E, 0x2C, 0xB1, 0x28, 0xA6, 0xC3, 0x9D, + 0xCE, 0x99, 0x43, 0x00, 0x5C, 0x4A, 0x8B, 0x49, 0xC6, 0xA0, 0xA6, 0x52, 0xD7, 0x2A, 0xA5, 0xDA, + 0xDC, 0xD4, 0x4A, 0x42, 0xBD, 0xE1, 0x2B, 0xEC, 0x6D, 0x59, 0x0E, 0x76, 0x3A, 0x05, 0x62, 0x3B, + 0x50, 0x73, 0xFC, 0xAC, 0x31, 0x58, 0x2C, 0x4E, 0x41, 0xB7, 0xF9, 0x04, 0xC3, 0xD0, 0xB1, 0x8D, + 0x93, 0x55, 0x55, 0x58, 0x2A, 0xF3, 0xF7, 0xBE, 0x9A, 0xBD, 0xAF, 0x9B, 0x7C, 0x1B, 0x96, 0x46, + 0x6A, 0x9D, 0x52, 0x38, 0xFC, 0x85, 0x02, 0x3D, 0x21, 0xB9, 0x48, 0xD7, 0x8F, 0xC5, 0x77, 0xEE, + 0xB0, 0x7D, 0xE0, 0xEE, 0x77, 0x76, 0xEE, 0xB0, 0xBD, 0xF9, 0xEE, 0x77, 0xFE, 0xBF, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0x15, 0x79, 0xE7, 0x4E, 0x12, 0x68, 0x04, 0x00, + })) if err != nil { - panic("Decompression failed: " + err.Error()) + return 0, err } - defer func() { _ = gz.Close() }() //nolint:errcheck + defer gz.Close() //nolint - // TODO: We should consider how best to present this. - //nolint: gosec - return io.Copy(w, gz) + return io.Copy(w, gz) //nolint:gosec // HTML is trusted content } diff --git a/pkg/dmsgpty/ui_unix.go b/pkg/dmsgpty/ui_unix.go index 7a25bf362..4799076c4 100644 --- a/pkg/dmsgpty/ui_unix.go +++ b/pkg/dmsgpty/ui_unix.go @@ -13,5 +13,7 @@ func (ui *UI) uiStartSize(ptyC *PtyClient) error { if err != nil { return err } - return ptyC.StartWithSize(ui.conf.CmdName, ui.conf.CmdArgs, winSize) + // UI sessions use xterm-256color as they're accessed via web terminal + env := []string{"TERM=xterm-256color"} + return ptyC.StartWithSize(ui.conf.CmdName, ui.conf.CmdArgs, winSize, env) } diff --git a/pkg/dmsgpty/ui_windows.go b/pkg/dmsgpty/ui_windows.go index 2cb3d978f..8fe926f9d 100644 --- a/pkg/dmsgpty/ui_windows.go +++ b/pkg/dmsgpty/ui_windows.go @@ -16,5 +16,7 @@ func (ui *UI) uiStartSize(ptyC *PtyClient) error { if err != nil { return err } - return ptyC.StartWithSize(ui.conf.CmdName, ui.conf.CmdArgs, ws) + // UI sessions use xterm-256color as they're accessed via web terminal + env := []string{"TERM=xterm-256color"} + return ptyC.StartWithSize(ui.conf.CmdName, ui.conf.CmdArgs, ws, env) } diff --git a/scripts/term.html b/scripts/term.html index 8c423c0ff..199bfd532 100644 --- a/scripts/term.html +++ b/scripts/term.html @@ -268,34 +268,111 @@ - - - + diff --git a/vendor/github.com/gin-gonic/gin/.golangci.yml b/vendor/github.com/gin-gonic/gin/.golangci.yml index d88870627..f08985651 100644 --- a/vendor/github.com/gin-gonic/gin/.golangci.yml +++ b/vendor/github.com/gin-gonic/gin/.golangci.yml @@ -18,15 +18,8 @@ linters: - wastedassign settings: gosec: - includes: - - G102 - - G106 - - G108 - - G109 - - G111 - - G112 - - G201 - - G203 + excludes: + - G115 perfsprint: int-conversion: true err-error: true @@ -68,7 +61,6 @@ linters: - examples$ formatters: enable: - - gci - gofmt - gofumpt - goimports @@ -80,7 +72,4 @@ formatters: exclusions: generated: lax paths: - - third_party$ - - builtin$ - - examples$ - gin.go diff --git a/vendor/github.com/gin-gonic/gin/CHANGELOG.md b/vendor/github.com/gin-gonic/gin/CHANGELOG.md index 9451db39b..95bc2f847 100644 --- a/vendor/github.com/gin-gonic/gin/CHANGELOG.md +++ b/vendor/github.com/gin-gonic/gin/CHANGELOG.md @@ -1,74 +1,123 @@ # Gin ChangeLog +## Gin v1.12.0 + +### Features + +- feat(render): add bson protocol ([#4145](https://github.com/gin-gonic/gin/pull/4145)) +- feat(context): add GetError and GetErrorSlice methods for error retrieval ([#4502](https://github.com/gin-gonic/gin/pull/4502)) +- feat(binding): add support for encoding.UnmarshalText in uri/query binding ([#4203](https://github.com/gin-gonic/gin/pull/4203)) +- feat(gin): add option to use escaped path ([#4420](https://github.com/gin-gonic/gin/pull/4420)) +- feat(context): add Protocol Buffers support to content negotiation ([#4423](https://github.com/gin-gonic/gin/pull/4423)) +- feat(context): implemented Delete method ([#38e7651](https://github.com/gin-gonic/gin/commit/38e7651)) +- feat(logger): color latency ([#4146](https://github.com/gin-gonic/gin/pull/4146)) + +### Enhancements + +- perf(tree): reduce allocations in findCaseInsensitivePath ([#4417](https://github.com/gin-gonic/gin/pull/4417)) +- perf(recovery): optimize line reading in stack function ([#4466](https://github.com/gin-gonic/gin/pull/4466)) +- perf(path): replace regex with custom functions in redirectTrailingSlash ([#4414](https://github.com/gin-gonic/gin/pull/4414)) +- perf(tree): optimize path parsing using strings.Count ([#4246](https://github.com/gin-gonic/gin/pull/4246)) +- chore(logger): allow skipping query string output ([#4547](https://github.com/gin-gonic/gin/pull/4547)) +- chore(context): always trust xff headers from unix socket ([#3359](https://github.com/gin-gonic/gin/pull/3359)) +- chore(response): prevent Flush() panic when the underlying ResponseWriter does not implement `http.Flusher` ([#4479](https://github.com/gin-gonic/gin/pull/4479)) +- refactor(recovery): smart error comparison ([#4142](https://github.com/gin-gonic/gin/pull/4142)) +- refactor(context): replace hardcoded localhost IPs with constants ([#4481](https://github.com/gin-gonic/gin/pull/4481)) +- refactor(utils): move util functions to utils.go ([#4467](https://github.com/gin-gonic/gin/pull/4467)) +- refactor(binding): use maps.Copy for cleaner map handling ([#4352](https://github.com/gin-gonic/gin/pull/4352)) +- refactor(context): using maps.Clone ([#4333](https://github.com/gin-gonic/gin/pull/4333)) +- refactor(ginS): use sync.OnceValue to simplify engine function ([#4314](https://github.com/gin-gonic/gin/pull/4314)) +- refactor: replace magic numbers with named constants in bodyAllowedForStatus ([#4529](https://github.com/gin-gonic/gin/pull/4529)) +- refactor: for loop can be modernized using range over int ([#4392](https://github.com/gin-gonic/gin/pull/4392)) + +### Bug Fixes + +- fix(tree): panic in findCaseInsensitivePathRec with RedirectFixedPath ([#4535](https://github.com/gin-gonic/gin/pull/4535)) +- fix(render): write content length in Data.Render ([#4206](https://github.com/gin-gonic/gin/pull/4206)) +- fix(context): ClientIP handling for multiple X-Forwarded-For header values ([#4472](https://github.com/gin-gonic/gin/pull/4472)) +- fix(binding): empty value error ([#2169](https://github.com/gin-gonic/gin/pull/2169)) +- fix(recover): suppress http.ErrAbortHandler in recover ([#4336](https://github.com/gin-gonic/gin/pull/4336)) +- fix(gin): literal colon routes not working with engine.Handler() ([#4415](https://github.com/gin-gonic/gin/pull/4415)) +- fix(gin): close os.File in RunFd to prevent resource leak ([#4422](https://github.com/gin-gonic/gin/pull/4422)) +- fix(response): refine hijack behavior for response lifecycle ([#4373](https://github.com/gin-gonic/gin/pull/4373)) +- fix(binding): improve empty slice/array handling in form binding ([#4380](https://github.com/gin-gonic/gin/pull/4380)) +- fix(debug): version mismatch ([#4403](https://github.com/gin-gonic/gin/pull/4403)) +- fix: correct typos, improve documentation clarity, and remove dead code ([#4511](https://github.com/gin-gonic/gin/pull/4511)) + +### Build process updates / CI + +- ci: update Go version support to 1.25+ across CI and docs ([#4550](https://github.com/gin-gonic/gin/pull/4550)) +- chore(binding): upgrade bson dependency to mongo-driver v2 ([#4549](https://github.com/gin-gonic/gin/pull/4549)) + ## Gin v1.11.0 ### Features -* feat(gin): Experimental support for HTTP/3 using quic-go/quic-go ([#3210](https://github.com/gin-gonic/gin/pull/3210)) -* feat(form): add array collection format in form binding ([#3986](https://github.com/gin-gonic/gin/pull/3986)), add custom string slice for form tag unmarshal ([#3970](https://github.com/gin-gonic/gin/pull/3970)) -* feat(binding): add BindPlain ([#3904](https://github.com/gin-gonic/gin/pull/3904)) -* feat(fs): Export, test and document OnlyFilesFS ([#3939](https://github.com/gin-gonic/gin/pull/3939)) -* feat(binding): add support for unixMilli and unixMicro ([#4190](https://github.com/gin-gonic/gin/pull/4190)) -* feat(form): Support default values for collections in form binding ([#4048](https://github.com/gin-gonic/gin/pull/4048)) -* feat(context): GetXxx added support for more go native types ([#3633](https://github.com/gin-gonic/gin/pull/3633)) +- feat(gin): Experimental support for HTTP/3 using quic-go/quic-go ([#3210](https://github.com/gin-gonic/gin/pull/3210)) +- feat(form): add array collection format in form binding ([#3986](https://github.com/gin-gonic/gin/pull/3986)), add custom string slice for form tag unmarshal ([#3970](https://github.com/gin-gonic/gin/pull/3970)) +- feat(binding): add BindPlain ([#3904](https://github.com/gin-gonic/gin/pull/3904)) +- feat(fs): Export, test and document OnlyFilesFS ([#3939](https://github.com/gin-gonic/gin/pull/3939)) +- feat(binding): add support for unixMilli and unixMicro ([#4190](https://github.com/gin-gonic/gin/pull/4190)) +- feat(form): Support default values for collections in form binding ([#4048](https://github.com/gin-gonic/gin/pull/4048)) +- feat(context): GetXxx added support for more go native types ([#3633](https://github.com/gin-gonic/gin/pull/3633)) ### Enhancements -* perf(context): optimize getMapFromFormData performance ([#4339](https://github.com/gin-gonic/gin/pull/4339)) -* refactor(tree): replace string(/) with "/" in node.insertChild ([#4354](https://github.com/gin-gonic/gin/pull/4354)) -* refactor(render): remove headers parameter from writeHeader ([#4353](https://github.com/gin-gonic/gin/pull/4353)) -* refactor(context): simplify "GetType()" functions ([#4080](https://github.com/gin-gonic/gin/pull/4080)) -* refactor(slice): simplify SliceValidationError Error method ([#3910](https://github.com/gin-gonic/gin/pull/3910)) -* refactor(context):Avoid using filepath.Dir twice in SaveUploadedFile ([#4181](https://github.com/gin-gonic/gin/pull/4181)) -* refactor(context): refactor context handling and improve test robustness ([#4066](https://github.com/gin-gonic/gin/pull/4066)) -* refactor(binding): use strings.Cut to replace strings.Index ([#3522](https://github.com/gin-gonic/gin/pull/3522)) -* refactor(context): add an optional permission parameter to SaveUploadedFile ([#4068](https://github.com/gin-gonic/gin/pull/4068)) -* refactor(context): verify URL is Non-nil in initQueryCache() ([#3969](https://github.com/gin-gonic/gin/pull/3969)) -* refactor(context): YAML judgment logic in Negotiate ([#3966](https://github.com/gin-gonic/gin/pull/3966)) -* tree: replace the self-defined 'min' to official one ([#3975](https://github.com/gin-gonic/gin/pull/3975)) -* context: Remove redundant filepath.Dir usage ([#4181](https://github.com/gin-gonic/gin/pull/4181)) +- perf(context): optimize getMapFromFormData performance ([#4339](https://github.com/gin-gonic/gin/pull/4339)) +- refactor(tree): replace string(/) with "/" in node.insertChild ([#4354](https://github.com/gin-gonic/gin/pull/4354)) +- refactor(render): remove headers parameter from writeHeader ([#4353](https://github.com/gin-gonic/gin/pull/4353)) +- refactor(context): simplify "GetType()" functions ([#4080](https://github.com/gin-gonic/gin/pull/4080)) +- refactor(slice): simplify SliceValidationError Error method ([#3910](https://github.com/gin-gonic/gin/pull/3910)) +- refactor(context):Avoid using filepath.Dir twice in SaveUploadedFile ([#4181](https://github.com/gin-gonic/gin/pull/4181)) +- refactor(context): refactor context handling and improve test robustness ([#4066](https://github.com/gin-gonic/gin/pull/4066)) +- refactor(binding): use strings.Cut to replace strings.Index ([#3522](https://github.com/gin-gonic/gin/pull/3522)) +- refactor(context): add an optional permission parameter to SaveUploadedFile ([#4068](https://github.com/gin-gonic/gin/pull/4068)) +- refactor(context): verify URL is Non-nil in initQueryCache() ([#3969](https://github.com/gin-gonic/gin/pull/3969)) +- refactor(context): YAML judgment logic in Negotiate ([#3966](https://github.com/gin-gonic/gin/pull/3966)) +- tree: replace the self-defined 'min' to official one ([#3975](https://github.com/gin-gonic/gin/pull/3975)) +- context: Remove redundant filepath.Dir usage ([#4181](https://github.com/gin-gonic/gin/pull/4181)) ### Bug Fixes -* fix: prevent middleware re-entry issue in HandleContext ([#3987](https://github.com/gin-gonic/gin/pull/3987)) -* fix(binding): prevent duplicate decoding and add validation in decodeToml ([#4193](https://github.com/gin-gonic/gin/pull/4193)) -* fix(gin): Do not panic when handling method not allowed on empty tree ([#4003](https://github.com/gin-gonic/gin/pull/4003)) -* fix(gin): data race warning for gin mode ([#1580](https://github.com/gin-gonic/gin/pull/1580)) -* fix(context): verify URL is Non-nil in initQueryCache() ([#3969](https://github.com/gin-gonic/gin/pull/3969)) -* fix(context): YAML judgment logic in Negotiate ([#3966](https://github.com/gin-gonic/gin/pull/3966)) -* fix(context): check handler is nil ([#3413](https://github.com/gin-gonic/gin/pull/3413)) -* fix(readme): fix broken link to English documentation ([#4222](https://github.com/gin-gonic/gin/pull/4222)) -* fix(tree): Keep panic infos consistent when wildcard type build faild ([#4077](https://github.com/gin-gonic/gin/pull/4077)) +- fix: prevent middleware re-entry issue in HandleContext ([#3987](https://github.com/gin-gonic/gin/pull/3987)) +- fix(binding): prevent duplicate decoding and add validation in decodeToml ([#4193](https://github.com/gin-gonic/gin/pull/4193)) +- fix(gin): Do not panic when handling method not allowed on empty tree ([#4003](https://github.com/gin-gonic/gin/pull/4003)) +- fix(gin): data race warning for gin mode ([#1580](https://github.com/gin-gonic/gin/pull/1580)) +- fix(context): verify URL is Non-nil in initQueryCache() ([#3969](https://github.com/gin-gonic/gin/pull/3969)) +- fix(context): YAML judgment logic in Negotiate ([#3966](https://github.com/gin-gonic/gin/pull/3966)) +- fix(context): check handler is nil ([#3413](https://github.com/gin-gonic/gin/pull/3413)) +- fix(readme): fix broken link to English documentation ([#4222](https://github.com/gin-gonic/gin/pull/4222)) +- fix(tree): Keep panic infos consistent when wildcard type build faild ([#4077](https://github.com/gin-gonic/gin/pull/4077)) ### Build process updates / CI -* ci: integrate Trivy vulnerability scanning into CI workflow ([#4359](https://github.com/gin-gonic/gin/pull/4359)) -* ci: support Go 1.25 in CI/CD ([#4341](https://github.com/gin-gonic/gin/pull/4341)) -* build(deps): upgrade github.com/bytedance/sonic from v1.13.2 to v1.14.0 ([#4342](https://github.com/gin-gonic/gin/pull/4342)) -* ci: add Go version 1.24 to GitHub Actions ([#4154](https://github.com/gin-gonic/gin/pull/4154)) -* build: update Gin minimum Go version to 1.21 ([#3960](https://github.com/gin-gonic/gin/pull/3960)) -* ci(lint): enable new linters (testifylint, usestdlibvars, perfsprint, etc.) ([#4010](https://github.com/gin-gonic/gin/pull/4010), [#4091](https://github.com/gin-gonic/gin/pull/4091), [#4090](https://github.com/gin-gonic/gin/pull/4090)) -* ci(lint): update workflows and improve test request consistency ([#4126](https://github.com/gin-gonic/gin/pull/4126)) +- ci: integrate Trivy vulnerability scanning into CI workflow ([#4359](https://github.com/gin-gonic/gin/pull/4359)) +- ci: support Go 1.25 in CI/CD ([#4341](https://github.com/gin-gonic/gin/pull/4341)) +- build(deps): upgrade github.com/bytedance/sonic from v1.13.2 to v1.14.0 ([#4342](https://github.com/gin-gonic/gin/pull/4342)) +- ci: add Go version 1.24 to GitHub Actions ([#4154](https://github.com/gin-gonic/gin/pull/4154)) +- build: update Gin minimum Go version to 1.21 ([#3960](https://github.com/gin-gonic/gin/pull/3960)) +- ci(lint): enable new linters (testifylint, usestdlibvars, perfsprint, etc.) ([#4010](https://github.com/gin-gonic/gin/pull/4010), [#4091](https://github.com/gin-gonic/gin/pull/4091), [#4090](https://github.com/gin-gonic/gin/pull/4090)) +- ci(lint): update workflows and improve test request consistency ([#4126](https://github.com/gin-gonic/gin/pull/4126)) ### Dependency updates -* chore(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.9 ([#4346](https://github.com/gin-gonic/gin/pull/4346), [#4356](https://github.com/gin-gonic/gin/pull/4356)) -* chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 ([#4347](https://github.com/gin-gonic/gin/pull/4347)) -* chore(deps): bump actions/setup-go from 5 to 6 ([#4351](https://github.com/gin-gonic/gin/pull/4351)) -* chore(deps): bump github.com/quic-go/quic-go from 0.53.0 to 0.54.0 ([#4328](https://github.com/gin-gonic/gin/pull/4328)) -* chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 ([#4178](https://github.com/gin-gonic/gin/pull/4178), [#4221](https://github.com/gin-gonic/gin/pull/4221)) -* chore(deps): bump github.com/go-playground/validator/v10 from 10.20.0 to 10.22.1 ([#4052](https://github.com/gin-gonic/gin/pull/4052)) +- chore(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.9 ([#4346](https://github.com/gin-gonic/gin/pull/4346), [#4356](https://github.com/gin-gonic/gin/pull/4356)) +- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 ([#4347](https://github.com/gin-gonic/gin/pull/4347)) +- chore(deps): bump actions/setup-go from 5 to 6 ([#4351](https://github.com/gin-gonic/gin/pull/4351)) +- chore(deps): bump github.com/quic-go/quic-go from 0.53.0 to 0.54.0 ([#4328](https://github.com/gin-gonic/gin/pull/4328)) +- chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 ([#4178](https://github.com/gin-gonic/gin/pull/4178), [#4221](https://github.com/gin-gonic/gin/pull/4221)) +- chore(deps): bump github.com/go-playground/validator/v10 from 10.20.0 to 10.22.1 ([#4052](https://github.com/gin-gonic/gin/pull/4052)) ### Documentation updates -* docs(changelog): update release notes for Gin v1.10.1 ([#4360](https://github.com/gin-gonic/gin/pull/4360)) -* docs: Fixing English grammar mistakes and awkward sentence structure in doc/doc.md ([#4207](https://github.com/gin-gonic/gin/pull/4207)) -* docs: update documentation and release notes for Gin v1.10.0 ([#3953](https://github.com/gin-gonic/gin/pull/3953)) -* docs: fix typo in Gin Quick Start ([#3997](https://github.com/gin-gonic/gin/pull/3997)) -* docs: fix comment and link issues ([#4205](https://github.com/gin-gonic/gin/pull/4205), [#3938](https://github.com/gin-gonic/gin/pull/3938)) -* docs: fix route group example code ([#4020](https://github.com/gin-gonic/gin/pull/4020)) -* docs(readme): add Portuguese documentation ([#4078](https://github.com/gin-gonic/gin/pull/4078)) -* docs(context): fix some function names in comment ([#4079](https://github.com/gin-gonic/gin/pull/4079)) +- docs(changelog): update release notes for Gin v1.10.1 ([#4360](https://github.com/gin-gonic/gin/pull/4360)) +- docs: Fixing English grammar mistakes and awkward sentence structure in doc/doc.md ([#4207](https://github.com/gin-gonic/gin/pull/4207)) +- docs: update documentation and release notes for Gin v1.10.0 ([#3953](https://github.com/gin-gonic/gin/pull/3953)) +- docs: fix typo in Gin Quick Start ([#3997](https://github.com/gin-gonic/gin/pull/3997)) +- docs: fix comment and link issues ([#4205](https://github.com/gin-gonic/gin/pull/4205), [#3938](https://github.com/gin-gonic/gin/pull/3938)) +- docs: fix route group example code ([#4020](https://github.com/gin-gonic/gin/pull/4020)) +- docs(readme): add Portuguese documentation ([#4078](https://github.com/gin-gonic/gin/pull/4078)) +- docs(context): fix some function names in comment ([#4079](https://github.com/gin-gonic/gin/pull/4079)) --- @@ -76,377 +125,377 @@ ### Features -* refactor: strengthen HTTPS security and improve code organization -* feat(binding): Support custom BindUnmarshaler for binding. (#3933) +- refactor: strengthen HTTPS security and improve code organization +- feat(binding): Support custom BindUnmarshaler for binding. (#3933) ### Enhancements -* chore(deps): bump github.com/bytedance/sonic from 1.11.3 to 1.11.6 (#3940) -* chore(deps): bump golangci/golangci-lint-action from 4 to 5 (#3941) -* chore: update external dependencies to latest versions (#3950) -* chore: update various Go dependencies to latest versions (#3901) -* chore: refactor configuration files for better readability (#3951) -* chore: update changelog categories and improve documentation (#3917) -* feat: update version constant to v1.10.0 (#3952) +- chore(deps): bump github.com/bytedance/sonic from 1.11.3 to 1.11.6 (#3940) +- chore(deps): bump golangci/golangci-lint-action from 4 to 5 (#3941) +- chore: update external dependencies to latest versions (#3950) +- chore: update various Go dependencies to latest versions (#3901) +- chore: refactor configuration files for better readability (#3951) +- chore: update changelog categories and improve documentation (#3917) +- feat: update version constant to v1.10.0 (#3952) ### Build process updates -* ci(release): refactor changelog regex patterns and exclusions (#3914) -* ci(Makefile): vet command add .PHONY (#3915) +- ci(release): refactor changelog regex patterns and exclusions (#3914) +- ci(Makefile): vet command add .PHONY (#3915) ## Gin v1.10.0 ### Features -* feat(auth): add proxy-server authentication (#3877) (@EndlessParadox1) -* feat(bind): ShouldBindBodyWith shortcut and change doc (#3871) (@RedCrazyGhost) -* feat(binding): Support custom BindUnmarshaler for binding. (#3933) (@dkkb) -* feat(binding): support override default binding implement (#3514) (@ssfyn) -* feat(engine): Added `OptionFunc` and `With` (#3572) (@flc1125) -* feat(logger): ability to skip logs based on user-defined logic (#3593) (@palvaneh) +- feat(auth): add proxy-server authentication (#3877) (@EndlessParadox1) +- feat(bind): ShouldBindBodyWith shortcut and change doc (#3871) (@RedCrazyGhost) +- feat(binding): Support custom BindUnmarshaler for binding. (#3933) (@dkkb) +- feat(binding): support override default binding implement (#3514) (@ssfyn) +- feat(engine): Added `OptionFunc` and `With` (#3572) (@flc1125) +- feat(logger): ability to skip logs based on user-defined logic (#3593) (@palvaneh) ### Bug fixes -* Revert "fix(uri): query binding bug (#3236)" (#3899) (@appleboy) -* fix(binding): binding error while not upload file (#3819) (#3820) (@clearcodecn) -* fix(binding): dereference pointer to struct (#3199) (@echovl) -* fix(context): make context Value method adhere to Go standards (#3897) (@FarmerChillax) -* fix(engine): fix unit test (#3878) (@flc1125) -* fix(header): Allow header according to RFC 7231 (HTTP 405) (#3759) (@Crocmagnon) -* fix(route): Add fullPath in context copy (#3784) (@KarthikReddyPuli) -* fix(router): catch-all conflicting wildcard (#3812) (@FirePing32) -* fix(sec): upgrade golang.org/x/crypto to 0.17.0 (#3832) (@chncaption) -* fix(tree): correctly expand the capacity of params (#3502) (@georgijd-form3) -* fix(uri): query binding bug (#3236) (@illiafox) -* fix: Add pointer support for url query params (#3659) (#3666) (@omkar-foss) -* fix: protect Context.Keys map when call Copy method (#3873) (@kingcanfish) +- Revert "fix(uri): query binding bug (#3236)" (#3899) (@appleboy) +- fix(binding): binding error while not upload file (#3819) (#3820) (@clearcodecn) +- fix(binding): dereference pointer to struct (#3199) (@echovl) +- fix(context): make context Value method adhere to Go standards (#3897) (@FarmerChillax) +- fix(engine): fix unit test (#3878) (@flc1125) +- fix(header): Allow header according to RFC 7231 (HTTP 405) (#3759) (@Crocmagnon) +- fix(route): Add fullPath in context copy (#3784) (@KarthikReddyPuli) +- fix(router): catch-all conflicting wildcard (#3812) (@FirePing32) +- fix(sec): upgrade golang.org/x/crypto to 0.17.0 (#3832) (@chncaption) +- fix(tree): correctly expand the capacity of params (#3502) (@georgijd-form3) +- fix(uri): query binding bug (#3236) (@illiafox) +- fix: Add pointer support for url query params (#3659) (#3666) (@omkar-foss) +- fix: protect Context.Keys map when call Copy method (#3873) (@kingcanfish) ### Enhancements -* chore(CI): update release args (#3595) (@qloog) -* chore(IP): add TrustedPlatform constant for Fly.io. (#3839) (@ab) -* chore(debug): add ability to override the debugPrint statement (#2337) (@josegonzalez) -* chore(deps): update dependencies to latest versions (#3835) (@appleboy) -* chore(header): Add support for RFC 9512: application/yaml (#3851) (@vincentbernat) -* chore(http): use white color for HTTP 1XX (#3741) (@viralparmarme) -* chore(optimize): the ShouldBindUri method of the Context struct (#3911) (@1911860538) -* chore(perf): Optimize the Copy method of the Context struct (#3859) (@1911860538) -* chore(refactor): modify interface check way (#3855) (@demoManito) -* chore(request): check reader if it's nil before reading (#3419) (@noahyao1024) -* chore(security): upgrade Protobuf for CVE-2024-24786 (#3893) (@Fotkurz) -* chore: refactor CI and update dependencies (#3848) (@appleboy) -* chore: refactor configuration files for better readability (#3951) (@appleboy) -* chore: update GitHub Actions configuration (#3792) (@appleboy) -* chore: update changelog categories and improve documentation (#3917) (@appleboy) -* chore: update dependencies to latest versions (#3694) (@appleboy) -* chore: update external dependencies to latest versions (#3950) (@appleboy) -* chore: update various Go dependencies to latest versions (#3901) (@appleboy) +- chore(CI): update release args (#3595) (@qloog) +- chore(IP): add TrustedPlatform constant for Fly.io. (#3839) (@ab) +- chore(debug): add ability to override the debugPrint statement (#2337) (@josegonzalez) +- chore(deps): update dependencies to latest versions (#3835) (@appleboy) +- chore(header): Add support for RFC 9512: application/yaml (#3851) (@vincentbernat) +- chore(http): use white color for HTTP 1XX (#3741) (@viralparmarme) +- chore(optimize): the ShouldBindUri method of the Context struct (#3911) (@1911860538) +- chore(perf): Optimize the Copy method of the Context struct (#3859) (@1911860538) +- chore(refactor): modify interface check way (#3855) (@demoManito) +- chore(request): check reader if it's nil before reading (#3419) (@noahyao1024) +- chore(security): upgrade Protobuf for CVE-2024-24786 (#3893) (@Fotkurz) +- chore: refactor CI and update dependencies (#3848) (@appleboy) +- chore: refactor configuration files for better readability (#3951) (@appleboy) +- chore: update GitHub Actions configuration (#3792) (@appleboy) +- chore: update changelog categories and improve documentation (#3917) (@appleboy) +- chore: update dependencies to latest versions (#3694) (@appleboy) +- chore: update external dependencies to latest versions (#3950) (@appleboy) +- chore: update various Go dependencies to latest versions (#3901) (@appleboy) ### Build process updates -* build(codecov): Added a codecov configuration (#3891) (@flc1125) -* ci(Makefile): vet command add .PHONY (#3915) (@imalasong) -* ci(lint): update tooling and workflows for consistency (#3834) (@appleboy) -* ci(release): refactor changelog regex patterns and exclusions (#3914) (@appleboy) -* ci(testing): add go1.22 version (#3842) (@appleboy) +- build(codecov): Added a codecov configuration (#3891) (@flc1125) +- ci(Makefile): vet command add .PHONY (#3915) (@imalasong) +- ci(lint): update tooling and workflows for consistency (#3834) (@appleboy) +- ci(release): refactor changelog regex patterns and exclusions (#3914) (@appleboy) +- ci(testing): add go1.22 version (#3842) (@appleboy) ### Documentation updates -* docs(context): Added deprecation comments to BindWith (#3880) (@flc1125) -* docs(middleware): comments to function `BasicAuthForProxy` (#3881) (@EndlessParadox1) -* docs: Add document to constant `AuthProxyUserKey` and `BasicAuthForProxy`. (#3887) (@EndlessParadox1) -* docs: fix typo in comment (#3868) (@testwill) -* docs: fix typo in function documentation (#3872) (@TotomiEcio) -* docs: remove redundant comments (#3765) (@WeiTheShinobi) -* feat: update version constant to v1.10.0 (#3952) (@appleboy) +- docs(context): Added deprecation comments to BindWith (#3880) (@flc1125) +- docs(middleware): comments to function `BasicAuthForProxy` (#3881) (@EndlessParadox1) +- docs: Add document to constant `AuthProxyUserKey` and `BasicAuthForProxy`. (#3887) (@EndlessParadox1) +- docs: fix typo in comment (#3868) (@testwill) +- docs: fix typo in function documentation (#3872) (@TotomiEcio) +- docs: remove redundant comments (#3765) (@WeiTheShinobi) +- feat: update version constant to v1.10.0 (#3952) (@appleboy) ### Others -* Upgrade golang.org/x/net -> v0.13.0 (#3684) (@cpcf) -* test(git): gitignore add develop tools (#3370) (@demoManito) -* test(http): use constant instead of numeric literal (#3863) (@testwill) -* test(path): Optimize unit test execution results (#3883) (@flc1125) -* test(render): increased unit tests coverage (#3691) (@araujo88) +- Upgrade golang.org/x/net -> v0.13.0 (#3684) (@cpcf) +- test(git): gitignore add develop tools (#3370) (@demoManito) +- test(http): use constant instead of numeric literal (#3863) (@testwill) +- test(path): Optimize unit test execution results (#3883) (@flc1125) +- test(render): increased unit tests coverage (#3691) (@araujo88) ## Gin v1.9.1 ### BUG FIXES -* fix Request.Context() checks [#3512](https://github.com/gin-gonic/gin/pull/3512) +- fix Request.Context() checks [#3512](https://github.com/gin-gonic/gin/pull/3512) ### SECURITY -* fix lack of escaping of filename in Content-Disposition [#3556](https://github.com/gin-gonic/gin/pull/3556) +- fix lack of escaping of filename in Content-Disposition [#3556](https://github.com/gin-gonic/gin/pull/3556) ### ENHANCEMENTS -* refactor: use bytes.ReplaceAll directly [#3455](https://github.com/gin-gonic/gin/pull/3455) -* convert strings and slices using the officially recommended way [#3344](https://github.com/gin-gonic/gin/pull/3344) -* improve render code coverage [#3525](https://github.com/gin-gonic/gin/pull/3525) +- refactor: use bytes.ReplaceAll directly [#3455](https://github.com/gin-gonic/gin/pull/3455) +- convert strings and slices using the officially recommended way [#3344](https://github.com/gin-gonic/gin/pull/3344) +- improve render code coverage [#3525](https://github.com/gin-gonic/gin/pull/3525) ### DOCS -* docs: changed documentation link for trusted proxies [#3575](https://github.com/gin-gonic/gin/pull/3575) -* chore: improve linting, testing, and GitHub Actions setup [#3583](https://github.com/gin-gonic/gin/pull/3583) +- docs: changed documentation link for trusted proxies [#3575](https://github.com/gin-gonic/gin/pull/3575) +- chore: improve linting, testing, and GitHub Actions setup [#3583](https://github.com/gin-gonic/gin/pull/3583) ## Gin v1.9.0 ### BREAK CHANGES -* Stop useless panicking in context and render [#2150](https://github.com/gin-gonic/gin/pull/2150) +- Stop useless panicking in context and render [#2150](https://github.com/gin-gonic/gin/pull/2150) ### BUG FIXES -* fix(router): tree bug where loop index is not decremented. [#3460](https://github.com/gin-gonic/gin/pull/3460) -* fix(context): panic on NegotiateFormat - index out of range [#3397](https://github.com/gin-gonic/gin/pull/3397) -* Add escape logic for header [#3500](https://github.com/gin-gonic/gin/pull/3500) and [#3503](https://github.com/gin-gonic/gin/pull/3503) +- fix(router): tree bug where loop index is not decremented. [#3460](https://github.com/gin-gonic/gin/pull/3460) +- fix(context): panic on NegotiateFormat - index out of range [#3397](https://github.com/gin-gonic/gin/pull/3397) +- Add escape logic for header [#3500](https://github.com/gin-gonic/gin/pull/3500) and [#3503](https://github.com/gin-gonic/gin/pull/3503) ### SECURITY -* Fix the GO-2022-0969 and GO-2022-0288 vulnerabilities [#3333](https://github.com/gin-gonic/gin/pull/3333) -* fix(security): vulnerability GO-2023-1571 [#3505](https://github.com/gin-gonic/gin/pull/3505) +- Fix the GO-2022-0969 and GO-2022-0288 vulnerabilities [#3333](https://github.com/gin-gonic/gin/pull/3333) +- fix(security): vulnerability GO-2023-1571 [#3505](https://github.com/gin-gonic/gin/pull/3505) ### ENHANCEMENTS -* feat: add sonic json support [#3184](https://github.com/gin-gonic/gin/pull/3184) -* chore(file): Creates a directory named path [#3316](https://github.com/gin-gonic/gin/pull/3316) -* fix: modify interface check way [#3327](https://github.com/gin-gonic/gin/pull/3327) -* remove deprecated of package io/ioutil [#3395](https://github.com/gin-gonic/gin/pull/3395) -* refactor: avoid calling strings.ToLower twice [#3343](https://github.com/gin-gonic/gin/pull/3433) -* console logger HTTP status code bug fixed [#3453](https://github.com/gin-gonic/gin/pull/3453) -* chore(yaml): upgrade dependency to v3 version [#3456](https://github.com/gin-gonic/gin/pull/3456) -* chore(router): match method added to routergroup for multiple HTTP methods supporting [#3464](https://github.com/gin-gonic/gin/pull/3464) -* chore(http): add support for go1.20 http.rwUnwrapper to gin.responseWriter [#3489](https://github.com/gin-gonic/gin/pull/3489) +- feat: add sonic json support [#3184](https://github.com/gin-gonic/gin/pull/3184) +- chore(file): Creates a directory named path [#3316](https://github.com/gin-gonic/gin/pull/3316) +- fix: modify interface check way [#3327](https://github.com/gin-gonic/gin/pull/3327) +- remove deprecated of package io/ioutil [#3395](https://github.com/gin-gonic/gin/pull/3395) +- refactor: avoid calling strings.ToLower twice [#3343](https://github.com/gin-gonic/gin/pull/3433) +- console logger HTTP status code bug fixed [#3453](https://github.com/gin-gonic/gin/pull/3453) +- chore(yaml): upgrade dependency to v3 version [#3456](https://github.com/gin-gonic/gin/pull/3456) +- chore(router): match method added to routergroup for multiple HTTP methods supporting [#3464](https://github.com/gin-gonic/gin/pull/3464) +- chore(http): add support for go1.20 http.rwUnwrapper to gin.responseWriter [#3489](https://github.com/gin-gonic/gin/pull/3489) ### DOCS -* docs: update markdown format [#3260](https://github.com/gin-gonic/gin/pull/3260) -* docs(readme): Add the TOML rendering example [#3400](https://github.com/gin-gonic/gin/pull/3400) -* docs(readme): move more example to docs/doc.md [#3449](https://github.com/gin-gonic/gin/pull/3449) -* docs: update markdown format [#3446](https://github.com/gin-gonic/gin/pull/3446) +- docs: update markdown format [#3260](https://github.com/gin-gonic/gin/pull/3260) +- docs(readme): Add the TOML rendering example [#3400](https://github.com/gin-gonic/gin/pull/3400) +- docs(readme): move more example to docs/doc.md [#3449](https://github.com/gin-gonic/gin/pull/3449) +- docs: update markdown format [#3446](https://github.com/gin-gonic/gin/pull/3446) ## Gin v1.8.2 ### BUG FIXES -* fix(route): redirectSlash bug ([#3227]((https://github.com/gin-gonic/gin/pull/3227))) -* fix(engine): missing route params for CreateTestContext ([#2778]((https://github.com/gin-gonic/gin/pull/2778))) ([#2803]((https://github.com/gin-gonic/gin/pull/2803))) +- fix(route): redirectSlash bug ([#3227](<(https://github.com/gin-gonic/gin/pull/3227)>)) +- fix(engine): missing route params for CreateTestContext ([#2778](<(https://github.com/gin-gonic/gin/pull/2778)>)) ([#2803](<(https://github.com/gin-gonic/gin/pull/2803)>)) ### SECURITY -* Fix the GO-2022-1144 vulnerability ([#3432]((https://github.com/gin-gonic/gin/pull/3432))) +- Fix the GO-2022-1144 vulnerability ([#3432](<(https://github.com/gin-gonic/gin/pull/3432)>)) ## Gin v1.8.1 ### ENHANCEMENTS -* feat(context): add ContextWithFallback feature flag [#3172](https://github.com/gin-gonic/gin/pull/3172) +- feat(context): add ContextWithFallback feature flag [#3172](https://github.com/gin-gonic/gin/pull/3172) ## Gin v1.8.0 ### BREAK CHANGES -* TrustedProxies: Add default IPv6 support and refactor [#2967](https://github.com/gin-gonic/gin/pull/2967). Please replace `RemoteIP() (net.IP, bool)` with `RemoteIP() net.IP` -* gin.Context with fallback value from gin.Context.Request.Context() [#2751](https://github.com/gin-gonic/gin/pull/2751) +- TrustedProxies: Add default IPv6 support and refactor [#2967](https://github.com/gin-gonic/gin/pull/2967). Please replace `RemoteIP() (net.IP, bool)` with `RemoteIP() net.IP` +- gin.Context with fallback value from gin.Context.Request.Context() [#2751](https://github.com/gin-gonic/gin/pull/2751) ### BUG FIXES -* Fixed SetOutput() panics on go 1.17 [#2861](https://github.com/gin-gonic/gin/pull/2861) -* Fix: wrong when wildcard follows named param [#2983](https://github.com/gin-gonic/gin/pull/2983) -* Fix: missing sameSite when do context.reset() [#3123](https://github.com/gin-gonic/gin/pull/3123) +- Fixed SetOutput() panics on go 1.17 [#2861](https://github.com/gin-gonic/gin/pull/2861) +- Fix: wrong when wildcard follows named param [#2983](https://github.com/gin-gonic/gin/pull/2983) +- Fix: missing sameSite when do context.reset() [#3123](https://github.com/gin-gonic/gin/pull/3123) ### ENHANCEMENTS -* Use Header() instead of deprecated HeaderMap [#2694](https://github.com/gin-gonic/gin/pull/2694) -* RouterGroup.Handle regular match optimization of http method [#2685](https://github.com/gin-gonic/gin/pull/2685) -* Add support go-json, another drop-in json replacement [#2680](https://github.com/gin-gonic/gin/pull/2680) -* Use errors.New to replace fmt.Errorf will much better [#2707](https://github.com/gin-gonic/gin/pull/2707) -* Use Duration.Truncate for truncating precision [#2711](https://github.com/gin-gonic/gin/pull/2711) -* Get client IP when using Cloudflare [#2723](https://github.com/gin-gonic/gin/pull/2723) -* Optimize code adjust [#2700](https://github.com/gin-gonic/gin/pull/2700/files) -* Optimize code and reduce code cyclomatic complexity [#2737](https://github.com/gin-gonic/gin/pull/2737) -* Improve sliceValidateError.Error performance [#2765](https://github.com/gin-gonic/gin/pull/2765) -* Support custom struct tag [#2720](https://github.com/gin-gonic/gin/pull/2720) -* Improve router group tests [#2787](https://github.com/gin-gonic/gin/pull/2787) -* Fallback Context.Deadline() Context.Done() Context.Err() to Context.Request.Context() [#2769](https://github.com/gin-gonic/gin/pull/2769) -* Some codes optimize [#2830](https://github.com/gin-gonic/gin/pull/2830) [#2834](https://github.com/gin-gonic/gin/pull/2834) [#2838](https://github.com/gin-gonic/gin/pull/2838) [#2837](https://github.com/gin-gonic/gin/pull/2837) [#2788](https://github.com/gin-gonic/gin/pull/2788) [#2848](https://github.com/gin-gonic/gin/pull/2848) [#2851](https://github.com/gin-gonic/gin/pull/2851) [#2701](https://github.com/gin-gonic/gin/pull/2701) -* TrustedProxies: Add default IPv6 support and refactor [#2967](https://github.com/gin-gonic/gin/pull/2967) -* Test(route): expose performRequest func [#3012](https://github.com/gin-gonic/gin/pull/3012) -* Support h2c with prior knowledge [#1398](https://github.com/gin-gonic/gin/pull/1398) -* Feat attachment filename support utf8 [#3071](https://github.com/gin-gonic/gin/pull/3071) -* Feat: add StaticFileFS [#2749](https://github.com/gin-gonic/gin/pull/2749) -* Feat(context): return GIN Context from Value method [#2825](https://github.com/gin-gonic/gin/pull/2825) -* Feat: automatically SetMode to TestMode when run go test [#3139](https://github.com/gin-gonic/gin/pull/3139) -* Add TOML bining for gin [#3081](https://github.com/gin-gonic/gin/pull/3081) -* IPv6 add default trusted proxies [#3033](https://github.com/gin-gonic/gin/pull/3033) +- Use Header() instead of deprecated HeaderMap [#2694](https://github.com/gin-gonic/gin/pull/2694) +- RouterGroup.Handle regular match optimization of http method [#2685](https://github.com/gin-gonic/gin/pull/2685) +- Add support go-json, another drop-in json replacement [#2680](https://github.com/gin-gonic/gin/pull/2680) +- Use errors.New to replace fmt.Errorf will much better [#2707](https://github.com/gin-gonic/gin/pull/2707) +- Use Duration.Truncate for truncating precision [#2711](https://github.com/gin-gonic/gin/pull/2711) +- Get client IP when using Cloudflare [#2723](https://github.com/gin-gonic/gin/pull/2723) +- Optimize code adjust [#2700](https://github.com/gin-gonic/gin/pull/2700/files) +- Optimize code and reduce code cyclomatic complexity [#2737](https://github.com/gin-gonic/gin/pull/2737) +- Improve sliceValidateError.Error performance [#2765](https://github.com/gin-gonic/gin/pull/2765) +- Support custom struct tag [#2720](https://github.com/gin-gonic/gin/pull/2720) +- Improve router group tests [#2787](https://github.com/gin-gonic/gin/pull/2787) +- Fallback Context.Deadline() Context.Done() Context.Err() to Context.Request.Context() [#2769](https://github.com/gin-gonic/gin/pull/2769) +- Some codes optimize [#2830](https://github.com/gin-gonic/gin/pull/2830) [#2834](https://github.com/gin-gonic/gin/pull/2834) [#2838](https://github.com/gin-gonic/gin/pull/2838) [#2837](https://github.com/gin-gonic/gin/pull/2837) [#2788](https://github.com/gin-gonic/gin/pull/2788) [#2848](https://github.com/gin-gonic/gin/pull/2848) [#2851](https://github.com/gin-gonic/gin/pull/2851) [#2701](https://github.com/gin-gonic/gin/pull/2701) +- TrustedProxies: Add default IPv6 support and refactor [#2967](https://github.com/gin-gonic/gin/pull/2967) +- Test(route): expose performRequest func [#3012](https://github.com/gin-gonic/gin/pull/3012) +- Support h2c with prior knowledge [#1398](https://github.com/gin-gonic/gin/pull/1398) +- Feat attachment filename support utf8 [#3071](https://github.com/gin-gonic/gin/pull/3071) +- Feat: add StaticFileFS [#2749](https://github.com/gin-gonic/gin/pull/2749) +- Feat(context): return GIN Context from Value method [#2825](https://github.com/gin-gonic/gin/pull/2825) +- Feat: automatically SetMode to TestMode when run go test [#3139](https://github.com/gin-gonic/gin/pull/3139) +- Add TOML bining for gin [#3081](https://github.com/gin-gonic/gin/pull/3081) +- IPv6 add default trusted proxies [#3033](https://github.com/gin-gonic/gin/pull/3033) ### DOCS -* Add note about nomsgpack tag to the readme [#2703](https://github.com/gin-gonic/gin/pull/2703) +- Add note about nomsgpack tag to the readme [#2703](https://github.com/gin-gonic/gin/pull/2703) ## Gin v1.7.7 ### BUG FIXES -* Fixed X-Forwarded-For unsafe handling of CVE-2020-28483 [#2844](https://github.com/gin-gonic/gin/pull/2844), closed issue [#2862](https://github.com/gin-gonic/gin/issues/2862). -* Tree: updated the code logic for `latestNode` [#2897](https://github.com/gin-gonic/gin/pull/2897), closed issue [#2894](https://github.com/gin-gonic/gin/issues/2894) [#2878](https://github.com/gin-gonic/gin/issues/2878). -* Tree: fixed the misplacement of adding slashes [#2847](https://github.com/gin-gonic/gin/pull/2847), closed issue [#2843](https://github.com/gin-gonic/gin/issues/2843). -* Tree: fixed tsr with mixed static and wildcard paths [#2924](https://github.com/gin-gonic/gin/pull/2924), closed issue [#2918](https://github.com/gin-gonic/gin/issues/2918). +- Fixed X-Forwarded-For unsafe handling of CVE-2020-28483 [#2844](https://github.com/gin-gonic/gin/pull/2844), closed issue [#2862](https://github.com/gin-gonic/gin/issues/2862). +- Tree: updated the code logic for `latestNode` [#2897](https://github.com/gin-gonic/gin/pull/2897), closed issue [#2894](https://github.com/gin-gonic/gin/issues/2894) [#2878](https://github.com/gin-gonic/gin/issues/2878). +- Tree: fixed the misplacement of adding slashes [#2847](https://github.com/gin-gonic/gin/pull/2847), closed issue [#2843](https://github.com/gin-gonic/gin/issues/2843). +- Tree: fixed tsr with mixed static and wildcard paths [#2924](https://github.com/gin-gonic/gin/pull/2924), closed issue [#2918](https://github.com/gin-gonic/gin/issues/2918). ### ENHANCEMENTS -* TrustedProxies: make it backward-compatible [#2887](https://github.com/gin-gonic/gin/pull/2887), closed issue [#2819](https://github.com/gin-gonic/gin/issues/2819). -* TrustedPlatform: provide custom options for another CDN services [#2906](https://github.com/gin-gonic/gin/pull/2906). +- TrustedProxies: make it backward-compatible [#2887](https://github.com/gin-gonic/gin/pull/2887), closed issue [#2819](https://github.com/gin-gonic/gin/issues/2819). +- TrustedPlatform: provide custom options for another CDN services [#2906](https://github.com/gin-gonic/gin/pull/2906). ### DOCS -* NoMethod: added usage annotation ([#2832](https://github.com/gin-gonic/gin/pull/2832#issuecomment-929954463)). +- NoMethod: added usage annotation ([#2832](https://github.com/gin-gonic/gin/pull/2832#issuecomment-929954463)). ## Gin v1.7.6 ### BUG FIXES -* bump new release to fix v1.7.5 release error by using v1.7.4 codes. +- bump new release to fix v1.7.5 release error by using v1.7.4 codes. ## Gin v1.7.4 ### BUG FIXES -* bump new release to fix checksum mismatch +- bump new release to fix checksum mismatch ## Gin v1.7.3 ### BUG FIXES -* fix level 1 router match [#2767](https://github.com/gin-gonic/gin/issues/2767), [#2796](https://github.com/gin-gonic/gin/issues/2796) +- fix level 1 router match [#2767](https://github.com/gin-gonic/gin/issues/2767), [#2796](https://github.com/gin-gonic/gin/issues/2796) ## Gin v1.7.2 ### BUG FIXES -* Fix conflict between param and exact path [#2706](https://github.com/gin-gonic/gin/issues/2706). Close issue [#2682](https://github.com/gin-gonic/gin/issues/2682) [#2696](https://github.com/gin-gonic/gin/issues/2696). +- Fix conflict between param and exact path [#2706](https://github.com/gin-gonic/gin/issues/2706). Close issue [#2682](https://github.com/gin-gonic/gin/issues/2682) [#2696](https://github.com/gin-gonic/gin/issues/2696). ## Gin v1.7.1 ### BUG FIXES -* fix: data race with trustedCIDRs from [#2674](https://github.com/gin-gonic/gin/issues/2674)([#2675](https://github.com/gin-gonic/gin/pull/2675)) +- fix: data race with trustedCIDRs from [#2674](https://github.com/gin-gonic/gin/issues/2674)([#2675](https://github.com/gin-gonic/gin/pull/2675)) ## Gin v1.7.0 ### BUG FIXES -* fix compile error from [#2572](https://github.com/gin-gonic/gin/pull/2572) ([#2600](https://github.com/gin-gonic/gin/pull/2600)) -* fix: print headers without Authorization header on broken pipe ([#2528](https://github.com/gin-gonic/gin/pull/2528)) -* fix(tree): reassign fullpath when register new node ([#2366](https://github.com/gin-gonic/gin/pull/2366)) +- fix compile error from [#2572](https://github.com/gin-gonic/gin/pull/2572) ([#2600](https://github.com/gin-gonic/gin/pull/2600)) +- fix: print headers without Authorization header on broken pipe ([#2528](https://github.com/gin-gonic/gin/pull/2528)) +- fix(tree): reassign fullpath when register new node ([#2366](https://github.com/gin-gonic/gin/pull/2366)) ### ENHANCEMENTS -* Support params and exact routes without creating conflicts ([#2663](https://github.com/gin-gonic/gin/pull/2663)) -* chore: improve render string performance ([#2365](https://github.com/gin-gonic/gin/pull/2365)) -* Sync route tree to httprouter latest code ([#2368](https://github.com/gin-gonic/gin/pull/2368)) -* chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa ([#2375](https://github.com/gin-gonic/gin/pull/2375)) -* chore(performance): improve countParams ([#2378](https://github.com/gin-gonic/gin/pull/2378)) -* Remove some functions that have the same effect as the bytes package ([#2387](https://github.com/gin-gonic/gin/pull/2387)) -* update:SetMode function ([#2321](https://github.com/gin-gonic/gin/pull/2321)) -* remove an unused type SecureJSONPrefix ([#2391](https://github.com/gin-gonic/gin/pull/2391)) -* Add a redirect sample for POST method ([#2389](https://github.com/gin-gonic/gin/pull/2389)) -* Add CustomRecovery builtin middleware ([#2322](https://github.com/gin-gonic/gin/pull/2322)) -* binding: avoid 2038 problem on 32-bit architectures ([#2450](https://github.com/gin-gonic/gin/pull/2450)) -* Prevent panic in Context.GetQuery() when there is no Request ([#2412](https://github.com/gin-gonic/gin/pull/2412)) -* Add GetUint and GetUint64 method on gin.context ([#2487](https://github.com/gin-gonic/gin/pull/2487)) -* update content-disposition header to MIME-style ([#2512](https://github.com/gin-gonic/gin/pull/2512)) -* reduce allocs and improve the render `WriteString` ([#2508](https://github.com/gin-gonic/gin/pull/2508)) -* implement ".Unwrap() error" on Error type ([#2525](https://github.com/gin-gonic/gin/pull/2525)) ([#2526](https://github.com/gin-gonic/gin/pull/2526)) -* Allow bind with a map[string]string ([#2484](https://github.com/gin-gonic/gin/pull/2484)) -* chore: update tree ([#2371](https://github.com/gin-gonic/gin/pull/2371)) -* Support binding for slice/array obj [Rewrite] ([#2302](https://github.com/gin-gonic/gin/pull/2302)) -* basic auth: fix timing oracle ([#2609](https://github.com/gin-gonic/gin/pull/2609)) -* Add mixed param and non-param paths (port of httprouter[#329](https://github.com/gin-gonic/gin/pull/329)) ([#2663](https://github.com/gin-gonic/gin/pull/2663)) -* feat(engine): add trustedproxies and remoteIP ([#2632](https://github.com/gin-gonic/gin/pull/2632)) +- Support params and exact routes without creating conflicts ([#2663](https://github.com/gin-gonic/gin/pull/2663)) +- chore: improve render string performance ([#2365](https://github.com/gin-gonic/gin/pull/2365)) +- Sync route tree to httprouter latest code ([#2368](https://github.com/gin-gonic/gin/pull/2368)) +- chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa ([#2375](https://github.com/gin-gonic/gin/pull/2375)) +- chore(performance): improve countParams ([#2378](https://github.com/gin-gonic/gin/pull/2378)) +- Remove some functions that have the same effect as the bytes package ([#2387](https://github.com/gin-gonic/gin/pull/2387)) +- update:SetMode function ([#2321](https://github.com/gin-gonic/gin/pull/2321)) +- remove an unused type SecureJSONPrefix ([#2391](https://github.com/gin-gonic/gin/pull/2391)) +- Add a redirect sample for POST method ([#2389](https://github.com/gin-gonic/gin/pull/2389)) +- Add CustomRecovery builtin middleware ([#2322](https://github.com/gin-gonic/gin/pull/2322)) +- binding: avoid 2038 problem on 32-bit architectures ([#2450](https://github.com/gin-gonic/gin/pull/2450)) +- Prevent panic in Context.GetQuery() when there is no Request ([#2412](https://github.com/gin-gonic/gin/pull/2412)) +- Add GetUint and GetUint64 method on gin.context ([#2487](https://github.com/gin-gonic/gin/pull/2487)) +- update content-disposition header to MIME-style ([#2512](https://github.com/gin-gonic/gin/pull/2512)) +- reduce allocs and improve the render `WriteString` ([#2508](https://github.com/gin-gonic/gin/pull/2508)) +- implement ".Unwrap() error" on Error type ([#2525](https://github.com/gin-gonic/gin/pull/2525)) ([#2526](https://github.com/gin-gonic/gin/pull/2526)) +- Allow bind with a map[string]string ([#2484](https://github.com/gin-gonic/gin/pull/2484)) +- chore: update tree ([#2371](https://github.com/gin-gonic/gin/pull/2371)) +- Support binding for slice/array obj [Rewrite] ([#2302](https://github.com/gin-gonic/gin/pull/2302)) +- basic auth: fix timing oracle ([#2609](https://github.com/gin-gonic/gin/pull/2609)) +- Add mixed param and non-param paths (port of httprouter[#329](https://github.com/gin-gonic/gin/pull/329)) ([#2663](https://github.com/gin-gonic/gin/pull/2663)) +- feat(engine): add trustedproxies and remoteIP ([#2632](https://github.com/gin-gonic/gin/pull/2632)) ## Gin v1.6.3 ### ENHANCEMENTS - * Improve performance: Change `*sync.RWMutex` to `sync.RWMutex` in context. [#2351](https://github.com/gin-gonic/gin/pull/2351) +- Improve performance: Change `*sync.RWMutex` to `sync.RWMutex` in context. [#2351](https://github.com/gin-gonic/gin/pull/2351) ## Gin v1.6.2 ### BUG FIXES - * fix missing initial sync.RWMutex [#2305](https://github.com/gin-gonic/gin/pull/2305) +- fix missing initial sync.RWMutex [#2305](https://github.com/gin-gonic/gin/pull/2305) ### ENHANCEMENTS - * Add set samesite in cookie. [#2306](https://github.com/gin-gonic/gin/pull/2306) +- Add set samesite in cookie. [#2306](https://github.com/gin-gonic/gin/pull/2306) ## Gin v1.6.1 ### BUG FIXES - * Revert "fix accept incoming network connections" [#2294](https://github.com/gin-gonic/gin/pull/2294) +- Revert "fix accept incoming network connections" [#2294](https://github.com/gin-gonic/gin/pull/2294) ## Gin v1.6.0 ### BREAKING - * chore(performance): Improve performance for adding RemoveExtraSlash flag [#2159](https://github.com/gin-gonic/gin/pull/2159) - * drop support govendor [#2148](https://github.com/gin-gonic/gin/pull/2148) - * Added support for SameSite cookie flag [#1615](https://github.com/gin-gonic/gin/pull/1615) +- chore(performance): Improve performance for adding RemoveExtraSlash flag [#2159](https://github.com/gin-gonic/gin/pull/2159) +- drop support govendor [#2148](https://github.com/gin-gonic/gin/pull/2148) +- Added support for SameSite cookie flag [#1615](https://github.com/gin-gonic/gin/pull/1615) ### FEATURES - * add yaml negotiation [#2220](https://github.com/gin-gonic/gin/pull/2220) - * FileFromFS [#2112](https://github.com/gin-gonic/gin/pull/2112) +- add yaml negotiation [#2220](https://github.com/gin-gonic/gin/pull/2220) +- FileFromFS [#2112](https://github.com/gin-gonic/gin/pull/2112) ### BUG FIXES - * Unix Socket Handling [#2280](https://github.com/gin-gonic/gin/pull/2280) - * Use json marshall in context json to fix breaking new line issue. Fixes #2209 [#2228](https://github.com/gin-gonic/gin/pull/2228) - * fix accept incoming network connections [#2216](https://github.com/gin-gonic/gin/pull/2216) - * Fixed a bug in the calculation of the maximum number of parameters [#2166](https://github.com/gin-gonic/gin/pull/2166) - * [FIX] allow empty headers on DataFromReader [#2121](https://github.com/gin-gonic/gin/pull/2121) - * Add mutex for protect Context.Keys map [#1391](https://github.com/gin-gonic/gin/pull/1391) +- Unix Socket Handling [#2280](https://github.com/gin-gonic/gin/pull/2280) +- Use json marshall in context json to fix breaking new line issue. Fixes #2209 [#2228](https://github.com/gin-gonic/gin/pull/2228) +- fix accept incoming network connections [#2216](https://github.com/gin-gonic/gin/pull/2216) +- Fixed a bug in the calculation of the maximum number of parameters [#2166](https://github.com/gin-gonic/gin/pull/2166) +- [FIX] allow empty headers on DataFromReader [#2121](https://github.com/gin-gonic/gin/pull/2121) +- Add mutex for protect Context.Keys map [#1391](https://github.com/gin-gonic/gin/pull/1391) ### ENHANCEMENTS - * Add mitigation for log injection [#2277](https://github.com/gin-gonic/gin/pull/2277) - * tree: range over nodes values [#2229](https://github.com/gin-gonic/gin/pull/2229) - * tree: remove duplicate assignment [#2222](https://github.com/gin-gonic/gin/pull/2222) - * chore: upgrade go-isatty and json-iterator/go [#2215](https://github.com/gin-gonic/gin/pull/2215) - * path: sync code with httprouter [#2212](https://github.com/gin-gonic/gin/pull/2212) - * Use zero-copy approach to convert types between string and byte slice [#2206](https://github.com/gin-gonic/gin/pull/2206) - * Reuse bytes when cleaning the URL paths [#2179](https://github.com/gin-gonic/gin/pull/2179) - * tree: remove one else statement [#2177](https://github.com/gin-gonic/gin/pull/2177) - * tree: sync httprouter update (#2173) (#2172) [#2171](https://github.com/gin-gonic/gin/pull/2171) - * tree: sync part httprouter codes and reduce if/else [#2163](https://github.com/gin-gonic/gin/pull/2163) - * use http method constant [#2155](https://github.com/gin-gonic/gin/pull/2155) - * upgrade go-validator to v10 [#2149](https://github.com/gin-gonic/gin/pull/2149) - * Refactor redirect request in gin.go [#1970](https://github.com/gin-gonic/gin/pull/1970) - * Add build tag nomsgpack [#1852](https://github.com/gin-gonic/gin/pull/1852) +- Add mitigation for log injection [#2277](https://github.com/gin-gonic/gin/pull/2277) +- tree: range over nodes values [#2229](https://github.com/gin-gonic/gin/pull/2229) +- tree: remove duplicate assignment [#2222](https://github.com/gin-gonic/gin/pull/2222) +- chore: upgrade go-isatty and json-iterator/go [#2215](https://github.com/gin-gonic/gin/pull/2215) +- path: sync code with httprouter [#2212](https://github.com/gin-gonic/gin/pull/2212) +- Use zero-copy approach to convert types between string and byte slice [#2206](https://github.com/gin-gonic/gin/pull/2206) +- Reuse bytes when cleaning the URL paths [#2179](https://github.com/gin-gonic/gin/pull/2179) +- tree: remove one else statement [#2177](https://github.com/gin-gonic/gin/pull/2177) +- tree: sync httprouter update (#2173) (#2172) [#2171](https://github.com/gin-gonic/gin/pull/2171) +- tree: sync part httprouter codes and reduce if/else [#2163](https://github.com/gin-gonic/gin/pull/2163) +- use http method constant [#2155](https://github.com/gin-gonic/gin/pull/2155) +- upgrade go-validator to v10 [#2149](https://github.com/gin-gonic/gin/pull/2149) +- Refactor redirect request in gin.go [#1970](https://github.com/gin-gonic/gin/pull/1970) +- Add build tag nomsgpack [#1852](https://github.com/gin-gonic/gin/pull/1852) ### DOCS - * docs(path): improve comments [#2223](https://github.com/gin-gonic/gin/pull/2223) - * Renew README to fit the modification of SetCookie method [#2217](https://github.com/gin-gonic/gin/pull/2217) - * Fix spelling [#2202](https://github.com/gin-gonic/gin/pull/2202) - * Remove broken link from README. [#2198](https://github.com/gin-gonic/gin/pull/2198) - * Update docs on Context.Done(), Context.Deadline() and Context.Err() [#2196](https://github.com/gin-gonic/gin/pull/2196) - * Update validator to v10 [#2190](https://github.com/gin-gonic/gin/pull/2190) - * upgrade go-validator to v10 for README [#2189](https://github.com/gin-gonic/gin/pull/2189) - * Update to currently output [#2188](https://github.com/gin-gonic/gin/pull/2188) - * Fix "Custom Validators" example [#2186](https://github.com/gin-gonic/gin/pull/2186) - * Add project to README [#2165](https://github.com/gin-gonic/gin/pull/2165) - * docs(benchmarks): for gin v1.5 [#2153](https://github.com/gin-gonic/gin/pull/2153) - * Changed wording for clarity in README.md [#2122](https://github.com/gin-gonic/gin/pull/2122) +- docs(path): improve comments [#2223](https://github.com/gin-gonic/gin/pull/2223) +- Renew README to fit the modification of SetCookie method [#2217](https://github.com/gin-gonic/gin/pull/2217) +- Fix spelling [#2202](https://github.com/gin-gonic/gin/pull/2202) +- Remove broken link from README. [#2198](https://github.com/gin-gonic/gin/pull/2198) +- Update docs on Context.Done(), Context.Deadline() and Context.Err() [#2196](https://github.com/gin-gonic/gin/pull/2196) +- Update validator to v10 [#2190](https://github.com/gin-gonic/gin/pull/2190) +- upgrade go-validator to v10 for README [#2189](https://github.com/gin-gonic/gin/pull/2189) +- Update to currently output [#2188](https://github.com/gin-gonic/gin/pull/2188) +- Fix "Custom Validators" example [#2186](https://github.com/gin-gonic/gin/pull/2186) +- Add project to README [#2165](https://github.com/gin-gonic/gin/pull/2165) +- docs(benchmarks): for gin v1.5 [#2153](https://github.com/gin-gonic/gin/pull/2153) +- Changed wording for clarity in README.md [#2122](https://github.com/gin-gonic/gin/pull/2122) ### MISC - * ci support go1.14 [#2262](https://github.com/gin-gonic/gin/pull/2262) - * chore: upgrade depend version [#2231](https://github.com/gin-gonic/gin/pull/2231) - * Drop support go1.10 [#2147](https://github.com/gin-gonic/gin/pull/2147) - * fix comment in `mode.go` [#2129](https://github.com/gin-gonic/gin/pull/2129) +- ci support go1.14 [#2262](https://github.com/gin-gonic/gin/pull/2262) +- chore: upgrade depend version [#2231](https://github.com/gin-gonic/gin/pull/2231) +- Drop support go1.10 [#2147](https://github.com/gin-gonic/gin/pull/2147) +- fix comment in `mode.go` [#2129](https://github.com/gin-gonic/gin/pull/2129) ## Gin v1.5.0 @@ -485,14 +534,14 @@ ### Gin v1.4.0 -- [NEW] Support for [Go Modules](https://github.com/golang/go/wiki/Modules) [#1569](https://github.com/gin-gonic/gin/pull/1569) +- [NEW] Support for [Go Modules](https://github.com/golang/go/wiki/Modules) [#1569](https://github.com/gin-gonic/gin/pull/1569) - [NEW] Refactor of form mapping multipart request [#1829](https://github.com/gin-gonic/gin/pull/1829) - [FIX] Truncate Latency precision in long running request [#1830](https://github.com/gin-gonic/gin/pull/1830) - [FIX] IsTerm flag should not be affected by DisableConsoleColor method. [#1802](https://github.com/gin-gonic/gin/pull/1802) - [NEW] Supporting file binding [#1264](https://github.com/gin-gonic/gin/pull/1264) - [NEW] Add support for mapping arrays [#1797](https://github.com/gin-gonic/gin/pull/1797) - [FIX] Readme updates [#1793](https://github.com/gin-gonic/gin/pull/1793) [#1788](https://github.com/gin-gonic/gin/pull/1788) [1789](https://github.com/gin-gonic/gin/pull/1789) -- [FIX] StaticFS: Fixed Logging two log lines on 404. [#1805](https://github.com/gin-gonic/gin/pull/1805), [#1804](https://github.com/gin-gonic/gin/pull/1804) +- [FIX] StaticFS: Fixed Logging two log lines on 404. [#1805](https://github.com/gin-gonic/gin/pull/1805), [#1804](https://github.com/gin-gonic/gin/pull/1804) - [NEW] Make context.Keys available as LogFormatterParams [#1779](https://github.com/gin-gonic/gin/pull/1779) - [NEW] Use internal/json for Marshal/Unmarshal [#1791](https://github.com/gin-gonic/gin/pull/1791) - [NEW] Support mapping time.Duration [#1794](https://github.com/gin-gonic/gin/pull/1794) @@ -524,7 +573,7 @@ - [NEW] RunFd method to run http.Server through a file descriptor [#1609](https://github.com/gin-gonic/gin/pull/1609) - [NEW] Yaml binding support [#1618](https://github.com/gin-gonic/gin/pull/1618) - [FIX] Pass MaxMultipartMemory when FormFile is called [#1600](https://github.com/gin-gonic/gin/pull/1600) -- [FIX] LoadHTML* tests [#1559](https://github.com/gin-gonic/gin/pull/1559) +- [FIX] LoadHTML\* tests [#1559](https://github.com/gin-gonic/gin/pull/1559) - [FIX] Removed use of sync.pool from HandleContext [#1565](https://github.com/gin-gonic/gin/pull/1565) - [FIX] Format output log to os.Stderr [#1571](https://github.com/gin-gonic/gin/pull/1571) - [FIX] Make logger use a yellow background and a darkgray text for legibility [#1570](https://github.com/gin-gonic/gin/pull/1570) @@ -539,7 +588,6 @@ - [FIX] Add BindXML and ShouldBindXML [#1485](https://github.com/gin-gonic/gin/pull/1485) - [NEW] Upgrade dependency libraries [#1491](https://github.com/gin-gonic/gin/pull/1491) - ## Gin v1.3.0 - [NEW] Add [`func (*Context) QueryMap`](https://godoc.org/github.com/gin-gonic/gin#Context.QueryMap), [`func (*Context) GetQueryMap`](https://godoc.org/github.com/gin-gonic/gin#Context.GetQueryMap), [`func (*Context) PostFormMap`](https://godoc.org/github.com/gin-gonic/gin#Context.PostFormMap) and [`func (*Context) GetPostFormMap`](https://godoc.org/github.com/gin-gonic/gin#Context.GetPostFormMap) to support `type map[string]string` as query string or form parameters, see [#1383](https://github.com/gin-gonic/gin/pull/1383) @@ -637,7 +685,6 @@ - [FIX] Error implements the json.Marshaller interface - [FIX] MIT license in every file - ## Gin 1.0rc1 (May 22, 2015) - [PERFORMANCE] Zero allocation router @@ -681,7 +728,6 @@ - [FIX] Hijacking http - [FIX] Better support for Google App Engine (using log instead of fmt) - ## Gin 0.6 (Mar 9, 2015) - [NEW] Support multipart/form-data @@ -691,14 +737,12 @@ - [FIX] Unsigned integers in binding - [FIX] Improve color logger - ## Gin 0.5 (Feb 7, 2015) - [NEW] Content Negotiation - [FIX] Solved security bug that allow a client to spoof ip - [FIX] Fix unexported/ignored fields in binding - ## Gin 0.4 (Aug 21, 2014) - [NEW] Development mode @@ -707,7 +751,6 @@ - [FIX] Deferring WriteHeader() - [FIX] Improved documentation for model binding - ## Gin 0.3 (Jul 18, 2014) - [PERFORMANCE] Normal log and error log are printed in the same call. @@ -725,8 +768,8 @@ - [FIX] Renaming Context.Req to Context.Request - [FIX] Check application/x-www-form-urlencoded when parsing form - ## Gin 0.2b (Jul 08, 2014) + - [PERFORMANCE] Using sync.Pool to allocatio/gc overhead - [NEW] Travis CI integration - [NEW] Completely new logger diff --git a/vendor/github.com/gin-gonic/gin/CONTRIBUTING.md b/vendor/github.com/gin-gonic/gin/CONTRIBUTING.md index d1c723c67..3b05a160d 100644 --- a/vendor/github.com/gin-gonic/gin/CONTRIBUTING.md +++ b/vendor/github.com/gin-gonic/gin/CONTRIBUTING.md @@ -1,13 +1,41 @@ -## Contributing +# Contributing -- With issues: - - Use the search tool before opening a new issue. - - Please provide source code and commit sha if you found a bug. +We welcome both issue reports and pull requests! Please follow these guidelines to help maintainers respond effectively. + +## Issues + +- **Before opening a new issue:** + - Use the search tool to check for existing issues or feature requests. - Review existing issues and provide feedback or react to them. + - Use English for all communications — it is the language all maintainers read and write. + - For questions, configuration or deployment problems, please use the [Discussions Forum](https://github.com/gin-gonic/gin/discussions). + - For bug reports involving sensitive security issues, email instead of posting publicly. + +- **Reporting a bug:** + - Please provide a clear description of your issue, and a minimal reproducible code example if possible. + - Include the Gin version (or commit reference), Go version, and operating system. + - Indicate whether you can reproduce the bug and describe steps to do so. + - Attach relevant logs per [Logging Documentation](https://docs.gitea.com/administration/logging-config#collecting-logs-for-help). + +- **Feature requests:** + - Before opening a request, check that a similar idea hasn’t already been suggested. + - Clearly describe your proposed feature and its benefits. + +_For API Documentation, User Guides, and more, see:_ + +- [Go.dev API Documentation](https://pkg.go.dev/github.com/gin-gonic/gin) +- [Gin User Guides](https://gin-gonic.com/) +- [Discussions Forum](https://github.com/gin-gonic/gin/discussions) + +## Pull Requests + +Please ensure your pull request meets the following requirements: + +- Open your pull request against the `master` branch. +- Your pull request should have no more than two commits — squash them if necessary. +- All tests pass in available continuous integration systems (e.g., GitHub Actions). +- Add or modify tests to cover your code changes. +- If your pull request introduces a new feature, document it in [`docs/doc.md`](docs/doc.md), not in the README. +- Follow the checklist in the [Pull Request Template](.github/PULL_REQUEST_TEMPLATE.md). -- With pull requests: - - Open your pull request against `master` - - Your pull request should have no more than two commits, if not you should squash them. - - It should pass all tests in the available continuous integration systems such as GitHub Actions. - - You should add/modify tests to cover your proposed code changes. - - If your pull request contains a new feature, please document it on the README. +Thank you for contributing! diff --git a/vendor/github.com/gin-gonic/gin/README.md b/vendor/github.com/gin-gonic/gin/README.md index 94e08a786..3c815afa6 100644 --- a/vendor/github.com/gin-gonic/gin/README.md +++ b/vendor/github.com/gin-gonic/gin/README.md @@ -3,116 +3,149 @@ [![Build Status](https://github.com/gin-gonic/gin/actions/workflows/gin.yml/badge.svg?branch=master)](https://github.com/gin-gonic/gin/actions/workflows/gin.yml) +[![Trivy Security Scan](https://github.com/gin-gonic/gin/actions/workflows/trivy-scan.yml/badge.svg)](https://github.com/gin-gonic/gin/actions/workflows/trivy-scan.yml) [![codecov](https://codecov.io/gh/gin-gonic/gin/branch/master/graph/badge.svg)](https://codecov.io/gh/gin-gonic/gin) [![Go Report Card](https://goreportcard.com/badge/github.com/gin-gonic/gin)](https://goreportcard.com/report/github.com/gin-gonic/gin) [![Go Reference](https://pkg.go.dev/badge/github.com/gin-gonic/gin?status.svg)](https://pkg.go.dev/github.com/gin-gonic/gin?tab=doc) [![Sourcegraph](https://sourcegraph.com/github.com/gin-gonic/gin/-/badge.svg)](https://sourcegraph.com/github.com/gin-gonic/gin?badge) [![Open Source Helpers](https://www.codetriage.com/gin-gonic/gin/badges/users.svg)](https://www.codetriage.com/gin-gonic/gin) [![Release](https://img.shields.io/github/release/gin-gonic/gin.svg?style=flat-square)](https://github.com/gin-gonic/gin/releases) -[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/gin-gonic/gin)](https://www.tickgit.com/browse?repo=github.com/gin-gonic/gin) -Gin is a web framework written in [Go](https://go.dev/). It features a martini-like API with performance that is up to 40 times faster thanks to [httprouter](https://github.com/julienschmidt/httprouter). -If you need performance and good productivity, you will love Gin. +## 📰 [Announcing Gin 1.12.0!](https://gin-gonic.com/en/blog/news/gin-1-12-0-release-announcement/) -**Gin's key features are:** +Read about the latest features and improvements in Gin 1.11.0 on our official blog. -- Zero allocation router -- Speed -- Middleware support -- Crash-free -- JSON validation -- Route grouping -- Error management -- Built-in rendering -- Extensible +--- -## Getting started +Gin is a high-performance HTTP web framework written in [Go](https://go.dev/). It provides a Martini-like API but with significantly better performance—up to 40 times faster—thanks to [httprouter](https://github.com/julienschmidt/httprouter). Gin is designed for building REST APIs, web applications, and microservices where speed and developer productivity are essential. -### Prerequisites +**Why choose Gin?** -Gin requires [Go](https://go.dev/) version [1.23](https://go.dev/doc/devel/release#go1.23.0) or above. +Gin combines the simplicity of Express.js-style routing with Go's performance characteristics, making it ideal for: -### Getting Gin +- Building high-throughput REST APIs +- Developing microservices that need to handle many concurrent requests +- Creating web applications that require fast response times +- Prototyping web services quickly with minimal boilerplate -With [Go's module support](https://go.dev/wiki/Modules#how-to-use-modules), `go [build|run|test]` automatically fetches the necessary dependencies when you add the import in your code: +**Gin's key features:** -```sh -import "github.com/gin-gonic/gin" -``` +- **Zero allocation router** - Extremely memory-efficient routing with no heap allocations +- **High performance** - Benchmarks show superior speed compared to other Go web frameworks +- **Middleware support** - Extensible middleware system for authentication, logging, CORS, etc. +- **Crash-free** - Built-in recovery middleware prevents panics from crashing your server +- **JSON validation** - Automatic request/response JSON binding and validation +- **Route grouping** - Organize related routes and apply common middleware +- **Error management** - Centralized error handling and logging +- **Built-in rendering** - Support for JSON, XML, HTML templates, and more +- **Extensible** - Large ecosystem of community middleware and plugins + +## Getting Started + +### Prerequisites -Alternatively, use `go get`: +- **Go version**: Gin requires [Go](https://go.dev/) version [1.25](https://go.dev/doc/devel/release#go1.25.0) or above +- **Basic Go knowledge**: Familiarity with Go syntax and package management is helpful -```sh -go get -u github.com/gin-gonic/gin +### Installation + +With [Go's module support](https://go.dev/wiki/Modules#how-to-use-modules), simply import Gin in your code and Go will automatically fetch it during build: + +```go +import "github.com/gin-gonic/gin" ``` -### Running Gin +### Your First Gin Application -A basic example: +Here's a complete example that demonstrates Gin's simplicity: ```go package main import ( + "log" "net/http" "github.com/gin-gonic/gin" ) func main() { + // Create a Gin router with default middleware (logger and recovery) r := gin.Default() + + // Define a simple GET endpoint r.GET("/ping", func(c *gin.Context) { + // Return JSON response c.JSON(http.StatusOK, gin.H{ "message": "pong", }) }) - r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080") + + // Start server on port 8080 (default) + // Server will listen on 0.0.0.0:8080 (localhost:8080 on Windows) + if err := r.Run(); err != nil { + log.Fatalf("failed to run server: %v", err) + } } ``` -To run the code, use the `go run` command, like: +**Running the application:** -```sh -go run example.go -``` +1. Save the code above as `main.go` +2. Run the application: + + ```sh + go run main.go + ``` + +3. Open your browser and visit [`http://localhost:8080/ping`](http://localhost:8080/ping) +4. You should see: `{"message":"pong"}` + +**What this example demonstrates:** + +- Creating a Gin router with default middleware +- Defining HTTP endpoints with simple handler functions +- Returning JSON responses +- Starting an HTTP server + +### Next Steps -Then visit [`0.0.0.0:8080/ping`](http://0.0.0.0:8080/ping) in your browser to see the response! +After running your first Gin application, explore these resources to learn more: -### See more examples +#### 📚 Learning Resources -#### Quick Start +- **[Gin Quick Start Guide](docs/doc.md)** - Comprehensive tutorial with API examples and build configurations +- **[Example Repository](https://github.com/gin-gonic/examples)** - Ready-to-run examples demonstrating various Gin use cases: + - REST API development + - Authentication & middleware + - File uploads and downloads + - WebSocket connections + - Template rendering -Learn and practice with the [Gin Quick Start](docs/doc.md), which includes API examples and builds tag. +## 📖 Documentation -#### Examples +### API Reference -A number of ready-to-run examples demonstrating various use cases of Gin are available in the [Gin examples](https://github.com/gin-gonic/examples) repository. +- **[Go.dev API Documentation](https://pkg.go.dev/github.com/gin-gonic/gin)** - Complete API reference with examples -## Documentation +### User Guides -See the [API documentation on go.dev](https://pkg.go.dev/github.com/gin-gonic/gin). +The comprehensive documentation is available on [gin-gonic.com](https://gin-gonic.com) in multiple languages: -The documentation is also available on [gin-gonic.com](https://gin-gonic.com) in several languages: +- [English](https://gin-gonic.com/en/docs/) | [简体中文](https://gin-gonic.com/zh-cn/docs/) | [繁體中文](https://gin-gonic.com/zh-tw/docs/) +- [日本語](https://gin-gonic.com/ja/docs/) | [한국어](https://gin-gonic.com/ko-kr/docs/) | [Español](https://gin-gonic.com/es/docs/) +- [Turkish](https://gin-gonic.com/tr/docs/) | [Persian](https://gin-gonic.com/fa/docs/) | [Português](https://gin-gonic.com/pt/docs/) +- [Russian](https://gin-gonic.com/ru/docs/) | [Indonesian](https://gin-gonic.com/id/docs/) -- [English](https://gin-gonic.com/en/docs/) -- [简体中文](https://gin-gonic.com/zh-cn/docs/) -- [繁體中文](https://gin-gonic.com/zh-tw/docs/) -- [日本語](https://gin-gonic.com/ja/docs/) -- [Español](https://gin-gonic.com/es/docs/) -- [한국어](https://gin-gonic.com/ko-kr/docs/) -- [Turkish](https://gin-gonic.com/tr/docs/) -- [Persian](https://gin-gonic.com/fa/docs/) -- [Português](https://gin-gonic.com/pt/docs/) -- [Russian](https://gin-gonic.com/ru/docs/) -- [Indonesian](https://gin-gonic.com/id/docs/) +### Official Tutorials -### Articles +- [Go.dev Tutorial: Developing a RESTful API with Go and Gin](https://go.dev/doc/tutorial/web-service-gin) -- [Tutorial: Developing a RESTful API with Go and Gin](https://go.dev/doc/tutorial/web-service-gin) +## ⚡ Performance Benchmarks -## Benchmarks +Gin demonstrates exceptional performance compared to other Go web frameworks. It uses a custom version of [HttpRouter](https://github.com/julienschmidt/httprouter) for maximum efficiency. [View detailed benchmarks →](/BENCHMARKS.md) -Gin uses a custom version of [HttpRouter](https://github.com/julienschmidt/httprouter), [see all benchmarks](/BENCHMARKS.md). +**Gin vs. Other Go Frameworks** (GitHub API routing benchmark): | Benchmark name | (1) | (2) | (3) | (4) | | ------------------------------ | --------: | --------------: | -----------: | --------------: | @@ -152,23 +185,43 @@ Gin uses a custom version of [HttpRouter](https://github.com/julienschmidt/httpr - (3): Heap Memory (B/op), lower is better - (4): Average Allocations per Repetition (allocs/op), lower is better -## Middleware +## 🔌 Middleware Ecosystem + +Gin has a rich ecosystem of middleware for common web development needs. Explore community-contributed middleware: + +- **[gin-contrib](https://github.com/gin-contrib)** - Official middleware collection including: + - Authentication (JWT, Basic Auth, Sessions) + - CORS, Rate limiting, Compression + - Logging, Metrics, Tracing + - Static file serving, Template engines +- **[gin-gonic/contrib](https://github.com/gin-gonic/contrib)** - Additional community middleware + +## 🏢 Production Usage + +Gin powers many high-traffic applications and services in production: + +- **[gorush](https://github.com/appleboy/gorush)** - High-performance push notification server +- **[fnproject](https://github.com/fnproject/fn)** - Container-native, serverless platform +- **[photoprism](https://github.com/photoprism/photoprism)** - AI-powered personal photo management +- **[lura](https://github.com/luraproject/lura)** - Ultra-performant API Gateway framework +- **[picfit](https://github.com/thoas/picfit)** - Real-time image processing server +- **[dkron](https://github.com/distribworks/dkron)** - Distributed job scheduling system -You can find many useful Gin middlewares at [gin-contrib](https://github.com/gin-contrib) and [gin-gonic/contrib](https://github.com/gin-gonic/contrib). +## 🤝 Contributing -## Uses +Gin is the work of hundreds of contributors from around the world. We welcome and appreciate your contributions! -Here are some awesome projects that are using the [Gin](https://github.com/gin-gonic/gin) web framework. +### How to Contribute -- [gorush](https://github.com/appleboy/gorush): A push notification server. -- [fnproject](https://github.com/fnproject/fn): A container native, cloud agnostic serverless platform. -- [photoprism](https://github.com/photoprism/photoprism): Personal photo management powered by Google TensorFlow. -- [lura](https://github.com/luraproject/lura): Ultra performant API Gateway with middleware. -- [picfit](https://github.com/thoas/picfit): An image resizing server. -- [dkron](https://github.com/distribworks/dkron): Distributed, fault tolerant job scheduling system. +- 🐛 **Report bugs** - Help us identify and fix issues +- 💡 **Suggest features** - Share your ideas for improvements +- 📝 **Improve documentation** - Help make our docs clearer +- 🔧 **Submit code** - Fix bugs or implement new features +- 🧪 **Write tests** - Improve our test coverage -## Contributing +### Getting Started with Contributing -Gin is the work of hundreds of contributors. We appreciate your help! +1. Check out our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines +2. Join our community discussions and ask questions -Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on submitting patches and the contribution workflow. +**All contributions are valued and help make Gin better for everyone!** diff --git a/vendor/github.com/gin-gonic/gin/binding/binding.go b/vendor/github.com/gin-gonic/gin/binding/binding.go index 702d0e82f..eced0ae20 100644 --- a/vendor/github.com/gin-gonic/gin/binding/binding.go +++ b/vendor/github.com/gin-gonic/gin/binding/binding.go @@ -23,6 +23,7 @@ const ( MIMEYAML = "application/x-yaml" MIMEYAML2 = "application/yaml" MIMETOML = "application/toml" + MIMEBSON = "application/bson" ) // Binding describes the interface which needs to be implemented for binding the @@ -86,6 +87,7 @@ var ( Header Binding = headerBinding{} Plain BindingBody = plainBinding{} TOML BindingBody = tomlBinding{} + BSON BindingBody = bsonBinding{} ) // Default returns the appropriate Binding instance based on the HTTP method @@ -110,6 +112,8 @@ func Default(method, contentType string) Binding { return TOML case MIMEMultipartPOSTForm: return FormMultipart + case MIMEBSON: + return BSON default: // case MIMEPOSTForm: return Form } diff --git a/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go b/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go index c8e613101..ae364d795 100644 --- a/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go +++ b/vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go @@ -21,6 +21,7 @@ const ( MIMEYAML = "application/x-yaml" MIMEYAML2 = "application/yaml" MIMETOML = "application/toml" + MIMEBSON = "application/bson" ) // Binding describes the interface which needs to be implemented for binding the @@ -82,6 +83,7 @@ var ( Header = headerBinding{} TOML = tomlBinding{} Plain = plainBinding{} + BSON BindingBody = bsonBinding{} ) // Default returns the appropriate Binding instance based on the HTTP method @@ -104,6 +106,8 @@ func Default(method, contentType string) Binding { return FormMultipart case MIMETOML: return TOML + case MIMEBSON: + return BSON default: // case MIMEPOSTForm: return Form } diff --git a/vendor/github.com/gin-gonic/gin/binding/bson.go b/vendor/github.com/gin-gonic/gin/binding/bson.go new file mode 100644 index 000000000..464890f0f --- /dev/null +++ b/vendor/github.com/gin-gonic/gin/binding/bson.go @@ -0,0 +1,30 @@ +// Copyright 2025 Gin Core Team. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package binding + +import ( + "io" + "net/http" + + "go.mongodb.org/mongo-driver/v2/bson" +) + +type bsonBinding struct{} + +func (bsonBinding) Name() string { + return "bson" +} + +func (b bsonBinding) Bind(req *http.Request, obj any) error { + buf, err := io.ReadAll(req.Body) + if err == nil { + err = b.BindBody(buf, obj) + } + return err +} + +func (bsonBinding) BindBody(body []byte, obj any) error { + return bson.Unmarshal(body, obj) +} diff --git a/vendor/github.com/gin-gonic/gin/binding/default_validator.go b/vendor/github.com/gin-gonic/gin/binding/default_validator.go index 44b7a2ac2..8203bcaaf 100644 --- a/vendor/github.com/gin-gonic/gin/binding/default_validator.go +++ b/vendor/github.com/gin-gonic/gin/binding/default_validator.go @@ -27,7 +27,7 @@ func (err SliceValidationError) Error() string { } var b strings.Builder - for i := 0; i < len(err); i++ { + for i := range len(err) { if err[i] != nil { if b.Len() > 0 { b.WriteString("\n") @@ -58,7 +58,7 @@ func (v *defaultValidator) ValidateStruct(obj any) error { case reflect.Slice, reflect.Array: count := value.Len() validateRet := make(SliceValidationError, 0) - for i := 0; i < count; i++ { + for i := range count { if err := v.ValidateStruct(value.Index(i).Interface()); err != nil { validateRet = append(validateRet, err) } diff --git a/vendor/github.com/gin-gonic/gin/binding/form_mapping.go b/vendor/github.com/gin-gonic/gin/binding/form_mapping.go index 45a39e153..6982fd4f3 100644 --- a/vendor/github.com/gin-gonic/gin/binding/form_mapping.go +++ b/vendor/github.com/gin-gonic/gin/binding/form_mapping.go @@ -5,8 +5,10 @@ package binding import ( + "encoding" "errors" "fmt" + "maps" "mime/multipart" "reflect" "strconv" @@ -117,7 +119,7 @@ func mapping(value reflect.Value, field reflect.StructField, setter setter, tag tValue := value.Type() var isSet bool - for i := 0; i < value.NumField(); i++ { + for i := range value.NumField() { sf := tValue.Field(i) if sf.PkgPath != "" && !sf.Anonymous { // unexported continue @@ -136,6 +138,8 @@ func mapping(value reflect.Value, field reflect.StructField, setter setter, tag type setOptions struct { isDefaultExists bool defaultValue string + // parser specifies what interface to use for reading the request & default values (e.g. `encoding.TextUnmarshaler`) + parser string } func tryToSetValue(value reflect.Value, field reflect.StructField, setter setter, tag string) (bool, error) { @@ -167,6 +171,8 @@ func tryToSetValue(value reflect.Value, field reflect.StructField, setter setter setOpt.defaultValue = strings.ReplaceAll(v, ";", ",") } } + } else if k, v = head(opt, "="); k == "parser" { + setOpt.parser = v } } @@ -190,6 +196,20 @@ func trySetCustom(val string, value reflect.Value) (isSet bool, err error) { return false, nil } +// trySetUsingParser tries to set a custom type value based on the presence of the "parser" tag on the field. +// If the parser tag does not exist or does not match any of the supported parsers, gin will skip over this. +func trySetUsingParser(val string, value reflect.Value, parser string) (isSet bool, err error) { + switch parser { + case "encoding.TextUnmarshaler": + v, ok := value.Addr().Interface().(encoding.TextUnmarshaler) + if !ok { + return false, nil + } + return true, v.UnmarshalText([]byte(val)) + } + return false, nil +} + func trySplit(vs []string, field reflect.StructField) (newVs []string, err error) { cfTag := field.Tag.Get("collection_format") if cfTag == "" || cfTag == "multi" { @@ -207,7 +227,7 @@ func trySplit(vs []string, field reflect.StructField) (newVs []string, err error case "pipes": sep = "|" default: - return vs, fmt.Errorf("%s is not supported in the collection_format. (csv, ssv, pipes)", cfTag) + return vs, fmt.Errorf("%s is not supported in the collection_format. (multi, csv, ssv, tsv, pipes)", cfTag) } totalLength := 0 @@ -230,9 +250,12 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][ switch value.Kind() { case reflect.Slice: - if !ok { - vs = []string{opt.defaultValue} + if len(vs) == 0 { + if !opt.isDefaultExists { + return false, nil + } + vs = []string{opt.defaultValue} // pre-process the default value for multi if present cfTag := field.Tag.Get("collection_format") if cfTag == "" || cfTag == "multi" { @@ -240,7 +263,9 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][ } } - if ok, err = trySetCustom(vs[0], value); ok { + if ok, err = trySetUsingParser(vs[0], value, opt.parser); ok { + return ok, err + } else if ok, err = trySetCustom(vs[0], value); ok { return ok, err } @@ -248,11 +273,14 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][ return false, err } - return true, setSlice(vs, value, field) + return true, setSlice(vs, value, field, opt) case reflect.Array: - if !ok { - vs = []string{opt.defaultValue} + if len(vs) == 0 { + if !opt.isDefaultExists { + return false, nil + } + vs = []string{opt.defaultValue} // pre-process the default value for multi if present cfTag := field.Tag.Get("collection_format") if cfTag == "" || cfTag == "multi" { @@ -260,7 +288,9 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][ } } - if ok, err = trySetCustom(vs[0], value); ok { + if ok, err = trySetUsingParser(vs[0], value, opt.parser); ok { + return ok, err + } else if ok, err = trySetCustom(vs[0], value); ok { return ok, err } @@ -272,27 +302,37 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][ return false, fmt.Errorf("%q is not valid value for %s", vs, value.Type().String()) } - return true, setArray(vs, value, field) + return true, setArray(vs, value, field, opt) default: var val string - if !ok { + if !ok || len(vs) == 0 || (len(vs) > 0 && vs[0] == "") { val = opt.defaultValue - } - - if len(vs) > 0 { + } else if len(vs) > 0 { val = vs[0] - if val == "" { - val = opt.defaultValue - } } - if ok, err := trySetCustom(val, value); ok { + + if ok, err = trySetUsingParser(val, value, opt.parser); ok { + return ok, err + } else if ok, err = trySetCustom(val, value); ok { return ok, err } - return true, setWithProperType(val, value, field) + return true, setWithProperType(val, value, field, opt) } } -func setWithProperType(val string, value reflect.Value, field reflect.StructField) error { +func setWithProperType(val string, value reflect.Value, field reflect.StructField, opt setOptions) error { + // this if-check is required for parsing nested types like []MyId, where MyId is [12]byte + if ok, err := trySetUsingParser(val, value, opt.parser); ok { + return err + } else if ok, err = trySetCustom(val, value); ok { + return err + } + + // If it is a string type, no spaces are removed, and the user data is not modified here + if value.Kind() != reflect.String { + val = strings.TrimSpace(val) + } + switch value.Kind() { case reflect.Int: return setIntField(val, 0, value) @@ -340,7 +380,7 @@ func setWithProperType(val string, value reflect.Value, field reflect.StructFiel if !value.Elem().IsValid() { value.Set(reflect.New(value.Type().Elem())) } - return setWithProperType(val, value.Elem(), field) + return setWithProperType(val, value.Elem(), field, opt) default: return errUnknownType } @@ -397,6 +437,11 @@ func setTimeField(val string, structField reflect.StructField, value reflect.Val timeFormat = time.RFC3339 } + if val == "" { + value.Set(reflect.ValueOf(time.Time{})) + return nil + } + switch tf := strings.ToLower(timeFormat); tf { case "unix", "unixmilli", "unixmicro", "unixnano": tv, err := strconv.ParseInt(val, 10, 64) @@ -420,11 +465,6 @@ func setTimeField(val string, structField reflect.StructField, value reflect.Val return nil } - if val == "" { - value.Set(reflect.ValueOf(time.Time{})) - return nil - } - l := time.Local if isUTC, _ := strconv.ParseBool(structField.Tag.Get("time_utc")); isUTC { l = time.UTC @@ -447,9 +487,9 @@ func setTimeField(val string, structField reflect.StructField, value reflect.Val return nil } -func setArray(vals []string, value reflect.Value, field reflect.StructField) error { +func setArray(vals []string, value reflect.Value, field reflect.StructField, opt setOptions) error { for i, s := range vals { - err := setWithProperType(s, value.Index(i), field) + err := setWithProperType(s, value.Index(i), field, opt) if err != nil { return err } @@ -457,9 +497,9 @@ func setArray(vals []string, value reflect.Value, field reflect.StructField) err return nil } -func setSlice(vals []string, value reflect.Value, field reflect.StructField) error { +func setSlice(vals []string, value reflect.Value, field reflect.StructField, opt setOptions) error { slice := reflect.MakeSlice(value.Type(), len(vals), len(vals)) - err := setArray(vals, slice, field) + err := setArray(vals, slice, field, opt) if err != nil { return err } @@ -468,6 +508,10 @@ func setSlice(vals []string, value reflect.Value, field reflect.StructField) err } func setTimeDuration(val string, value reflect.Value) error { + if val == "" { + val = "0" + } + d, err := time.ParseDuration(val) if err != nil { return err @@ -489,9 +533,7 @@ func setFormMap(ptr any, form map[string][]string) error { if !ok { return ErrConvertMapStringSlice } - for k, v := range form { - ptrMap[k] = v - } + maps.Copy(ptrMap, form) return nil } diff --git a/vendor/github.com/gin-gonic/gin/context.go b/vendor/github.com/gin-gonic/gin/context.go index 422c2df71..92fb3704f 100644 --- a/vendor/github.com/gin-gonic/gin/context.go +++ b/vendor/github.com/gin-gonic/gin/context.go @@ -10,6 +10,7 @@ import ( "io" "io/fs" "log" + "maps" "math" "mime/multipart" "net" @@ -38,6 +39,8 @@ const ( MIMEYAML = binding.MIMEYAML MIMEYAML2 = binding.MIMEYAML2 MIMETOML = binding.MIMETOML + MIMEPROTOBUF = binding.MIMEPROTOBUF + MIMEBSON = binding.MIMEBSON ) // BodyBytesKey indicates a default body bytes key. @@ -130,11 +133,8 @@ func (c *Context) Copy() *Context { cp.fullPath = c.fullPath cKeys := c.Keys - cp.Keys = make(map[any]any, len(cKeys)) c.mu.RLock() - for k, v := range cKeys { - cp.Keys[k] = v - } + cp.Keys = maps.Clone(cKeys) c.mu.RUnlock() cParams := c.Params @@ -187,7 +187,7 @@ func (c *Context) FullPath() string { // See example in GitHub. func (c *Context) Next() { c.index++ - for c.index < int8(len(c.handlers)) { + for c.index < safeInt8(len(c.handlers)) { if c.handlers[c.index] != nil { c.handlers[c.index](c) } @@ -272,7 +272,7 @@ func (c *Context) Error(err error) *Error { /************************************/ // Set is used to store a new key/value pair exclusively for this context. -// It also lazy initializes c.Keys if it was not used previously. +// It also lazy initializes c.Keys if it was not used previously. func (c *Context) Set(key any, value any) { c.mu.Lock() defer c.mu.Unlock() @@ -308,165 +308,185 @@ func getTyped[T any](c *Context, key any) (res T) { } // GetString returns the value associated with the key as a string. -func (c *Context) GetString(key any) (s string) { +func (c *Context) GetString(key any) string { return getTyped[string](c, key) } // GetBool returns the value associated with the key as a boolean. -func (c *Context) GetBool(key any) (b bool) { +func (c *Context) GetBool(key any) bool { return getTyped[bool](c, key) } // GetInt returns the value associated with the key as an integer. -func (c *Context) GetInt(key any) (i int) { +func (c *Context) GetInt(key any) int { return getTyped[int](c, key) } // GetInt8 returns the value associated with the key as an integer 8. -func (c *Context) GetInt8(key any) (i8 int8) { +func (c *Context) GetInt8(key any) int8 { return getTyped[int8](c, key) } // GetInt16 returns the value associated with the key as an integer 16. -func (c *Context) GetInt16(key any) (i16 int16) { +func (c *Context) GetInt16(key any) int16 { return getTyped[int16](c, key) } // GetInt32 returns the value associated with the key as an integer 32. -func (c *Context) GetInt32(key any) (i32 int32) { +func (c *Context) GetInt32(key any) int32 { return getTyped[int32](c, key) } // GetInt64 returns the value associated with the key as an integer 64. -func (c *Context) GetInt64(key any) (i64 int64) { +func (c *Context) GetInt64(key any) int64 { return getTyped[int64](c, key) } // GetUint returns the value associated with the key as an unsigned integer. -func (c *Context) GetUint(key any) (ui uint) { +func (c *Context) GetUint(key any) uint { return getTyped[uint](c, key) } // GetUint8 returns the value associated with the key as an unsigned integer 8. -func (c *Context) GetUint8(key any) (ui8 uint8) { +func (c *Context) GetUint8(key any) uint8 { return getTyped[uint8](c, key) } // GetUint16 returns the value associated with the key as an unsigned integer 16. -func (c *Context) GetUint16(key any) (ui16 uint16) { +func (c *Context) GetUint16(key any) uint16 { return getTyped[uint16](c, key) } // GetUint32 returns the value associated with the key as an unsigned integer 32. -func (c *Context) GetUint32(key any) (ui32 uint32) { +func (c *Context) GetUint32(key any) uint32 { return getTyped[uint32](c, key) } // GetUint64 returns the value associated with the key as an unsigned integer 64. -func (c *Context) GetUint64(key any) (ui64 uint64) { +func (c *Context) GetUint64(key any) uint64 { return getTyped[uint64](c, key) } // GetFloat32 returns the value associated with the key as a float32. -func (c *Context) GetFloat32(key any) (f32 float32) { +func (c *Context) GetFloat32(key any) float32 { return getTyped[float32](c, key) } // GetFloat64 returns the value associated with the key as a float64. -func (c *Context) GetFloat64(key any) (f64 float64) { +func (c *Context) GetFloat64(key any) float64 { return getTyped[float64](c, key) } // GetTime returns the value associated with the key as time. -func (c *Context) GetTime(key any) (t time.Time) { +func (c *Context) GetTime(key any) time.Time { return getTyped[time.Time](c, key) } // GetDuration returns the value associated with the key as a duration. -func (c *Context) GetDuration(key any) (d time.Duration) { +func (c *Context) GetDuration(key any) time.Duration { return getTyped[time.Duration](c, key) } +// GetError returns the value associated with the key as an error. +func (c *Context) GetError(key any) error { + return getTyped[error](c, key) +} + // GetIntSlice returns the value associated with the key as a slice of integers. -func (c *Context) GetIntSlice(key any) (is []int) { +func (c *Context) GetIntSlice(key any) []int { return getTyped[[]int](c, key) } // GetInt8Slice returns the value associated with the key as a slice of int8 integers. -func (c *Context) GetInt8Slice(key any) (i8s []int8) { +func (c *Context) GetInt8Slice(key any) []int8 { return getTyped[[]int8](c, key) } // GetInt16Slice returns the value associated with the key as a slice of int16 integers. -func (c *Context) GetInt16Slice(key any) (i16s []int16) { +func (c *Context) GetInt16Slice(key any) []int16 { return getTyped[[]int16](c, key) } // GetInt32Slice returns the value associated with the key as a slice of int32 integers. -func (c *Context) GetInt32Slice(key any) (i32s []int32) { +func (c *Context) GetInt32Slice(key any) []int32 { return getTyped[[]int32](c, key) } // GetInt64Slice returns the value associated with the key as a slice of int64 integers. -func (c *Context) GetInt64Slice(key any) (i64s []int64) { +func (c *Context) GetInt64Slice(key any) []int64 { return getTyped[[]int64](c, key) } // GetUintSlice returns the value associated with the key as a slice of unsigned integers. -func (c *Context) GetUintSlice(key any) (uis []uint) { +func (c *Context) GetUintSlice(key any) []uint { return getTyped[[]uint](c, key) } // GetUint8Slice returns the value associated with the key as a slice of uint8 integers. -func (c *Context) GetUint8Slice(key any) (ui8s []uint8) { +func (c *Context) GetUint8Slice(key any) []uint8 { return getTyped[[]uint8](c, key) } // GetUint16Slice returns the value associated with the key as a slice of uint16 integers. -func (c *Context) GetUint16Slice(key any) (ui16s []uint16) { +func (c *Context) GetUint16Slice(key any) []uint16 { return getTyped[[]uint16](c, key) } // GetUint32Slice returns the value associated with the key as a slice of uint32 integers. -func (c *Context) GetUint32Slice(key any) (ui32s []uint32) { +func (c *Context) GetUint32Slice(key any) []uint32 { return getTyped[[]uint32](c, key) } // GetUint64Slice returns the value associated with the key as a slice of uint64 integers. -func (c *Context) GetUint64Slice(key any) (ui64s []uint64) { +func (c *Context) GetUint64Slice(key any) []uint64 { return getTyped[[]uint64](c, key) } // GetFloat32Slice returns the value associated with the key as a slice of float32 numbers. -func (c *Context) GetFloat32Slice(key any) (f32s []float32) { +func (c *Context) GetFloat32Slice(key any) []float32 { return getTyped[[]float32](c, key) } // GetFloat64Slice returns the value associated with the key as a slice of float64 numbers. -func (c *Context) GetFloat64Slice(key any) (f64s []float64) { +func (c *Context) GetFloat64Slice(key any) []float64 { return getTyped[[]float64](c, key) } // GetStringSlice returns the value associated with the key as a slice of strings. -func (c *Context) GetStringSlice(key any) (ss []string) { +func (c *Context) GetStringSlice(key any) []string { return getTyped[[]string](c, key) } +// GetErrorSlice returns the value associated with the key as a slice of errors. +func (c *Context) GetErrorSlice(key any) []error { + return getTyped[[]error](c, key) +} + // GetStringMap returns the value associated with the key as a map of interfaces. -func (c *Context) GetStringMap(key any) (sm map[string]any) { +func (c *Context) GetStringMap(key any) map[string]any { return getTyped[map[string]any](c, key) } // GetStringMapString returns the value associated with the key as a map of strings. -func (c *Context) GetStringMapString(key any) (sms map[string]string) { +func (c *Context) GetStringMapString(key any) map[string]string { return getTyped[map[string]string](c, key) } // GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings. -func (c *Context) GetStringMapStringSlice(key any) (smss map[string][]string) { +func (c *Context) GetStringMapStringSlice(key any) map[string][]string { return getTyped[map[string][]string](c, key) } +// Delete deletes the key from the Context's Key map, if it exists. +// This operation is safe to be used by concurrent go-routines +func (c *Context) Delete(key any) { + c.mu.Lock() + defer c.mu.Unlock() + if c.Keys != nil { + delete(c.Keys, key) + } +} + /************************************/ /************ INPUT DATA ************/ /************************************/ @@ -731,8 +751,8 @@ func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string, perm // "application/json" --> JSON binding // "application/xml" --> XML binding // -// It parses the request's body as JSON if Content-Type == "application/json" using JSON or XML as a JSON input. -// It decodes the json payload into the struct specified as a pointer. +// It parses the request's body based on the Content-Type (e.g., JSON or XML). +// It decodes the payload into the struct specified as a pointer. // It writes a 400 error and sets Content-Type header "text/plain" in the response if input is not valid. func (c *Context) Bind(obj any) error { b := binding.Default(c.Request.Method, c.ContentType()) @@ -812,8 +832,8 @@ func (c *Context) MustBindWith(obj any, b binding.Binding) error { // "application/json" --> JSON binding // "application/xml" --> XML binding // -// It parses the request's body as JSON if Content-Type == "application/json" using JSON or XML as a JSON input. -// It decodes the json payload into the struct specified as a pointer. +// It parses the request's body based on the Content-Type (e.g., JSON or XML). +// It decodes the payload into the struct specified as a pointer. // Like c.Bind() but this method does not set the response status code to 400 or abort if input is not valid. func (c *Context) ShouldBind(obj any) error { b := binding.Default(c.Request.Method, c.ContentType()) @@ -821,41 +841,71 @@ func (c *Context) ShouldBind(obj any) error { } // ShouldBindJSON is a shortcut for c.ShouldBindWith(obj, binding.JSON). +// +// Example: +// +// POST /user +// Content-Type: application/json +// +// Request Body: +// { +// "name": "Manu", +// "age": 20 +// } +// +// type User struct { +// Name string `json:"name"` +// Age int `json:"age"` +// } +// +// var user User +// if err := c.ShouldBindJSON(&user); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) +// return +// } +// c.JSON(http.StatusOK, user) func (c *Context) ShouldBindJSON(obj any) error { return c.ShouldBindWith(obj, binding.JSON) } // ShouldBindXML is a shortcut for c.ShouldBindWith(obj, binding.XML). +// It works like ShouldBindJSON but binds the request body as XML data. func (c *Context) ShouldBindXML(obj any) error { return c.ShouldBindWith(obj, binding.XML) } // ShouldBindQuery is a shortcut for c.ShouldBindWith(obj, binding.Query). +// It works like ShouldBindJSON but binds query parameters from the URL. func (c *Context) ShouldBindQuery(obj any) error { return c.ShouldBindWith(obj, binding.Query) } // ShouldBindYAML is a shortcut for c.ShouldBindWith(obj, binding.YAML). +// It works like ShouldBindJSON but binds the request body as YAML data. func (c *Context) ShouldBindYAML(obj any) error { return c.ShouldBindWith(obj, binding.YAML) } // ShouldBindTOML is a shortcut for c.ShouldBindWith(obj, binding.TOML). +// It works like ShouldBindJSON but binds the request body as TOML data. func (c *Context) ShouldBindTOML(obj any) error { return c.ShouldBindWith(obj, binding.TOML) } // ShouldBindPlain is a shortcut for c.ShouldBindWith(obj, binding.Plain). +// It works like ShouldBindJSON but binds plain text data from the request body. func (c *Context) ShouldBindPlain(obj any) error { return c.ShouldBindWith(obj, binding.Plain) } // ShouldBindHeader is a shortcut for c.ShouldBindWith(obj, binding.Header). +// It works like ShouldBindJSON but binds values from HTTP headers. func (c *Context) ShouldBindHeader(obj any) error { return c.ShouldBindWith(obj, binding.Header) } // ShouldBindUri binds the passed struct pointer using the specified binding engine. +// It works like ShouldBindJSON but binds parameters from the URI. func (c *Context) ShouldBindUri(obj any) error { m := make(map[string][]string, len(c.Params)) for _, v := range c.Params { @@ -939,18 +989,32 @@ func (c *Context) ClientIP() string { } } - // It also checks if the remoteIP is a trusted proxy or not. - // In order to perform this validation, it will see if the IP is contained within at least one of the CIDR blocks - // defined by Engine.SetTrustedProxies() - remoteIP := net.ParseIP(c.RemoteIP()) - if remoteIP == nil { - return "" + var ( + trusted bool + remoteIP net.IP + ) + // If gin is listening a unix socket, always trust it. + localAddr, ok := c.Request.Context().Value(http.LocalAddrContextKey).(net.Addr) + if ok && strings.HasPrefix(localAddr.Network(), "unix") { + trusted = true + } + + // Fallback + if !trusted { + // It also checks if the remoteIP is a trusted proxy or not. + // In order to perform this validation, it will see if the IP is contained within at least one of the CIDR blocks + // defined by Engine.SetTrustedProxies() + remoteIP = net.ParseIP(c.RemoteIP()) + if remoteIP == nil { + return "" + } + trusted = c.engine.isTrustedProxy(remoteIP) } - trusted := c.engine.isTrustedProxy(remoteIP) if trusted && c.engine.ForwardedByClientIP && c.engine.RemoteIPHeaders != nil { for _, headerName := range c.engine.RemoteIPHeaders { - ip, valid := c.engine.validateHeader(c.requestHeader(headerName)) + headerValue := strings.Join(c.Request.Header.Values(headerName), ",") + ip, valid := c.engine.validateHeader(headerValue) if valid { return ip } @@ -992,9 +1056,10 @@ func (c *Context) requestHeader(key string) string { /************************************/ // bodyAllowedForStatus is a copy of http.bodyAllowedForStatus non-exported function. +// Uses http.StatusContinue constant for better code clarity. func bodyAllowedForStatus(status int) bool { switch { - case status >= 100 && status <= 199: + case status >= http.StatusContinue && status < http.StatusOK: return false case status == http.StatusNoContent: return false @@ -1174,6 +1239,11 @@ func (c *Context) ProtoBuf(code int, obj any) { c.Render(code, render.ProtoBuf{Data: obj}) } +// BSON serializes the given struct as BSON into the response body. +func (c *Context) BSON(code int, obj any) { + c.Render(code, render.BSON{Data: obj}) +} + // String writes the given string into the response body. func (c *Context) String(code int, format string, values ...any) { c.Render(code, render.String{Format: format, Data: values}) @@ -1272,14 +1342,16 @@ func (c *Context) Stream(step func(w io.Writer) bool) bool { // Negotiate contains all negotiations data. type Negotiate struct { - Offered []string - HTMLName string - HTMLData any - JSONData any - XMLData any - YAMLData any - Data any - TOMLData any + Offered []string + HTMLName string + HTMLData any + JSONData any + XMLData any + YAMLData any + Data any + TOMLData any + PROTOBUFData any + BSONData any } // Negotiate calls different Render according to acceptable Accept format. @@ -1305,6 +1377,14 @@ func (c *Context) Negotiate(code int, config Negotiate) { data := chooseData(config.TOMLData, config.Data) c.TOML(code, data) + case binding.MIMEPROTOBUF: + data := chooseData(config.PROTOBUFData, config.Data) + c.ProtoBuf(code, data) + + case binding.MIMEBSON: + data := chooseData(config.BSONData, config.Data) + c.BSON(code, data) + default: c.AbortWithError(http.StatusNotAcceptable, errors.New("the accepted formats are not offered by the server")) //nolint: errcheck } diff --git a/vendor/github.com/gin-gonic/gin/debug.go b/vendor/github.com/gin-gonic/gin/debug.go index 7fe2762e7..753c12857 100644 --- a/vendor/github.com/gin-gonic/gin/debug.go +++ b/vendor/github.com/gin-gonic/gin/debug.go @@ -13,7 +13,9 @@ import ( "sync/atomic" ) -const ginSupportMinGoVer = 23 +const ginSupportMinGoVer = 25 + +var runtimeVersion = runtime.Version() // IsDebugging returns true if the framework is running in debug mode. // Use SetMode(gin.ReleaseMode) to disable debug mode. @@ -77,8 +79,8 @@ func getMinVer(v string) (uint64, error) { } func debugPrintWARNINGDefault() { - if v, e := getMinVer(runtime.Version()); e == nil && v < ginSupportMinGoVer { - debugPrint(`[WARNING] Now Gin requires Go 1.23+. + if v, e := getMinVer(runtimeVersion); e == nil && v < ginSupportMinGoVer { + debugPrint(`[WARNING] Now Gin requires Go 1.25+. `) } diff --git a/vendor/github.com/gin-gonic/gin/errors.go b/vendor/github.com/gin-gonic/gin/errors.go index 829e9d2ce..c0d907b95 100644 --- a/vendor/github.com/gin-gonic/gin/errors.go +++ b/vendor/github.com/gin-gonic/gin/errors.go @@ -26,8 +26,6 @@ const ( ErrorTypePublic ErrorType = 1 << 1 // ErrorTypeAny indicates any other error. ErrorTypeAny ErrorType = 1<<64 - 1 - // ErrorTypeNu indicates any other error. - ErrorTypeNu = 2 ) // Error represents a error's specification. diff --git a/vendor/github.com/gin-gonic/gin/gin.go b/vendor/github.com/gin-gonic/gin/gin.go index 1965a429a..2e033bf34 100644 --- a/vendor/github.com/gin-gonic/gin/gin.go +++ b/vendor/github.com/gin-gonic/gin/gin.go @@ -11,7 +11,6 @@ import ( "net/http" "os" "path" - "regexp" "strings" "sync" @@ -23,10 +22,12 @@ import ( "golang.org/x/net/http2/h2c" ) -const defaultMultipartMemory = 32 << 20 // 32 MB -const escapedColon = "\\:" -const colon = ":" -const backslash = "\\" +const ( + defaultMultipartMemory = 32 << 20 // 32 MB + escapedColon = "\\:" + colon = ":" + backslash = "\\" +) var ( default404Body = []byte("404 page not found") @@ -46,9 +47,6 @@ var defaultTrustedCIDRs = []*net.IPNet{ }, } -var regSafePrefix = regexp.MustCompile("[^a-zA-Z0-9/-]+") -var regRemoveRepeatedChar = regexp.MustCompile("/{2,}") - // HandlerFunc defines the handler used by gin middleware as return value. type HandlerFunc func(*Context) @@ -94,6 +92,10 @@ const ( type Engine struct { RouterGroup + // routeTreesUpdated ensures that the initialization or update of the route trees + // (used for routing HTTP requests) happens only once, even if called multiple times concurrently. + routeTreesUpdated sync.Once + // RedirectTrailingSlash enables automatic redirection if the current route can't be matched but a // handler for the path with (without) the trailing slash exists. // For example if /foo/ is requested but a route only exists for /foo, the @@ -133,10 +135,16 @@ type Engine struct { AppEngine bool // UseRawPath if enabled, the url.RawPath will be used to find parameters. + // The RawPath is only a hint, EscapedPath() should be use instead. (https://pkg.go.dev/net/url@master#URL) + // Only use RawPath if you know what you are doing. UseRawPath bool + // UseEscapedPath if enable, the url.EscapedPath() will be used to find parameters + // It overrides UseRawPath + UseEscapedPath bool + // UnescapePathValues if true, the path value will be unescaped. - // If UseRawPath is false (by default), the UnescapePathValues effectively is true, + // If UseRawPath and UseEscapedPath are false (by default), the UnescapePathValues effectively is true, // as url.Path gonna be used, which is already unescaped. UnescapePathValues bool @@ -189,6 +197,7 @@ var _ IRouter = (*Engine)(nil) // - HandleMethodNotAllowed: false // - ForwardedByClientIP: true // - UseRawPath: false +// - UseEscapedPath: false // - UnescapePathValues: true func New(opts ...OptionFunc) *Engine { debugPrintWARNINGNew() @@ -206,6 +215,7 @@ func New(opts ...OptionFunc) *Engine { RemoteIPHeaders: []string{"X-Forwarded-For", "X-Real-IP"}, TrustedPlatform: defaultPlatform, UseRawPath: false, + UseEscapedPath: false, RemoveExtraSlash: false, UnescapePathValues: true, MaxMultipartMemory: defaultMultipartMemory, @@ -537,7 +547,11 @@ func (engine *Engine) Run(addr ...string) (err error) { engine.updateRouteTrees() address := resolveAddress(addr) debugPrint("Listening and serving HTTP on %s\n", address) - err = http.ListenAndServe(address, engine.Handler()) + server := &http.Server{ // #nosec G112 + Addr: address, + Handler: engine.Handler(), + } + err = server.ListenAndServe() return } @@ -553,7 +567,11 @@ func (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error) { "Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.") } - err = http.ListenAndServeTLS(addr, certFile, keyFile, engine.Handler()) + server := &http.Server{ // #nosec G112 + Addr: addr, + Handler: engine.Handler(), + } + err = server.ListenAndServeTLS(certFile, keyFile) return } @@ -576,7 +594,10 @@ func (engine *Engine) RunUnix(file string) (err error) { defer listener.Close() defer os.Remove(file) - err = http.Serve(listener, engine.Handler()) + server := &http.Server{ // #nosec G112 + Handler: engine.Handler(), + } + err = server.Serve(listener) return } @@ -593,6 +614,7 @@ func (engine *Engine) RunFd(fd int) (err error) { } f := os.NewFile(uintptr(fd), fmt.Sprintf("fd@%d", fd)) + defer f.Close() listener, err := net.FileListener(f) if err != nil { return @@ -629,12 +651,19 @@ func (engine *Engine) RunListener(listener net.Listener) (err error) { "Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.") } - err = http.Serve(listener, engine.Handler()) + server := &http.Server{ // #nosec G112 + Handler: engine.Handler(), + } + err = server.Serve(listener) return } // ServeHTTP conforms to the http.Handler interface. func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request) { + engine.routeTreesUpdated.Do(func() { + engine.updateRouteTrees() + }) + c := engine.pool.Get().(*Context) c.writermem.reset(w) c.Request = req @@ -662,7 +691,11 @@ func (engine *Engine) handleHTTPRequest(c *Context) { httpMethod := c.Request.Method rPath := c.Request.URL.Path unescape := false - if engine.UseRawPath && len(c.Request.URL.RawPath) > 0 { + + if engine.UseEscapedPath { + rPath = c.Request.URL.EscapedPath() + unescape = engine.UnescapePathValues + } else if engine.UseRawPath && len(c.Request.URL.RawPath) > 0 { rPath = c.Request.URL.RawPath unescape = engine.UnescapePathValues } @@ -749,8 +782,8 @@ func redirectTrailingSlash(c *Context) { req := c.Request p := req.URL.Path if prefix := path.Clean(c.Request.Header.Get("X-Forwarded-Prefix")); prefix != "." { - prefix = regSafePrefix.ReplaceAllString(prefix, "") - prefix = regRemoveRepeatedChar.ReplaceAllString(prefix, "/") + prefix = sanitizePathChars(prefix) + prefix = removeRepeatedChar(prefix, '/') p = prefix + "/" + req.URL.Path } @@ -761,6 +794,17 @@ func redirectTrailingSlash(c *Context) { redirectRequest(c) } +// sanitizePathChars removes unsafe characters from path strings, +// keeping only ASCII letters, ASCII numbers, forward slashes, and hyphens. +func sanitizePathChars(s string) string { + return strings.Map(func(r rune) rune { + if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') || (r >= '0' && r <= '9') || r == '/' || r == '-' { + return r + } + return -1 + }, s) +} + func redirectFixedPath(c *Context, root *node, trailingSlash bool) bool { req := c.Request rPath := req.URL.Path diff --git a/vendor/github.com/gin-gonic/gin/logger.go b/vendor/github.com/gin-gonic/gin/logger.go index 478277870..cf92553ac 100644 --- a/vendor/github.com/gin-gonic/gin/logger.go +++ b/vendor/github.com/gin-gonic/gin/logger.go @@ -48,6 +48,11 @@ type LoggerConfig struct { // Optional. SkipPaths []string + // SkipQueryString indicates that query strings should not be written + // for cases such as when API keys are passed via query strings. + // Optional. Default value is false. + SkipQueryString bool + // Skip is a Skipper that indicates which logs should not be written. // Optional. Skip Skipper @@ -103,6 +108,27 @@ func (p *LogFormatterParams) StatusCodeColor() string { } } +// LatencyColor is the ANSI color for latency +func (p *LogFormatterParams) LatencyColor() string { + latency := p.Latency + switch { + case latency < time.Millisecond*100: + return white + case latency < time.Millisecond*200: + return green + case latency < time.Millisecond*300: + return cyan + case latency < time.Millisecond*500: + return blue + case latency < time.Second: + return yellow + case latency < time.Second*2: + return magenta + default: + return red + } +} + // MethodColor is the ANSI color for appropriately logging http method to a terminal. func (p *LogFormatterParams) MethodColor() string { method := p.Method @@ -139,20 +165,27 @@ func (p *LogFormatterParams) IsOutputColor() bool { // defaultLogFormatter is the default log format function Logger middleware uses. var defaultLogFormatter = func(param LogFormatterParams) string { - var statusColor, methodColor, resetColor string + var statusColor, methodColor, resetColor, latencyColor string if param.IsOutputColor() { statusColor = param.StatusCodeColor() methodColor = param.MethodColor() resetColor = param.ResetColor() + latencyColor = param.LatencyColor() } - if param.Latency > time.Minute { - param.Latency = param.Latency.Truncate(time.Second) + switch { + case param.Latency > time.Minute: + param.Latency = param.Latency.Truncate(time.Second * 10) + case param.Latency > time.Second: + param.Latency = param.Latency.Truncate(time.Millisecond * 10) + case param.Latency > time.Millisecond: + param.Latency = param.Latency.Truncate(time.Microsecond * 10) } - return fmt.Sprintf("[GIN] %v |%s %3d %s| %13v | %15s |%s %-7s %s %#v\n%s", + + return fmt.Sprintf("[GIN] %v |%s %3d %s|%s %8v %s| %15s |%s %-7s %s %#v\n%s", param.TimeStamp.Format("2006/01/02 - 15:04:05"), statusColor, param.StatusCode, resetColor, - param.Latency, + latencyColor, param.Latency, resetColor, param.ClientIP, methodColor, param.Method, resetColor, param.Path, @@ -270,7 +303,7 @@ func LoggerWithConfig(conf LoggerConfig) HandlerFunc { param.BodySize = c.Writer.Size() - if raw != "" { + if raw != "" && !conf.SkipQueryString { path = path + "?" + raw } diff --git a/vendor/github.com/gin-gonic/gin/path.go b/vendor/github.com/gin-gonic/gin/path.go index 82438c137..3b67caa9e 100644 --- a/vendor/github.com/gin-gonic/gin/path.go +++ b/vendor/github.com/gin-gonic/gin/path.go @@ -5,6 +5,8 @@ package gin +const stackBufSize = 128 + // cleanPath is the URL version of path.Clean, it returns a canonical URL path // for p, eliminating . and .. elements. // @@ -19,7 +21,6 @@ package gin // // If the result of this process is an empty string, "/" is returned. func cleanPath(p string) string { - const stackBufSize = 128 // Turn empty string into "/" if p == "" { return "/" @@ -148,3 +149,55 @@ func bufApp(buf *[]byte, s string, w int, c byte) { } b[w] = c } + +// removeRepeatedChar removes multiple consecutive 'char's from a string. +// if s == "/a//b///c////" && char == '/', it returns "/a/b/c/" +func removeRepeatedChar(s string, char byte) string { + // Check if there are any consecutive chars + hasRepeatedChar := false + for i := 1; i < len(s); i++ { + if s[i] == char && s[i-1] == char { + hasRepeatedChar = true + break + } + } + if !hasRepeatedChar { + return s + } + + // Reasonably sized buffer on stack to avoid allocations in the common case. + buf := make([]byte, 0, stackBufSize) + + // Invariants: + // reading from s; r is index of next byte to process. + // writing to buf; w is index of next byte to write. + r := 0 + w := 0 + + for n := len(s); r < n; { + if s[r] == char { + // Write the first char + bufApp(&buf, s, w, char) + w++ + r++ + + // Skip all consecutive chars + for r < n && s[r] == char { + r++ + } + } else { + // Copy non-char character + bufApp(&buf, s, w, s[r]) + w++ + r++ + } + } + + // If the original string was not modified (or only shortened at the end), + // return the respective substring of the original string. + // Otherwise, return a new string from the buffer. + if len(buf) == 0 { + return s[:w] + } + return string(buf[:w]) +} diff --git a/vendor/github.com/gin-gonic/gin/recovery.go b/vendor/github.com/gin-gonic/gin/recovery.go index fdd463f3e..bbf1d565b 100644 --- a/vendor/github.com/gin-gonic/gin/recovery.go +++ b/vendor/github.com/gin-gonic/gin/recovery.go @@ -5,25 +5,28 @@ package gin import ( + "bufio" "bytes" + "cmp" "errors" "fmt" "io" "log" - "net" "net/http" "net/http/httputil" "os" "runtime" "strings" + "syscall" "time" "github.com/gin-gonic/gin/internal/bytesconv" ) -const dunno = "???" - -var dunnoBytes = []byte(dunno) +const ( + dunno = "???" + stackSkip = 3 +) // RecoveryFunc defines the function passable to CustomRecovery. type RecoveryFunc func(c *Context, err any) @@ -54,38 +57,33 @@ func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc { } return func(c *Context) { defer func() { - if err := recover(); err != nil { + if rec := recover(); rec != nil { // Check for a broken connection, as it is not really a // condition that warrants a panic stack trace. - var brokenPipe bool - if ne, ok := err.(*net.OpError); ok { - var se *os.SyscallError - if errors.As(ne, &se) { - seStr := strings.ToLower(se.Error()) - if strings.Contains(seStr, "broken pipe") || - strings.Contains(seStr, "connection reset by peer") { - brokenPipe = true - } - } + var isBrokenPipe bool + err, ok := rec.(error) + if ok { + isBrokenPipe = errors.Is(err, syscall.EPIPE) || + errors.Is(err, syscall.ECONNRESET) || + errors.Is(err, http.ErrAbortHandler) } if logger != nil { - const stackSkip = 3 - if brokenPipe { - logger.Printf("%s\n%s%s", err, secureRequestDump(c.Request), reset) + if isBrokenPipe { + logger.Printf("%s\n%s%s", rec, secureRequestDump(c.Request), reset) } else if IsDebugging() { logger.Printf("[Recovery] %s panic recovered:\n%s\n%s\n%s%s", - timeFormat(time.Now()), secureRequestDump(c.Request), err, stack(stackSkip), reset) + timeFormat(time.Now()), secureRequestDump(c.Request), rec, stack(stackSkip), reset) } else { logger.Printf("[Recovery] %s panic recovered:\n%s\n%s%s", - timeFormat(time.Now()), err, stack(stackSkip), reset) + timeFormat(time.Now()), rec, stack(stackSkip), reset) } } - if brokenPipe { + if isBrokenPipe { // If the connection is dead, we can't write a status to it. - c.Error(err.(error)) //nolint: errcheck + c.Error(err) //nolint: errcheck c.Abort() } else { - handle(c, err) + handle(c, rec) } } }() @@ -117,8 +115,11 @@ func stack(skip int) []byte { buf := new(bytes.Buffer) // the returned data // As we loop, we open files and read them. These variables record the currently // loaded file. - var lines [][]byte - var lastFile string + var ( + nLine string + lastFile string + err error + ) for i := skip; ; i++ { // Skip the expected number of frames pc, file, line, ok := runtime.Caller(i) if !ok { @@ -127,25 +128,44 @@ func stack(skip int) []byte { // Print this much at least. If we can't find the source, it won't show. fmt.Fprintf(buf, "%s:%d (0x%x)\n", file, line, pc) if file != lastFile { - data, err := os.ReadFile(file) + nLine, err = readNthLine(file, line-1) if err != nil { continue } - lines = bytes.Split(data, []byte{'\n'}) lastFile = file } - fmt.Fprintf(buf, "\t%s: %s\n", function(pc), source(lines, line)) + fmt.Fprintf(buf, "\t%s: %s\n", function(pc), cmp.Or(nLine, dunno)) } return buf.Bytes() } -// source returns a space-trimmed slice of the n'th line. -func source(lines [][]byte, n int) []byte { - n-- // in stack trace, lines are 1-indexed but our array is 0-indexed - if n < 0 || n >= len(lines) { - return dunnoBytes +// readNthLine reads the nth line from the file. +// It returns the trimmed content of the line if found, +// or an empty string if the line doesn't exist. +// If there's an error opening the file, it returns the error. +func readNthLine(file string, n int) (string, error) { + if n < 0 { + return "", nil } - return bytes.TrimSpace(lines[n]) + + f, err := os.Open(file) + if err != nil { + return "", err + } + defer f.Close() + + scanner := bufio.NewScanner(f) + for i := 0; i < n; i++ { + if !scanner.Scan() { + return "", nil + } + } + + if scanner.Scan() { + return strings.TrimSpace(scanner.Text()), nil + } + + return "", nil } // function returns, if possible, the name of the function containing the PC. diff --git a/vendor/github.com/gin-gonic/gin/render/bson.go b/vendor/github.com/gin-gonic/gin/render/bson.go new file mode 100644 index 000000000..07f023332 --- /dev/null +++ b/vendor/github.com/gin-gonic/gin/render/bson.go @@ -0,0 +1,34 @@ +// Copyright 2025 Gin Core Team. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package render + +import ( + "net/http" + + "go.mongodb.org/mongo-driver/v2/bson" +) + +// BSON contains the given interface object. +type BSON struct { + Data any +} + +var bsonContentType = []string{"application/bson"} + +// Render (BSON) marshals the given interface object and writes data with custom ContentType. +func (r BSON) Render(w http.ResponseWriter) error { + r.WriteContentType(w) + + bytes, err := bson.Marshal(&r.Data) + if err == nil { + _, err = w.Write(bytes) + } + return err +} + +// WriteContentType (BSONBuf) writes BSONBuf ContentType. +func (r BSON) WriteContentType(w http.ResponseWriter) { + writeContentType(w, bsonContentType) +} diff --git a/vendor/github.com/gin-gonic/gin/render/data.go b/vendor/github.com/gin-gonic/gin/render/data.go index a653ea309..2c0ad5e3e 100644 --- a/vendor/github.com/gin-gonic/gin/render/data.go +++ b/vendor/github.com/gin-gonic/gin/render/data.go @@ -4,7 +4,10 @@ package render -import "net/http" +import ( + "net/http" + "strconv" +) // Data contains ContentType and bytes data. type Data struct { @@ -15,6 +18,9 @@ type Data struct { // Render (Data) writes data with custom ContentType. func (r Data) Render(w http.ResponseWriter) (err error) { r.WriteContentType(w) + if len(r.Data) > 0 { + w.Header().Set("Content-Length", strconv.Itoa(len(r.Data))) + } _, err = w.Write(r.Data) return } diff --git a/vendor/github.com/gin-gonic/gin/response_writer.go b/vendor/github.com/gin-gonic/gin/response_writer.go index ab2f5fec6..9035e6f1f 100644 --- a/vendor/github.com/gin-gonic/gin/response_writer.go +++ b/vendor/github.com/gin-gonic/gin/response_writer.go @@ -17,7 +17,7 @@ const ( defaultStatus = http.StatusOK ) -var errHijackAlreadyWritten = errors.New("gin: response already written") +var errHijackAlreadyWritten = errors.New("gin: response body already written") // ResponseWriter ... type ResponseWriter interface { @@ -109,7 +109,9 @@ func (w *responseWriter) Written() bool { // Hijack implements the http.Hijacker interface. func (w *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { - if w.Written() { + // Allow hijacking before any data is written (size == -1) or after headers are written (size == 0), + // but not after body data is written (size > 0). For compatibility with websocket libraries (e.g., github.com/coder/websocket) + if w.size > 0 { return nil, nil, errHijackAlreadyWritten } if w.size < 0 { @@ -126,7 +128,9 @@ func (w *responseWriter) CloseNotify() <-chan bool { // Flush implements the http.Flusher interface. func (w *responseWriter) Flush() { w.WriteHeaderNow() - w.ResponseWriter.(http.Flusher).Flush() + if f, ok := w.ResponseWriter.(http.Flusher); ok { + f.Flush() + } } func (w *responseWriter) Pusher() (pusher http.Pusher) { diff --git a/vendor/github.com/gin-gonic/gin/routergroup.go b/vendor/github.com/gin-gonic/gin/routergroup.go index b2540ec11..c01b917e3 100644 --- a/vendor/github.com/gin-gonic/gin/routergroup.go +++ b/vendor/github.com/gin-gonic/gin/routergroup.go @@ -169,7 +169,7 @@ func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes { }) } -// StaticFileFS works just like `StaticFile` but a custom `http.FileSystem` can be used instead.. +// StaticFileFS works just like `StaticFile` but a custom `http.FileSystem` can be used instead. // router.StaticFileFS("favicon.ico", "./resources/favicon.ico", Dir{".", false}) // Gin by default uses: gin.Dir() func (group *RouterGroup) StaticFileFS(relativePath, filepath string, fs http.FileSystem) IRoutes { diff --git a/vendor/github.com/gin-gonic/gin/test_helpers.go b/vendor/github.com/gin-gonic/gin/test_helpers.go index a1a7c5629..20d200320 100644 --- a/vendor/github.com/gin-gonic/gin/test_helpers.go +++ b/vendor/github.com/gin-gonic/gin/test_helpers.go @@ -4,7 +4,11 @@ package gin -import "net/http" +import ( + "fmt" + "net/http" + "time" +) // CreateTestContext returns a fresh Engine and a Context associated with it. // This is useful for tests that need to set up a new Gin engine instance @@ -29,3 +33,28 @@ func CreateTestContextOnly(w http.ResponseWriter, r *Engine) (c *Context) { c.writermem.reset(w) return } + +// waitForServerReady waits for a server to be ready by making HTTP requests +// with exponential backoff. This is more reliable than time.Sleep() for testing. +func waitForServerReady(url string, maxAttempts int) error { + client := &http.Client{ + Timeout: 100 * time.Millisecond, + } + + for i := 0; i < maxAttempts; i++ { + resp, err := client.Get(url) + if err == nil { + resp.Body.Close() + return nil + } + + // Exponential backoff: 10ms, 20ms, 40ms, 80ms, 160ms... + backoff := time.Duration(10*(1< 500*time.Millisecond { + backoff = 500 * time.Millisecond + } + time.Sleep(backoff) + } + + return fmt.Errorf("server at %s did not become ready after %d attempts", url, maxAttempts) +} diff --git a/vendor/github.com/gin-gonic/gin/tree.go b/vendor/github.com/gin-gonic/gin/tree.go index 78479b6f3..580abbaf8 100644 --- a/vendor/github.com/gin-gonic/gin/tree.go +++ b/vendor/github.com/gin-gonic/gin/tree.go @@ -5,7 +5,6 @@ package gin import ( - "bytes" "net/url" "strings" "unicode" @@ -14,12 +13,6 @@ import ( "github.com/gin-gonic/gin/internal/bytesconv" ) -var ( - strColon = []byte(":") - strStar = []byte("*") - strSlash = []byte("/") -) - // Param is a single URL parameter, consisting of a key and a value. type Param struct { Key string @@ -85,16 +78,13 @@ func (n *node) addChild(child *node) { } func countParams(path string) uint16 { - var n uint16 - s := bytesconv.StringToBytes(path) - n += uint16(bytes.Count(s, strColon)) - n += uint16(bytes.Count(s, strStar)) - return n + colons := strings.Count(path, ":") + stars := strings.Count(path, "*") + return safeUint16(colons + stars) } func countSections(path string) uint16 { - s := bytesconv.StringToBytes(path) - return uint16(bytes.Count(s, strSlash)) + return safeUint16(strings.Count(path, "/")) } type nodeType uint8 @@ -681,12 +671,7 @@ walk: // Outer loop for walking the tree func (n *node) findCaseInsensitivePath(path string, fixTrailingSlash bool) ([]byte, bool) { const stackBufSize = 128 - // Use a static sized buffer on the stack in the common case. - // If the path is too long, allocate a buffer on the heap instead. - buf := make([]byte, 0, stackBufSize) - if length := len(path) + 1; length > stackBufSize { - buf = make([]byte, 0, length) - } + buf := make([]byte, 0, max(stackBufSize, len(path)+1)) ciPath := n.findCaseInsensitivePathRec( path, @@ -833,7 +818,72 @@ walk: // Outer loop for walking the tree return nil } - n = n.children[0] + // When wildChild is true, try static children first (via indices) + // before falling back to the wildcard child. This ensures that + // case-insensitive lookups prefer static routes over param routes + // (e.g., /PREFIX/XXX should resolve to /prefix/xxx, not match :id). + if len(n.indices) > 0 { + rb = shiftNRuneBytes(rb, npLen) + + if rb[0] != 0 { + idxc := rb[0] + for i, c := range []byte(n.indices) { + if c == idxc { + if out := n.children[i].findCaseInsensitivePathRec( + path, ciPath, rb, fixTrailingSlash, + ); out != nil { + return out + } + break + } + } + } else { + var rv rune + var off int + for max_ := min(npLen, 3); off < max_; off++ { + if i := npLen - off; utf8.RuneStart(oldPath[i]) { + rv, _ = utf8.DecodeRuneInString(oldPath[i:]) + break + } + } + + lo := unicode.ToLower(rv) + utf8.EncodeRune(rb[:], lo) + rb = shiftNRuneBytes(rb, off) + + idxc := rb[0] + for i, c := range []byte(n.indices) { + if c == idxc { + if out := n.children[i].findCaseInsensitivePathRec( + path, ciPath, rb, fixTrailingSlash, + ); out != nil { + return out + } + break + } + } + + if up := unicode.ToUpper(rv); up != lo { + utf8.EncodeRune(rb[:], up) + rb = shiftNRuneBytes(rb, off) + + idxc := rb[0] + for i, c := range []byte(n.indices) { + if c == idxc { + if out := n.children[i].findCaseInsensitivePathRec( + path, ciPath, rb, fixTrailingSlash, + ); out != nil { + return out + } + break + } + } + } + } + } + + // Fall back to wildcard child, which is always at the end of the array + n = n.children[len(n.children)-1] switch n.nType { case param: // Find param end (either '/' or path end) diff --git a/vendor/github.com/gin-gonic/gin/utils.go b/vendor/github.com/gin-gonic/gin/utils.go index 47106a7ae..2fecce464 100644 --- a/vendor/github.com/gin-gonic/gin/utils.go +++ b/vendor/github.com/gin-gonic/gin/utils.go @@ -6,6 +6,7 @@ package gin import ( "encoding/xml" + "math" "net/http" "os" "path" @@ -18,6 +19,12 @@ import ( // BindKey indicates a default bind key. const BindKey = "_gin-gonic/gin/bindkey" +// localhostIP indicates the default localhost IP address. +const localhostIP = "127.0.0.1" + +// localhostIPv6 indicates the default localhost IPv6 address. +const localhostIPv6 = "::1" + // Bind is a helper function for given interface object and returns a Gin middleware. func Bind(val any) HandlerFunc { value := reflect.ValueOf(val) @@ -155,10 +162,26 @@ func resolveAddress(addr []string) string { // https://stackoverflow.com/questions/53069040/checking-a-string-contains-only-ascii-characters func isASCII(s string) bool { - for i := 0; i < len(s); i++ { + for i := range len(s) { if s[i] > unicode.MaxASCII { return false } } return true } + +// safeInt8 converts int to int8 safely, capping at math.MaxInt8 +func safeInt8(n int) int8 { + if n > math.MaxInt8 { + return math.MaxInt8 + } + return int8(n) +} + +// safeUint16 converts int to uint16 safely, capping at math.MaxUint16 +func safeUint16(n int) uint16 { + if n > math.MaxUint16 { + return math.MaxUint16 + } + return uint16(n) +} diff --git a/vendor/github.com/gin-gonic/gin/version.go b/vendor/github.com/gin-gonic/gin/version.go index 8049058cb..5b54e68ad 100644 --- a/vendor/github.com/gin-gonic/gin/version.go +++ b/vendor/github.com/gin-gonic/gin/version.go @@ -5,4 +5,4 @@ package gin // Version is the current gin framework's version. -const Version = "v1.11.0" +const Version = "v1.12.0" diff --git a/vendor/go.mongodb.org/mongo-driver/v2/LICENSE b/vendor/go.mongodb.org/mongo-driver/v2/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/array_codec.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/array_codec.go new file mode 100644 index 000000000..4642fb6ea --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/array_codec.go @@ -0,0 +1,42 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "reflect" + + "go.mongodb.org/mongo-driver/v2/x/bsonx/bsoncore" +) + +// arrayCodec is the Codec used for bsoncore.Array values. +type arrayCodec struct{} + +// EncodeValue is the ValueEncoder for bsoncore.Array values. +func (ac *arrayCodec) EncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tCoreArray { + return ValueEncoderError{Name: "CoreArrayEncodeValue", Types: []reflect.Type{tCoreArray}, Received: val} + } + + arr := val.Interface().(bsoncore.Array) + return copyArrayFromBytes(vw, arr) +} + +// DecodeValue is the ValueDecoder for bsoncore.Array values. +func (ac *arrayCodec) DecodeValue(_ DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tCoreArray { + return ValueDecoderError{Name: "CoreArrayDecodeValue", Types: []reflect.Type{tCoreArray}, Received: val} + } + + if val.IsNil() { + val.Set(reflect.MakeSlice(val.Type(), 0, 0)) + } + + val.SetLen(0) + arr, err := appendArrayBytes(val.Interface().(bsoncore.Array), vr) + val.Set(reflect.ValueOf(arr)) + return err +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/bsoncodec.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/bsoncodec.go new file mode 100644 index 000000000..c0eeca24e --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/bsoncodec.go @@ -0,0 +1,203 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "fmt" + "reflect" + "strings" +) + +var emptyValue = reflect.Value{} + +// ValueEncoderError is an error returned from a ValueEncoder when the provided value can't be +// encoded by the ValueEncoder. +type ValueEncoderError struct { + Name string + Types []reflect.Type + Kinds []reflect.Kind + Received reflect.Value +} + +func (vee ValueEncoderError) Error() string { + typeKinds := make([]string, 0, len(vee.Types)+len(vee.Kinds)) + for _, t := range vee.Types { + typeKinds = append(typeKinds, t.String()) + } + for _, k := range vee.Kinds { + if k == reflect.Map { + typeKinds = append(typeKinds, "map[string]*") + continue + } + typeKinds = append(typeKinds, k.String()) + } + received := vee.Received.Kind().String() + if vee.Received.IsValid() { + received = vee.Received.Type().String() + } + return fmt.Sprintf("%s can only encode valid %s, but got %s", vee.Name, strings.Join(typeKinds, ", "), received) +} + +// ValueDecoderError is an error returned from a ValueDecoder when the provided value can't be +// decoded by the ValueDecoder. +type ValueDecoderError struct { + Name string + Types []reflect.Type + Kinds []reflect.Kind + Received reflect.Value +} + +func (vde ValueDecoderError) Error() string { + typeKinds := make([]string, 0, len(vde.Types)+len(vde.Kinds)) + for _, t := range vde.Types { + typeKinds = append(typeKinds, t.String()) + } + for _, k := range vde.Kinds { + if k == reflect.Map { + typeKinds = append(typeKinds, "map[string]*") + continue + } + typeKinds = append(typeKinds, k.String()) + } + received := vde.Received.Kind().String() + if vde.Received.IsValid() { + received = vde.Received.Type().String() + } + if !vde.Received.CanSet() { + received = "unsettable " + received + } + return fmt.Sprintf("%s can only decode valid and settable %s, but got %s", vde.Name, strings.Join(typeKinds, ", "), received) +} + +// EncodeContext is the contextual information required for a Codec to encode a +// value. +type EncodeContext struct { + *Registry + + // minSize causes the Encoder to marshal Go integer values (int, int8, int16, int32, int64, + // uint, uint8, uint16, uint32, or uint64) as the minimum BSON int size (either 32 or 64 bits) + // that can represent the integer value. + minSize bool + + errorOnInlineDuplicates bool + stringifyMapKeysWithFmt bool + nilMapAsEmpty bool + nilSliceAsEmpty bool + nilByteSliceAsEmpty bool + omitZeroStruct bool + omitEmpty bool + useJSONStructTags bool +} + +// DecodeContext is the contextual information required for a Codec to decode a +// value. +type DecodeContext struct { + *Registry + + // truncate, if true, instructs decoders to to truncate the fractional part of BSON "double" + // values when attempting to unmarshal them into a Go integer (int, int8, int16, int32, int64, + // uint, uint8, uint16, uint32, or uint64) struct field. The truncation logic does not apply to + // BSON "decimal128" values. + truncate bool + + // defaultDocumentType specifies the Go type to decode top-level and nested BSON documents into. In particular, the + // usage for this field is restricted to data typed as "any" or "map[string]any". If DocumentType is + // set to a type that a BSON document cannot be unmarshaled into (e.g. "string"), unmarshalling will result in an + // error. + defaultDocumentType reflect.Type + + binaryAsSlice bool + + // a false value results in a decoding error. + objectIDAsHexString bool + + useJSONStructTags bool + useLocalTimeZone bool + zeroMaps bool + zeroStructs bool +} + +// ValueEncoder is the interface implemented by types that can encode a provided Go type to BSON. +// The value to encode is provided as a reflect.Value and a bson.ValueWriter is used within the +// EncodeValue method to actually create the BSON representation. For convenience, ValueEncoderFunc +// is provided to allow use of a function with the correct signature as a ValueEncoder. An +// EncodeContext instance is provided to allow implementations to lookup further ValueEncoders and +// to provide configuration information. +type ValueEncoder interface { + EncodeValue(EncodeContext, ValueWriter, reflect.Value) error +} + +// ValueEncoderFunc is an adapter function that allows a function with the correct signature to be +// used as a ValueEncoder. +type ValueEncoderFunc func(EncodeContext, ValueWriter, reflect.Value) error + +// EncodeValue implements the ValueEncoder interface. +func (fn ValueEncoderFunc) EncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + return fn(ec, vw, val) +} + +// ValueDecoder is the interface implemented by types that can decode BSON to a provided Go type. +// Implementations should ensure that the value they receive is settable. Similar to ValueEncoderFunc, +// ValueDecoderFunc is provided to allow the use of a function with the correct signature as a +// ValueDecoder. A DecodeContext instance is provided and serves similar functionality to the +// EncodeContext. +type ValueDecoder interface { + DecodeValue(DecodeContext, ValueReader, reflect.Value) error +} + +// ValueDecoderFunc is an adapter function that allows a function with the correct signature to be +// used as a ValueDecoder. +type ValueDecoderFunc func(DecodeContext, ValueReader, reflect.Value) error + +// DecodeValue implements the ValueDecoder interface. +func (fn ValueDecoderFunc) DecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + return fn(dc, vr, val) +} + +// typeDecoder is the interface implemented by types that can handle the decoding of a value given its type. +type typeDecoder interface { + decodeType(DecodeContext, ValueReader, reflect.Type) (reflect.Value, error) +} + +// typeDecoderFunc is an adapter function that allows a function with the correct signature to be used as a typeDecoder. +type typeDecoderFunc func(DecodeContext, ValueReader, reflect.Type) (reflect.Value, error) + +func (fn typeDecoderFunc) decodeType(dc DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + return fn(dc, vr, t) +} + +// decodeAdapter allows two functions with the correct signatures to be used as both a ValueDecoder and typeDecoder. +type decodeAdapter struct { + ValueDecoderFunc + typeDecoderFunc +} + +var ( + _ ValueDecoder = decodeAdapter{} + _ typeDecoder = decodeAdapter{} +) + +func decodeTypeOrValueWithInfo(vd ValueDecoder, dc DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if td, _ := vd.(typeDecoder); td != nil { + val, err := td.decodeType(dc, vr, t) + if err == nil && val.Type() != t { + // This conversion step is necessary for slices and maps. If a user declares variables like: + // + // type myBool bool + // var m map[string]myBool + // + // and tries to decode BSON bytes into the map, the decoding will fail if this conversion is not present + // because we'll try to assign a value of type bool to one of type myBool. + val = val.Convert(t) + } + return val, err + } + + val := reflect.New(t).Elem() + err := vd.DecodeValue(dc, vr, val) + return val, err +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/buffered_byte_src.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/buffered_byte_src.go new file mode 100644 index 000000000..eb19e3cb3 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/buffered_byte_src.go @@ -0,0 +1,128 @@ +// Copyright (C) MongoDB, Inc. 2025-present. +// +// 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 + +package bson + +import ( + "bytes" + "io" +) + +// bufferedByteSrc implements the low-level byteSrc interface by reading +// directly from an in-memory byte slice. It provides efficient, zero-copy +// access for parsing BSON when the entire document is buffered in memory. +type bufferedByteSrc struct { + buf []byte // entire BSON document + offset int64 // Current read index into buf +} + +var _ byteSrc = (*bufferedByteSrc)(nil) + +// Read reads up to len(p) bytes from the in-memory buffer, advancing the offset +// by the number of bytes read. +func (b *bufferedByteSrc) readExact(p []byte) (int, error) { + if b.offset >= int64(len(b.buf)) { + return 0, io.EOF + } + n := copy(p, b.buf[b.offset:]) + b.offset += int64(n) + return n, nil +} + +// ReadByte returns the single byte at buf[offset] and advances offset by 1. +func (b *bufferedByteSrc) ReadByte() (byte, error) { + if b.offset >= int64(len(b.buf)) { + return 0, io.EOF + } + b.offset++ + return b.buf[b.offset-1], nil +} + +// peek returns buf[offset:offset+n] without advancing offset. +func (b *bufferedByteSrc) peek(n int) ([]byte, error) { + // Ensure we don't read past the end of the buffer. + if int64(n)+b.offset > int64(len(b.buf)) { + return b.buf[b.offset:], io.EOF + } + + // Return the next n bytes without advancing the offset + return b.buf[b.offset : b.offset+int64(n)], nil +} + +// discard advances offset by n bytes, returning the number of bytes discarded. +func (b *bufferedByteSrc) discard(n int) (int, error) { + // Ensure we don't read past the end of the buffer. + if int64(n)+b.offset > int64(len(b.buf)) { + // If we have exceeded the buffer length, discard only up to the end. + left := len(b.buf) - int(b.offset) + b.offset = int64(len(b.buf)) + + return left, io.EOF + } + + // Advance the read position + b.offset += int64(n) + return n, nil +} + +// readSlice scans buf[offset:] for the first occurrence of delim, returns +// buf[offset:idx+1], and advances offset past it; errors if delim not found. +func (b *bufferedByteSrc) readSlice(delim byte) ([]byte, error) { + // Ensure we don't read past the end of the buffer. + if b.offset >= int64(len(b.buf)) { + return nil, io.EOF + } + + // Look for the delimiter in the remaining bytes + rem := b.buf[b.offset:] + idx := bytes.IndexByte(rem, delim) + if idx < 0 { + return nil, io.EOF + } + + // Build the result slice up through the delimiter. + result := rem[:idx+1] + + // Advance the offset past the delimiter. + b.offset += int64(idx + 1) + + return result, nil +} + +// pos returns the current read position in the buffer. +func (b *bufferedByteSrc) pos() int64 { + return b.offset +} + +// regexLength will return the total byte length of a BSON regex value. +func (b *bufferedByteSrc) regexLength() (int32, error) { + rem := b.buf[b.offset:] + + // Find end of the first C-string (pattern). + i := bytes.IndexByte(rem, 0x00) + if i < 0 { + return 0, io.EOF + } + + // Find end of second C-string (options). + j := bytes.IndexByte(rem[i+1:], 0x00) + if j < 0 { + return 0, io.EOF + } + + // Total length = first C-string length (pattern) + second C-string length + // (options) + 2 null terminators + return int32(i + j + 2), nil +} + +func (*bufferedByteSrc) streamable() bool { + return false +} + +func (b *bufferedByteSrc) reset() { + b.buf = nil + b.offset = 0 +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/byte_slice_codec.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/byte_slice_codec.go new file mode 100644 index 000000000..bd44cf9a8 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/byte_slice_codec.go @@ -0,0 +1,97 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "fmt" + "reflect" +) + +// byteSliceCodec is the Codec used for []byte values. +type byteSliceCodec struct { + // encodeNilAsEmpty causes EncodeValue to marshal nil Go byte slices as empty BSON binary values + // instead of BSON null. + encodeNilAsEmpty bool +} + +// Assert that byteSliceCodec satisfies the typeDecoder interface, which allows it to be +// used by collection type decoders (e.g. map, slice, etc) to set individual values in a +// collection. +var _ typeDecoder = &byteSliceCodec{} + +// EncodeValue is the ValueEncoder for []byte. +func (bsc *byteSliceCodec) EncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tByteSlice { + return ValueEncoderError{Name: "ByteSliceEncodeValue", Types: []reflect.Type{tByteSlice}, Received: val} + } + if val.IsNil() && !bsc.encodeNilAsEmpty && !ec.nilByteSliceAsEmpty { + return vw.WriteNull() + } + return vw.WriteBinary(val.Interface().([]byte)) +} + +func (bsc *byteSliceCodec) decodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tByteSlice { + return emptyValue, ValueDecoderError{ + Name: "ByteSliceDecodeValue", + Types: []reflect.Type{tByteSlice}, + Received: reflect.Zero(t), + } + } + + var data []byte + var err error + switch vrType := vr.Type(); vrType { + case TypeString: + str, err := vr.ReadString() + if err != nil { + return emptyValue, err + } + data = []byte(str) + case TypeSymbol: + sym, err := vr.ReadSymbol() + if err != nil { + return emptyValue, err + } + data = []byte(sym) + case TypeBinary: + var subtype byte + data, subtype, err = vr.ReadBinary() + if err != nil { + return emptyValue, err + } + if subtype != TypeBinaryGeneric && subtype != TypeBinaryBinaryOld { + return emptyValue, decodeBinaryError{subtype: subtype, typeName: "[]byte"} + } + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a []byte", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(data), nil +} + +// DecodeValue is the ValueDecoder for []byte. +func (bsc *byteSliceCodec) DecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tByteSlice { + return ValueDecoderError{Name: "ByteSliceDecodeValue", Types: []reflect.Type{tByteSlice}, Received: val} + } + + elem, err := bsc.decodeType(dc, vr, tByteSlice) + if err != nil { + return err + } + + val.Set(elem) + return nil +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/codec_cache.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/codec_cache.go new file mode 100644 index 000000000..ee8275719 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/codec_cache.go @@ -0,0 +1,168 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "reflect" + "sync" + "sync/atomic" +) + +// Runtime check that the kind encoder and decoder caches can store any valid +// reflect.Kind constant. +func init() { + if s := reflect.Kind(len(kindEncoderCache{}.entries)).String(); s != "kind27" { + panic("The capacity of kindEncoderCache is too small.\n" + + "This is due to a new type being added to reflect.Kind.") + } +} + +// statically assert array size +var ( + _ = (kindEncoderCache{}).entries[reflect.UnsafePointer] + _ = (kindDecoderCache{}).entries[reflect.UnsafePointer] +) + +type typeEncoderCache struct { + cache sync.Map // map[reflect.Type]ValueEncoder +} + +func (c *typeEncoderCache) Store(rt reflect.Type, enc ValueEncoder) { + c.cache.Store(rt, enc) +} + +func (c *typeEncoderCache) Load(rt reflect.Type) (ValueEncoder, bool) { + if v, _ := c.cache.Load(rt); v != nil { + return v.(ValueEncoder), true + } + return nil, false +} + +func (c *typeEncoderCache) LoadOrStore(rt reflect.Type, enc ValueEncoder) ValueEncoder { + if v, loaded := c.cache.LoadOrStore(rt, enc); loaded { + enc = v.(ValueEncoder) + } + return enc +} + +func (c *typeEncoderCache) Clone() *typeEncoderCache { + cc := new(typeEncoderCache) + c.cache.Range(func(k, v any) bool { + if k != nil && v != nil { + cc.cache.Store(k, v) + } + return true + }) + return cc +} + +type typeDecoderCache struct { + cache sync.Map // map[reflect.Type]ValueDecoder +} + +func (c *typeDecoderCache) Store(rt reflect.Type, dec ValueDecoder) { + c.cache.Store(rt, dec) +} + +func (c *typeDecoderCache) Load(rt reflect.Type) (ValueDecoder, bool) { + if v, _ := c.cache.Load(rt); v != nil { + return v.(ValueDecoder), true + } + return nil, false +} + +func (c *typeDecoderCache) LoadOrStore(rt reflect.Type, dec ValueDecoder) ValueDecoder { + if v, loaded := c.cache.LoadOrStore(rt, dec); loaded { + dec = v.(ValueDecoder) + } + return dec +} + +func (c *typeDecoderCache) Clone() *typeDecoderCache { + cc := new(typeDecoderCache) + c.cache.Range(func(k, v any) bool { + if k != nil && v != nil { + cc.cache.Store(k, v) + } + return true + }) + return cc +} + +// atomic.Value requires that all calls to Store() have the same concrete type +// so we wrap the ValueEncoder with a kindEncoderCacheEntry to ensure the type +// is always the same (since different concrete types may implement the +// ValueEncoder interface). +type kindEncoderCacheEntry struct { + enc ValueEncoder +} + +type kindEncoderCache struct { + entries [reflect.UnsafePointer + 1]atomic.Value // *kindEncoderCacheEntry +} + +func (c *kindEncoderCache) Store(rt reflect.Kind, enc ValueEncoder) { + if enc != nil && rt < reflect.Kind(len(c.entries)) { + c.entries[rt].Store(&kindEncoderCacheEntry{enc: enc}) + } +} + +func (c *kindEncoderCache) Load(rt reflect.Kind) (ValueEncoder, bool) { + if rt < reflect.Kind(len(c.entries)) { + if ent, ok := c.entries[rt].Load().(*kindEncoderCacheEntry); ok { + return ent.enc, ent.enc != nil + } + } + return nil, false +} + +func (c *kindEncoderCache) Clone() *kindEncoderCache { + cc := new(kindEncoderCache) + for i, v := range c.entries { + if val := v.Load(); val != nil { + cc.entries[i].Store(val) + } + } + return cc +} + +// atomic.Value requires that all calls to Store() have the same concrete type +// so we wrap the ValueDecoder with a kindDecoderCacheEntry to ensure the type +// is always the same (since different concrete types may implement the +// ValueDecoder interface). +type kindDecoderCacheEntry struct { + dec ValueDecoder +} + +type kindDecoderCache struct { + entries [reflect.UnsafePointer + 1]atomic.Value // *kindDecoderCacheEntry +} + +func (c *kindDecoderCache) Store(rt reflect.Kind, dec ValueDecoder) { + if rt < reflect.Kind(len(c.entries)) { + c.entries[rt].Store(&kindDecoderCacheEntry{dec: dec}) + } +} + +func (c *kindDecoderCache) Load(rt reflect.Kind) (ValueDecoder, bool) { + if rt < reflect.Kind(len(c.entries)) { + if ent, ok := c.entries[rt].Load().(*kindDecoderCacheEntry); ok { + return ent.dec, ent.dec != nil + } + } + return nil, false +} + +func (c *kindDecoderCache) Clone() *kindDecoderCache { + cc := new(kindDecoderCache) + for i, v := range c.entries { + if val := v.Load(); val != nil { + cc.entries[i].Store(val) + } + } + return cc +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/cond_addr_codec.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/cond_addr_codec.go new file mode 100644 index 000000000..fed4d1f8d --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/cond_addr_codec.go @@ -0,0 +1,61 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "reflect" +) + +// condAddrEncoder is the encoder used when a pointer to the encoding value has an encoder. +type condAddrEncoder struct { + canAddrEnc ValueEncoder + elseEnc ValueEncoder +} + +var _ ValueEncoder = &condAddrEncoder{} + +// newCondAddrEncoder returns an condAddrEncoder. +func newCondAddrEncoder(canAddrEnc, elseEnc ValueEncoder) *condAddrEncoder { + encoder := condAddrEncoder{canAddrEnc: canAddrEnc, elseEnc: elseEnc} + return &encoder +} + +// EncodeValue is the ValueEncoderFunc for a value that may be addressable. +func (cae *condAddrEncoder) EncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + if val.CanAddr() { + return cae.canAddrEnc.EncodeValue(ec, vw, val) + } + if cae.elseEnc != nil { + return cae.elseEnc.EncodeValue(ec, vw, val) + } + return errNoEncoder{Type: val.Type()} +} + +// condAddrDecoder is the decoder used when a pointer to the value has a decoder. +type condAddrDecoder struct { + canAddrDec ValueDecoder + elseDec ValueDecoder +} + +var _ ValueDecoder = &condAddrDecoder{} + +// newCondAddrDecoder returns an CondAddrDecoder. +func newCondAddrDecoder(canAddrDec, elseDec ValueDecoder) *condAddrDecoder { + decoder := condAddrDecoder{canAddrDec: canAddrDec, elseDec: elseDec} + return &decoder +} + +// DecodeValue is the ValueDecoderFunc for a value that may be addressable. +func (cad *condAddrDecoder) DecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if val.CanAddr() { + return cad.canAddrDec.DecodeValue(dc, vr, val) + } + if cad.elseDec != nil { + return cad.elseDec.DecodeValue(dc, vr, val) + } + return errNoDecoder{Type: val.Type()} +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/copier.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/copier.go new file mode 100644 index 000000000..c9a37c756 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/copier.go @@ -0,0 +1,433 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "errors" + "fmt" + "io" + + "go.mongodb.org/mongo-driver/v2/x/bsonx/bsoncore" +) + +// copyDocument handles copying one document from the src to the dst. +func copyDocument(dst ValueWriter, src ValueReader) error { + dr, err := src.ReadDocument() + if err != nil { + return err + } + + dw, err := dst.WriteDocument() + if err != nil { + return err + } + + return copyDocumentCore(dw, dr) +} + +// copyArrayFromBytes copies the values from a BSON array represented as a +// []byte to a ValueWriter. +func copyArrayFromBytes(dst ValueWriter, src []byte) error { + aw, err := dst.WriteArray() + if err != nil { + return err + } + + err = copyBytesToArrayWriter(aw, src) + if err != nil { + return err + } + + return aw.WriteArrayEnd() +} + +// copyDocumentFromBytes copies the values from a BSON document represented as a +// []byte to a ValueWriter. +func copyDocumentFromBytes(dst ValueWriter, src []byte) error { + dw, err := dst.WriteDocument() + if err != nil { + return err + } + + err = copyBytesToDocumentWriter(dw, src) + if err != nil { + return err + } + + return dw.WriteDocumentEnd() +} + +type writeElementFn func(key string) (ValueWriter, error) + +// copyBytesToArrayWriter copies the values from a BSON Array represented as a []byte to an +// ArrayWriter. +func copyBytesToArrayWriter(dst ArrayWriter, src []byte) error { + wef := func(_ string) (ValueWriter, error) { + return dst.WriteArrayElement() + } + + return copyBytesToValueWriter(src, wef) +} + +// copyBytesToDocumentWriter copies the values from a BSON document represented as a []byte to a +// DocumentWriter. +func copyBytesToDocumentWriter(dst DocumentWriter, src []byte) error { + wef := func(key string) (ValueWriter, error) { + return dst.WriteDocumentElement(key) + } + + return copyBytesToValueWriter(src, wef) +} + +func copyBytesToValueWriter(src []byte, wef writeElementFn) error { + // TODO(skriptble): Create errors types here. Anything that is a tag should be a property. + length, rem, ok := bsoncore.ReadLength(src) + if !ok { + return fmt.Errorf("couldn't read length from src, not enough bytes. length=%d", len(src)) + } + if len(src) < int(length) { + return fmt.Errorf("length read exceeds number of bytes available. length=%d bytes=%d", len(src), length) + } + rem = rem[:length-4] + + var t bsoncore.Type + var key string + var val bsoncore.Value + for { + t, rem, ok = bsoncore.ReadType(rem) + if !ok { + return io.EOF + } + if t == bsoncore.Type(0) { + if len(rem) != 0 { + return fmt.Errorf("document end byte found before end of document. remaining bytes=%v", rem) + } + break + } + + key, rem, ok = bsoncore.ReadKey(rem) + if !ok { + return fmt.Errorf("invalid key found. remaining bytes=%v", rem) + } + + // write as either array element or document element using writeElementFn + vw, err := wef(key) + if err != nil { + return err + } + + val, rem, ok = bsoncore.ReadValue(rem, t) + if !ok { + return fmt.Errorf("not enough bytes available to read type. bytes=%d type=%s", len(rem), t) + } + err = copyValueFromBytes(vw, Type(t), val.Data) + if err != nil { + return err + } + } + return nil +} + +// copyDocumentToBytes copies an entire document from the ValueReader and +// returns it as bytes. +func copyDocumentToBytes(src ValueReader) ([]byte, error) { + return appendDocumentBytes(nil, src) +} + +// appendDocumentBytes functions the same as CopyDocumentToBytes, but will +// append the result to dst. +func appendDocumentBytes(dst []byte, src ValueReader) ([]byte, error) { + if br, ok := src.(bytesReader); ok { + _, dst, err := br.readValueBytes(dst) + return dst, err + } + + vw := vwPool.Get().(*valueWriter) + defer putValueWriter(vw) + + vw.reset(dst) + + err := copyDocument(vw, src) + dst = vw.buf + return dst, err +} + +// appendArrayBytes copies an array from the ValueReader to dst. +func appendArrayBytes(dst []byte, src ValueReader) ([]byte, error) { + if br, ok := src.(bytesReader); ok { + _, dst, err := br.readValueBytes(dst) + return dst, err + } + + vw := vwPool.Get().(*valueWriter) + defer putValueWriter(vw) + + vw.reset(dst) + + err := copyArray(vw, src) + dst = vw.buf + return dst, err +} + +// copyValueFromBytes will write the value represtend by t and src to dst. +func copyValueFromBytes(dst ValueWriter, t Type, src []byte) error { + if wvb, ok := dst.(bytesWriter); ok { + return wvb.writeValueBytes(t, src) + } + + vr := newBufferedDocumentReader(src) + vr.advanceFrame() + + vr.stack[vr.frame].mode = mElement + vr.stack[vr.frame].vType = t + + return copyValue(dst, vr) +} + +// copyValueToBytes copies a value from src and returns it as a Type and a +// []byte. +func copyValueToBytes(src ValueReader) (Type, []byte, error) { + if br, ok := src.(bytesReader); ok { + return br.readValueBytes(nil) + } + + vw := vwPool.Get().(*valueWriter) + defer putValueWriter(vw) + + vw.reset(nil) + vw.push(mElement) + + err := copyValue(vw, src) + if err != nil { + return 0, nil, err + } + + return Type(vw.buf[0]), vw.buf[2:], nil +} + +// copyValue will copy a single value from src to dst. +func copyValue(dst ValueWriter, src ValueReader) error { + var err error + switch src.Type() { + case TypeDouble: + var f64 float64 + f64, err = src.ReadDouble() + if err != nil { + break + } + err = dst.WriteDouble(f64) + case TypeString: + var str string + str, err = src.ReadString() + if err != nil { + return err + } + err = dst.WriteString(str) + case TypeEmbeddedDocument: + err = copyDocument(dst, src) + case TypeArray: + err = copyArray(dst, src) + case TypeBinary: + var data []byte + var subtype byte + data, subtype, err = src.ReadBinary() + if err != nil { + break + } + err = dst.WriteBinaryWithSubtype(data, subtype) + case TypeUndefined: + err = src.ReadUndefined() + if err != nil { + break + } + err = dst.WriteUndefined() + case TypeObjectID: + var oid ObjectID + oid, err = src.ReadObjectID() + if err != nil { + break + } + err = dst.WriteObjectID(oid) + case TypeBoolean: + var b bool + b, err = src.ReadBoolean() + if err != nil { + break + } + err = dst.WriteBoolean(b) + case TypeDateTime: + var dt int64 + dt, err = src.ReadDateTime() + if err != nil { + break + } + err = dst.WriteDateTime(dt) + case TypeNull: + err = src.ReadNull() + if err != nil { + break + } + err = dst.WriteNull() + case TypeRegex: + var pattern, options string + pattern, options, err = src.ReadRegex() + if err != nil { + break + } + err = dst.WriteRegex(pattern, options) + case TypeDBPointer: + var ns string + var pointer ObjectID + ns, pointer, err = src.ReadDBPointer() + if err != nil { + break + } + err = dst.WriteDBPointer(ns, pointer) + case TypeJavaScript: + var js string + js, err = src.ReadJavascript() + if err != nil { + break + } + err = dst.WriteJavascript(js) + case TypeSymbol: + var symbol string + symbol, err = src.ReadSymbol() + if err != nil { + break + } + err = dst.WriteSymbol(symbol) + case TypeCodeWithScope: + var code string + var srcScope DocumentReader + code, srcScope, err = src.ReadCodeWithScope() + if err != nil { + break + } + + var dstScope DocumentWriter + dstScope, err = dst.WriteCodeWithScope(code) + if err != nil { + break + } + err = copyDocumentCore(dstScope, srcScope) + case TypeInt32: + var i32 int32 + i32, err = src.ReadInt32() + if err != nil { + break + } + err = dst.WriteInt32(i32) + case TypeTimestamp: + var t, i uint32 + t, i, err = src.ReadTimestamp() + if err != nil { + break + } + err = dst.WriteTimestamp(t, i) + case TypeInt64: + var i64 int64 + i64, err = src.ReadInt64() + if err != nil { + break + } + err = dst.WriteInt64(i64) + case TypeDecimal128: + var d128 Decimal128 + d128, err = src.ReadDecimal128() + if err != nil { + break + } + err = dst.WriteDecimal128(d128) + case TypeMinKey: + err = src.ReadMinKey() + if err != nil { + break + } + err = dst.WriteMinKey() + case TypeMaxKey: + err = src.ReadMaxKey() + if err != nil { + break + } + err = dst.WriteMaxKey() + default: + err = fmt.Errorf("cannot copy unknown BSON type %s", src.Type()) + } + + return err +} + +func copyArray(dst ValueWriter, src ValueReader) error { + ar, err := src.ReadArray() + if err != nil { + return err + } + + aw, err := dst.WriteArray() + if err != nil { + return err + } + + for { + vr, err := ar.ReadValue() + if errors.Is(err, ErrEOA) { + break + } + if err != nil { + return err + } + + vw, err := aw.WriteArrayElement() + if err != nil { + return err + } + + err = copyValue(vw, vr) + if err != nil { + return err + } + } + + return aw.WriteArrayEnd() +} + +func copyDocumentCore(dw DocumentWriter, dr DocumentReader) error { + for { + key, vr, err := dr.ReadElement() + if errors.Is(err, ErrEOD) { + break + } + if err != nil { + return err + } + + vw, err := dw.WriteDocumentElement(key) + if err != nil { + return err + } + + err = copyValue(vw, vr) + if err != nil { + return err + } + } + + return dw.WriteDocumentEnd() +} + +// bytesReader is the interface used to read BSON bytes from a valueReader. +// +// The bytes of the value will be appended to dst. +type bytesReader interface { + readValueBytes(dst []byte) (Type, []byte, error) +} + +// bytesWriter is the interface used to write BSON bytes to a valueWriter. +type bytesWriter interface { + writeValueBytes(t Type, b []byte) error +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/decimal.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/decimal.go new file mode 100644 index 000000000..f75d70cc3 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/decimal.go @@ -0,0 +1,341 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 +// +// Based on gopkg.in/mgo.v2/bson by Gustavo Niemeyer +// See THIRD-PARTY-NOTICES for original license terms. + +package bson + +import ( + "encoding/json" + "errors" + "fmt" + "math/big" + "regexp" + "strconv" + "strings" + + "go.mongodb.org/mongo-driver/v2/internal/decimal128" +) + +// These constants are the maximum and minimum values for the exponent field in a decimal128 value. +const ( + MaxDecimal128Exp = 6111 + MinDecimal128Exp = -6176 +) + +// These errors are returned when an invalid value is parsed as a big.Int. +var ( + ErrParseNaN = errors.New("cannot parse NaN as a *big.Int") + ErrParseInf = errors.New("cannot parse Infinity as a *big.Int") + ErrParseNegInf = errors.New("cannot parse -Infinity as a *big.Int") +) + +// Decimal128 holds decimal128 BSON values. +type Decimal128 struct { + h, l uint64 +} + +// NewDecimal128 creates a Decimal128 using the provide high and low uint64s. +func NewDecimal128(h, l uint64) Decimal128 { + return Decimal128{h: h, l: l} +} + +// GetBytes returns the underlying bytes of the BSON decimal value as two uint64 values. The first +// contains the most first 8 bytes of the value and the second contains the latter. +func (d Decimal128) GetBytes() (uint64, uint64) { + return d.h, d.l +} + +// String returns a string representation of the decimal value. +func (d Decimal128) String() string { + return decimal128.String(d.h, d.l) +} + +// BigInt returns significand as big.Int and exponent, bi * 10 ^ exp. +func (d Decimal128) BigInt() (*big.Int, int, error) { + high, low := d.GetBytes() + posSign := high>>63&1 == 0 // positive sign + + switch high >> 58 & (1<<5 - 1) { + case 0x1F: + return nil, 0, ErrParseNaN + case 0x1E: + if posSign { + return nil, 0, ErrParseInf + } + return nil, 0, ErrParseNegInf + } + + var exp int + if high>>61&3 == 3 { + // Bits: 1*sign 2*ignored 14*exponent 111*significand. + // Implicit 0b100 prefix in significand. + exp = int(high >> 47 & (1<<14 - 1)) + // Spec says all of these values are out of range. + high, low = 0, 0 + } else { + // Bits: 1*sign 14*exponent 113*significand + exp = int(high >> 49 & (1<<14 - 1)) + high &= (1<<49 - 1) + } + exp += MinDecimal128Exp + + // Would be handled by the logic below, but that's trivial and common. + if high == 0 && low == 0 && exp == 0 { + return new(big.Int), 0, nil + } + + bi := big.NewInt(0) + const host32bit = ^uint(0)>>32 == 0 + if host32bit { + bi.SetBits([]big.Word{big.Word(low), big.Word(low >> 32), big.Word(high), big.Word(high >> 32)}) + } else { + bi.SetBits([]big.Word{big.Word(low), big.Word(high)}) + } + + if !posSign { + return bi.Neg(bi), exp, nil + } + return bi, exp, nil +} + +// IsNaN returns whether d is NaN. +func (d Decimal128) IsNaN() bool { + return d.h>>58&(1<<5-1) == 0x1F +} + +// IsInf returns: +// +// +1 d == Infinity +// 0 other case +// -1 d == -Infinity +func (d Decimal128) IsInf() int { + if d.h>>58&(1<<5-1) != 0x1E { + return 0 + } + + if d.h>>63&1 == 0 { + return 1 + } + return -1 +} + +// IsZero returns true if d is the empty Decimal128. +func (d Decimal128) IsZero() bool { + return d.h == 0 && d.l == 0 +} + +// MarshalJSON returns Decimal128 as a string. +func (d Decimal128) MarshalJSON() ([]byte, error) { + return json.Marshal(d.String()) +} + +// UnmarshalJSON creates a Decimal128 from a JSON string, an extended JSON $numberDecimal value, or the string +// "null". If b is a JSON string or extended JSON value, d will have the value of that string, and if b is "null", d will +// be unchanged. +func (d *Decimal128) UnmarshalJSON(b []byte) error { + // Ignore "null" to keep parity with the standard library. Decoding a JSON null into a non-pointer Decimal128 field + // will leave the field unchanged. For pointer values, encoding/json will set the pointer to nil and will not + // enter the UnmarshalJSON hook. + if string(b) == "null" { + return nil + } + + var res any + err := json.Unmarshal(b, &res) + if err != nil { + return err + } + str, ok := res.(string) + + // Extended JSON + if !ok { + m, ok := res.(map[string]any) + if !ok { + return errors.New("not an extended JSON Decimal128: expected document") + } + d128, ok := m["$numberDecimal"] + if !ok { + return errors.New("not an extended JSON Decimal128: expected key $numberDecimal") + } + str, ok = d128.(string) + if !ok { + return errors.New("not an extended JSON Decimal128: expected decimal to be string") + } + } + + *d, err = ParseDecimal128(str) + return err +} + +var ( + dNaN = Decimal128{0x1F << 58, 0} + dPosInf = Decimal128{0x1E << 58, 0} + dNegInf = Decimal128{0x3E << 58, 0} +) + +func dErr(s string) (Decimal128, error) { + return dNaN, fmt.Errorf("cannot parse %q as a decimal128", s) +} + +// match scientific notation number, example -10.15e-18 +var normalNumber = regexp.MustCompile(`^(?P[-+]?\d*)?(?:\.(?P\d*))?(?:[Ee](?P[-+]?\d+))?$`) + +// ParseDecimal128 takes the given string and attempts to parse it into a valid +// Decimal128 value. +func ParseDecimal128(s string) (Decimal128, error) { + if s == "" { + return dErr(s) + } + + matches := normalNumber.FindStringSubmatch(s) + if len(matches) == 0 { + orig := s + neg := s[0] == '-' + if neg || s[0] == '+' { + s = s[1:] + } + + if s == "NaN" || s == "nan" || strings.EqualFold(s, "nan") { + return dNaN, nil + } + if s == "Inf" || s == "inf" || strings.EqualFold(s, "inf") || strings.EqualFold(s, "infinity") { + if neg { + return dNegInf, nil + } + return dPosInf, nil + } + return dErr(orig) + } + + intPart := matches[1] + decPart := matches[2] + expPart := matches[3] + + var err error + exp := 0 + if expPart != "" { + exp, err = strconv.Atoi(expPart) + if err != nil { + return dErr(s) + } + } + if decPart != "" { + exp -= len(decPart) + } + + if len(strings.Trim(intPart+decPart, "-0")) > 35 { + return dErr(s) + } + + // Parse the significand (i.e. the non-exponent part) as a big.Int. + bi, ok := new(big.Int).SetString(intPart+decPart, 10) + if !ok { + return dErr(s) + } + + d, ok := ParseDecimal128FromBigInt(bi, exp) + if !ok { + return dErr(s) + } + + if bi.Sign() == 0 && s[0] == '-' { + d.h |= 1 << 63 + } + + return d, nil +} + +var ( + ten = big.NewInt(10) + zero = new(big.Int) + + maxS, _ = new(big.Int).SetString("9999999999999999999999999999999999", 10) +) + +// ParseDecimal128FromBigInt attempts to parse the given significand and exponent into a valid Decimal128 value. +func ParseDecimal128FromBigInt(bi *big.Int, exp int) (Decimal128, bool) { + // copy + bi = new(big.Int).Set(bi) + + q := new(big.Int) + r := new(big.Int) + + // If the significand is zero, the logical value will always be zero, independent of the + // exponent. However, the loops for handling out-of-range exponent values below may be extremely + // slow for zero values because the significand never changes. Limit the exponent value to the + // supported range here to prevent entering the loops below. + if bi.Cmp(zero) == 0 { + if exp > MaxDecimal128Exp { + exp = MaxDecimal128Exp + } + if exp < MinDecimal128Exp { + exp = MinDecimal128Exp + } + } + + for bigIntCmpAbs(bi, maxS) == 1 { + bi, _ = q.QuoRem(bi, ten, r) + if r.Cmp(zero) != 0 { + return Decimal128{}, false + } + exp++ + if exp > MaxDecimal128Exp { + return Decimal128{}, false + } + } + + for exp < MinDecimal128Exp { + // Subnormal. + bi, _ = q.QuoRem(bi, ten, r) + if r.Cmp(zero) != 0 { + return Decimal128{}, false + } + exp++ + } + for exp > MaxDecimal128Exp { + // Clamped. + bi.Mul(bi, ten) + if bigIntCmpAbs(bi, maxS) == 1 { + return Decimal128{}, false + } + exp-- + } + + b := bi.Bytes() + var h, l uint64 + for i := 0; i < len(b); i++ { + if i < len(b)-8 { + h = h<<8 | uint64(b[i]) + continue + } + l = l<<8 | uint64(b[i]) + } + + h |= uint64(exp-MinDecimal128Exp) & uint64(1<<14-1) << 49 + if bi.Sign() == -1 { + h |= 1 << 63 + } + + return Decimal128{h: h, l: l}, true +} + +// bigIntCmpAbs computes big.Int.Cmp(absoluteValue(x), absoluteValue(y)). +func bigIntCmpAbs(x, y *big.Int) int { + xAbs := bigIntAbsValue(x) + yAbs := bigIntAbsValue(y) + return xAbs.Cmp(yAbs) +} + +// bigIntAbsValue returns a big.Int containing the absolute value of b. +// If b is already a non-negative number, it is returned without any changes or copies. +func bigIntAbsValue(b *big.Int) *big.Int { + if b.Sign() >= 0 { + return b // already positive + } + return new(big.Int).Abs(b) +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/decoder.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/decoder.go new file mode 100644 index 000000000..6e849a88e --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/decoder.go @@ -0,0 +1,143 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "errors" + "fmt" + "reflect" + "sync" +) + +// ErrDecodeToNil is the error returned when trying to decode to a nil value +var ErrDecodeToNil = errors.New("cannot Decode to nil value") + +// This pool is used to keep the allocations of Decoders down. This is only used for the Marshal* +// methods and is not consumable from outside of this package. The Decoders retrieved from this pool +// must have both Reset and SetRegistry called on them. +var decPool = sync.Pool{ + New: func() any { + return new(Decoder) + }, +} + +// A Decoder reads and decodes BSON documents from a stream. It reads from a ValueReader as +// the source of BSON data. +type Decoder struct { + dc DecodeContext + vr ValueReader +} + +// NewDecoder returns a new decoder that reads from vr. +func NewDecoder(vr ValueReader) *Decoder { + return &Decoder{ + dc: DecodeContext{Registry: defaultRegistry}, + vr: vr, + } +} + +// Decode reads the next BSON document from the stream and decodes it into the +// value pointed to by val. +// +// See [Unmarshal] for details about BSON unmarshaling behavior. +func (d *Decoder) Decode(val any) error { + if unmarshaler, ok := val.(Unmarshaler); ok { + // TODO(skriptble): Reuse a []byte here and use the AppendDocumentBytes method. + buf, err := copyDocumentToBytes(d.vr) + if err != nil { + return err + } + return unmarshaler.UnmarshalBSON(buf) + } + + rval := reflect.ValueOf(val) + switch rval.Kind() { + case reflect.Ptr: + if rval.IsNil() { + return ErrDecodeToNil + } + rval = rval.Elem() + case reflect.Map: + if rval.IsNil() { + return ErrDecodeToNil + } + default: + return fmt.Errorf("argument to Decode must be a pointer or a map, but got %v", rval) + } + decoder, err := d.dc.LookupDecoder(rval.Type()) + if err != nil { + return err + } + + return decoder.DecodeValue(d.dc, d.vr, rval) +} + +// Reset will reset the state of the decoder, using the same *DecodeContext used in +// the original construction but using vr for reading. +func (d *Decoder) Reset(vr ValueReader) { + d.vr = vr +} + +// SetRegistry replaces the current registry of the decoder with r. +func (d *Decoder) SetRegistry(r *Registry) { + d.dc.Registry = r +} + +// DefaultDocumentM causes the Decoder to always unmarshal documents into the bson.M type. This +// behavior is restricted to data typed as "any" or "map[string]any". +func (d *Decoder) DefaultDocumentM() { + d.dc.defaultDocumentType = reflect.TypeOf(M{}) +} + +// DefaultDocumentMap causes the Decoder to always unmarshal documents into the +// map[string]any type. This behavior is restricted to data typed as "any" or +// "map[string]any". +func (d *Decoder) DefaultDocumentMap() { + d.dc.defaultDocumentType = reflect.TypeOf(map[string]any{}) +} + +// AllowTruncatingDoubles causes the Decoder to truncate the fractional part of BSON "double" values +// when attempting to unmarshal them into a Go integer (int, int8, int16, int32, or int64) struct +// field. The truncation logic does not apply to BSON "decimal128" values. +func (d *Decoder) AllowTruncatingDoubles() { + d.dc.truncate = true +} + +// BinaryAsSlice causes the Decoder to unmarshal BSON binary field values that are the "Generic" or +// "Old" BSON binary subtype as a Go byte slice instead of a bson.Binary. +func (d *Decoder) BinaryAsSlice() { + d.dc.binaryAsSlice = true +} + +// ObjectIDAsHexString causes the Decoder to decode object IDs to their hex representation. +func (d *Decoder) ObjectIDAsHexString() { + d.dc.objectIDAsHexString = true +} + +// UseJSONStructTags causes the Decoder to fall back to using the "json" struct tag if a "bson" +// struct tag is not specified. +func (d *Decoder) UseJSONStructTags() { + d.dc.useJSONStructTags = true +} + +// UseLocalTimeZone causes the Decoder to unmarshal time.Time values in the local timezone instead +// of the UTC timezone. +func (d *Decoder) UseLocalTimeZone() { + d.dc.useLocalTimeZone = true +} + +// ZeroMaps causes the Decoder to delete any existing values from Go maps in the destination value +// passed to Decode before unmarshaling BSON documents into them. +func (d *Decoder) ZeroMaps() { + d.dc.zeroMaps = true +} + +// ZeroStructs causes the Decoder to delete any existing values from Go structs in the destination +// value passed to Decode before unmarshaling BSON documents into them. +func (d *Decoder) ZeroStructs() { + d.dc.zeroStructs = true +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/default_value_decoders.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/default_value_decoders.go new file mode 100644 index 000000000..8ce5954de --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/default_value_decoders.go @@ -0,0 +1,1518 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "encoding/json" + "errors" + "fmt" + "math" + "net/url" + "reflect" + "strconv" + + "go.mongodb.org/mongo-driver/v2/x/bsonx/bsoncore" +) + +var errCannotTruncate = errors.New("float64 can only be truncated to a lower precision type when truncation is enabled") + +type decodeBinaryError struct { + subtype byte + typeName string +} + +func (d decodeBinaryError) Error() string { + return fmt.Sprintf("only binary values with subtype 0x00 or 0x02 can be decoded into %s, but got subtype %v", d.typeName, d.subtype) +} + +// registerDefaultDecoders will register the decoder methods attached to DefaultValueDecoders with +// the provided RegistryBuilder. +// +// There is no support for decoding map[string]any because there is no decoder for +// any, so users must either register this decoder themselves or use the +// EmptyInterfaceDecoder available in the bson package. +func registerDefaultDecoders(reg *Registry) { + intDecoder := decodeAdapter{intDecodeValue, intDecodeType} + floatDecoder := decodeAdapter{floatDecodeValue, floatDecodeType} + uintCodec := &uintCodec{} + + reg.RegisterTypeDecoder(tD, ValueDecoderFunc(dDecodeValue)) + reg.RegisterTypeDecoder(tBinary, decodeAdapter{binaryDecodeValue, binaryDecodeType}) + reg.RegisterTypeDecoder(tVector, decodeAdapter{vectorDecodeValue, vectorDecodeType}) + reg.RegisterTypeDecoder(tUndefined, decodeAdapter{undefinedDecodeValue, undefinedDecodeType}) + reg.RegisterTypeDecoder(tDateTime, decodeAdapter{dateTimeDecodeValue, dateTimeDecodeType}) + reg.RegisterTypeDecoder(tNull, decodeAdapter{nullDecodeValue, nullDecodeType}) + reg.RegisterTypeDecoder(tRegex, decodeAdapter{regexDecodeValue, regexDecodeType}) + reg.RegisterTypeDecoder(tDBPointer, decodeAdapter{dbPointerDecodeValue, dbPointerDecodeType}) + reg.RegisterTypeDecoder(tTimestamp, decodeAdapter{timestampDecodeValue, timestampDecodeType}) + reg.RegisterTypeDecoder(tMinKey, decodeAdapter{minKeyDecodeValue, minKeyDecodeType}) + reg.RegisterTypeDecoder(tMaxKey, decodeAdapter{maxKeyDecodeValue, maxKeyDecodeType}) + reg.RegisterTypeDecoder(tJavaScript, decodeAdapter{javaScriptDecodeValue, javaScriptDecodeType}) + reg.RegisterTypeDecoder(tSymbol, decodeAdapter{symbolDecodeValue, symbolDecodeType}) + reg.RegisterTypeDecoder(tByteSlice, &byteSliceCodec{}) + reg.RegisterTypeDecoder(tTime, &timeCodec{}) + reg.RegisterTypeDecoder(tEmpty, &emptyInterfaceCodec{}) + reg.RegisterTypeDecoder(tCoreArray, &arrayCodec{}) + reg.RegisterTypeDecoder(tOID, decodeAdapter{objectIDDecodeValue, objectIDDecodeType}) + reg.RegisterTypeDecoder(tDecimal, decodeAdapter{decimal128DecodeValue, decimal128DecodeType}) + reg.RegisterTypeDecoder(tJSONNumber, decodeAdapter{jsonNumberDecodeValue, jsonNumberDecodeType}) + reg.RegisterTypeDecoder(tURL, decodeAdapter{urlDecodeValue, urlDecodeType}) + reg.RegisterTypeDecoder(tCoreDocument, ValueDecoderFunc(coreDocumentDecodeValue)) + reg.RegisterTypeDecoder(tCodeWithScope, decodeAdapter{codeWithScopeDecodeValue, codeWithScopeDecodeType}) + reg.RegisterKindDecoder(reflect.Bool, decodeAdapter{booleanDecodeValue, booleanDecodeType}) + reg.RegisterKindDecoder(reflect.Int, intDecoder) + reg.RegisterKindDecoder(reflect.Int8, intDecoder) + reg.RegisterKindDecoder(reflect.Int16, intDecoder) + reg.RegisterKindDecoder(reflect.Int32, intDecoder) + reg.RegisterKindDecoder(reflect.Int64, intDecoder) + reg.RegisterKindDecoder(reflect.Uint, uintCodec) + reg.RegisterKindDecoder(reflect.Uint8, uintCodec) + reg.RegisterKindDecoder(reflect.Uint16, uintCodec) + reg.RegisterKindDecoder(reflect.Uint32, uintCodec) + reg.RegisterKindDecoder(reflect.Uint64, uintCodec) + reg.RegisterKindDecoder(reflect.Float32, floatDecoder) + reg.RegisterKindDecoder(reflect.Float64, floatDecoder) + reg.RegisterKindDecoder(reflect.Array, ValueDecoderFunc(arrayDecodeValue)) + reg.RegisterKindDecoder(reflect.Map, &mapCodec{}) + reg.RegisterKindDecoder(reflect.Slice, &sliceCodec{}) + reg.RegisterKindDecoder(reflect.String, &stringCodec{}) + reg.RegisterKindDecoder(reflect.Struct, newStructCodec(nil)) + reg.RegisterKindDecoder(reflect.Ptr, &pointerCodec{}) + reg.RegisterTypeMapEntry(TypeDouble, tFloat64) + reg.RegisterTypeMapEntry(TypeString, tString) + reg.RegisterTypeMapEntry(TypeArray, tA) + reg.RegisterTypeMapEntry(TypeBinary, tBinary) + reg.RegisterTypeMapEntry(TypeUndefined, tUndefined) + reg.RegisterTypeMapEntry(TypeObjectID, tOID) + reg.RegisterTypeMapEntry(TypeBoolean, tBool) + reg.RegisterTypeMapEntry(TypeDateTime, tDateTime) + reg.RegisterTypeMapEntry(TypeRegex, tRegex) + reg.RegisterTypeMapEntry(TypeDBPointer, tDBPointer) + reg.RegisterTypeMapEntry(TypeJavaScript, tJavaScript) + reg.RegisterTypeMapEntry(TypeSymbol, tSymbol) + reg.RegisterTypeMapEntry(TypeCodeWithScope, tCodeWithScope) + reg.RegisterTypeMapEntry(TypeInt32, tInt32) + reg.RegisterTypeMapEntry(TypeInt64, tInt64) + reg.RegisterTypeMapEntry(TypeTimestamp, tTimestamp) + reg.RegisterTypeMapEntry(TypeDecimal128, tDecimal) + reg.RegisterTypeMapEntry(TypeMinKey, tMinKey) + reg.RegisterTypeMapEntry(TypeMaxKey, tMaxKey) + reg.RegisterTypeMapEntry(Type(0), tD) + reg.RegisterTypeMapEntry(TypeEmbeddedDocument, tD) + reg.RegisterInterfaceDecoder(tValueUnmarshaler, ValueDecoderFunc(valueUnmarshalerDecodeValue)) + reg.RegisterInterfaceDecoder(tUnmarshaler, ValueDecoderFunc(unmarshalerDecodeValue)) +} + +// dDecodeValue is the ValueDecoderFunc for D instances. +func dDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.IsValid() || !val.CanSet() || val.Type() != tD { + return ValueDecoderError{Name: "DDecodeValue", Kinds: []reflect.Kind{reflect.Slice}, Received: val} + } + + switch vrType := vr.Type(); vrType { + case Type(0), TypeEmbeddedDocument: + break + case TypeNull: + val.Set(reflect.Zero(val.Type())) + return vr.ReadNull() + default: + return fmt.Errorf("cannot decode %v into a D", vrType) + } + + dr, err := vr.ReadDocument() + if err != nil { + return err + } + + decoder, err := dc.LookupDecoder(tEmpty) + if err != nil { + return err + } + + // Use the elements in the provided value if it's non nil. Otherwise, allocate a new D instance. + var elems D + if !val.IsNil() { + val.SetLen(0) + elems = val.Interface().(D) + } else { + elems = make(D, 0) + } + + for { + key, elemVr, err := dr.ReadElement() + if errors.Is(err, ErrEOD) { + break + } else if err != nil { + return err + } + + var v any + err = decoder.DecodeValue(dc, elemVr, reflect.ValueOf(&v).Elem()) + if err != nil { + return err + } + + elems = append(elems, E{Key: key, Value: v}) + } + + val.Set(reflect.ValueOf(elems)) + return nil +} + +func booleanDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t.Kind() != reflect.Bool { + return emptyValue, ValueDecoderError{ + Name: "BooleanDecodeValue", + Kinds: []reflect.Kind{reflect.Bool}, + Received: reflect.Zero(t), + } + } + + var b bool + var err error + switch vrType := vr.Type(); vrType { + case TypeInt32: + i32, err := vr.ReadInt32() + if err != nil { + return emptyValue, err + } + b = (i32 != 0) + case TypeInt64: + i64, err := vr.ReadInt64() + if err != nil { + return emptyValue, err + } + b = (i64 != 0) + case TypeDouble: + f64, err := vr.ReadDouble() + if err != nil { + return emptyValue, err + } + b = (f64 != 0) + case TypeBoolean: + b, err = vr.ReadBoolean() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a boolean", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(b), nil +} + +// booleanDecodeValue is the ValueDecoderFunc for bool types. +func booleanDecodeValue(dctx DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.IsValid() || !val.CanSet() || val.Kind() != reflect.Bool { + return ValueDecoderError{Name: "BooleanDecodeValue", Kinds: []reflect.Kind{reflect.Bool}, Received: val} + } + + elem, err := booleanDecodeType(dctx, vr, val.Type()) + if err != nil { + return err + } + + val.SetBool(elem.Bool()) + return nil +} + +func intDecodeType(dc DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + var i64 int64 + var err error + switch vrType := vr.Type(); vrType { + case TypeInt32: + i32, err := vr.ReadInt32() + if err != nil { + return emptyValue, err + } + i64 = int64(i32) + case TypeInt64: + i64, err = vr.ReadInt64() + if err != nil { + return emptyValue, err + } + case TypeDouble: + f64, err := vr.ReadDouble() + if err != nil { + return emptyValue, err + } + if !dc.truncate && math.Floor(f64) != f64 { + return emptyValue, errCannotTruncate + } + if f64 > float64(math.MaxInt64) { + return emptyValue, fmt.Errorf("%g overflows int64", f64) + } + i64 = int64(f64) + case TypeBoolean: + b, err := vr.ReadBoolean() + if err != nil { + return emptyValue, err + } + if b { + i64 = 1 + } + case TypeNull: + if err = vr.ReadNull(); err != nil { + return emptyValue, err + } + case TypeUndefined: + if err = vr.ReadUndefined(); err != nil { + return emptyValue, err + } + default: + return emptyValue, fmt.Errorf("cannot decode %v into an integer type", vrType) + } + + switch t.Kind() { + case reflect.Int8: + if i64 < math.MinInt8 || i64 > math.MaxInt8 { + return emptyValue, fmt.Errorf("%d overflows int8", i64) + } + + return reflect.ValueOf(int8(i64)), nil + case reflect.Int16: + if i64 < math.MinInt16 || i64 > math.MaxInt16 { + return emptyValue, fmt.Errorf("%d overflows int16", i64) + } + + return reflect.ValueOf(int16(i64)), nil + case reflect.Int32: + if i64 < math.MinInt32 || i64 > math.MaxInt32 { + return emptyValue, fmt.Errorf("%d overflows int32", i64) + } + + return reflect.ValueOf(int32(i64)), nil + case reflect.Int64: + return reflect.ValueOf(i64), nil + case reflect.Int: + if i64 > math.MaxInt { // Can we fit this inside of an int + return emptyValue, fmt.Errorf("%d overflows int", i64) + } + + return reflect.ValueOf(int(i64)), nil + default: + return emptyValue, ValueDecoderError{ + Name: "IntDecodeValue", + Kinds: []reflect.Kind{reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int}, + Received: reflect.Zero(t), + } + } +} + +// intDecodeValue is the ValueDecoderFunc for int types. +func intDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() { + return ValueDecoderError{ + Name: "IntDecodeValue", + Kinds: []reflect.Kind{reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int}, + Received: val, + } + } + + elem, err := intDecodeType(dc, vr, val.Type()) + if err != nil { + return err + } + + val.SetInt(elem.Int()) + return nil +} + +func floatDecodeType(dc DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + var f float64 + var err error + switch vrType := vr.Type(); vrType { + case TypeInt32: + i32, err := vr.ReadInt32() + if err != nil { + return emptyValue, err + } + f = float64(i32) + case TypeInt64: + i64, err := vr.ReadInt64() + if err != nil { + return emptyValue, err + } + f = float64(i64) + case TypeDouble: + f, err = vr.ReadDouble() + if err != nil { + return emptyValue, err + } + case TypeBoolean: + b, err := vr.ReadBoolean() + if err != nil { + return emptyValue, err + } + if b { + f = 1 + } + case TypeNull: + if err = vr.ReadNull(); err != nil { + return emptyValue, err + } + case TypeUndefined: + if err = vr.ReadUndefined(); err != nil { + return emptyValue, err + } + default: + return emptyValue, fmt.Errorf("cannot decode %v into a float32 or float64 type", vrType) + } + + switch t.Kind() { + case reflect.Float32: + if !dc.truncate && float64(float32(f)) != f { + return emptyValue, errCannotTruncate + } + + return reflect.ValueOf(float32(f)), nil + case reflect.Float64: + return reflect.ValueOf(f), nil + default: + return emptyValue, ValueDecoderError{ + Name: "FloatDecodeValue", + Kinds: []reflect.Kind{reflect.Float32, reflect.Float64}, + Received: reflect.Zero(t), + } + } +} + +// floatDecodeValue is the ValueDecoderFunc for float types. +func floatDecodeValue(ec DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() { + return ValueDecoderError{ + Name: "FloatDecodeValue", + Kinds: []reflect.Kind{reflect.Float32, reflect.Float64}, + Received: val, + } + } + + elem, err := floatDecodeType(ec, vr, val.Type()) + if err != nil { + return err + } + + val.SetFloat(elem.Float()) + return nil +} + +func javaScriptDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tJavaScript { + return emptyValue, ValueDecoderError{ + Name: "JavaScriptDecodeValue", + Types: []reflect.Type{tJavaScript}, + Received: reflect.Zero(t), + } + } + + var js string + var err error + switch vrType := vr.Type(); vrType { + case TypeJavaScript: + js, err = vr.ReadJavascript() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a JavaScript", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(JavaScript(js)), nil +} + +// javaScriptDecodeValue is the ValueDecoderFunc for the JavaScript type. +func javaScriptDecodeValue(dctx DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tJavaScript { + return ValueDecoderError{Name: "JavaScriptDecodeValue", Types: []reflect.Type{tJavaScript}, Received: val} + } + + elem, err := javaScriptDecodeType(dctx, vr, tJavaScript) + if err != nil { + return err + } + + val.SetString(elem.String()) + return nil +} + +func symbolDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tSymbol { + return emptyValue, ValueDecoderError{ + Name: "SymbolDecodeValue", + Types: []reflect.Type{tSymbol}, + Received: reflect.Zero(t), + } + } + + var symbol string + var err error + switch vrType := vr.Type(); vrType { + case TypeString: + symbol, err = vr.ReadString() + case TypeSymbol: + symbol, err = vr.ReadSymbol() + case TypeBinary: + data, subtype, err := vr.ReadBinary() + if err != nil { + return emptyValue, err + } + + if subtype != TypeBinaryGeneric && subtype != TypeBinaryBinaryOld { + return emptyValue, decodeBinaryError{subtype: subtype, typeName: "Symbol"} + } + symbol = string(data) + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a Symbol", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(Symbol(symbol)), nil +} + +// symbolDecodeValue is the ValueDecoderFunc for the Symbol type. +func symbolDecodeValue(dctx DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tSymbol { + return ValueDecoderError{Name: "SymbolDecodeValue", Types: []reflect.Type{tSymbol}, Received: val} + } + + elem, err := symbolDecodeType(dctx, vr, tSymbol) + if err != nil { + return err + } + + val.SetString(elem.String()) + return nil +} + +func binaryDecode(vr ValueReader) (Binary, error) { + var b Binary + + var data []byte + var subtype byte + var err error + switch vrType := vr.Type(); vrType { + case TypeBinary: + data, subtype, err = vr.ReadBinary() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return b, fmt.Errorf("cannot decode %v into a Binary", vrType) + } + if err != nil { + return b, err + } + b.Subtype = subtype + b.Data = data + + return b, nil +} + +func binaryDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tBinary { + return emptyValue, ValueDecoderError{ + Name: "BinaryDecodeValue", + Types: []reflect.Type{tBinary}, + Received: reflect.Zero(t), + } + } + + b, err := binaryDecode(vr) + if err != nil { + return emptyValue, err + } + return reflect.ValueOf(b), nil +} + +// binaryDecodeValue is the ValueDecoderFunc for Binary. +func binaryDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tBinary { + return ValueDecoderError{Name: "BinaryDecodeValue", Types: []reflect.Type{tBinary}, Received: val} + } + + elem, err := binaryDecodeType(dc, vr, tBinary) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func vectorDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tVector { + return emptyValue, ValueDecoderError{ + Name: "VectorDecodeValue", + Types: []reflect.Type{tVector}, + Received: reflect.Zero(t), + } + } + + b, err := binaryDecode(vr) + if err != nil { + return emptyValue, err + } + + v, err := NewVectorFromBinary(b) + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(v), nil +} + +// vectorDecodeValue is the ValueDecoderFunc for Vector. +func vectorDecodeValue(dctx DecodeContext, vr ValueReader, val reflect.Value) error { + t := val.Type() + if !val.CanSet() || t != tVector { + return ValueDecoderError{ + Name: "VectorDecodeValue", + Types: []reflect.Type{tVector}, + Received: val, + } + } + + elem, err := vectorDecodeType(dctx, vr, t) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func undefinedDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tUndefined { + return emptyValue, ValueDecoderError{ + Name: "UndefinedDecodeValue", + Types: []reflect.Type{tUndefined}, + Received: reflect.Zero(t), + } + } + + var err error + switch vrType := vr.Type(); vrType { + case TypeUndefined: + err = vr.ReadUndefined() + case TypeNull: + err = vr.ReadNull() + default: + return emptyValue, fmt.Errorf("cannot decode %v into an Undefined", vr.Type()) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(Undefined{}), nil +} + +// undefinedDecodeValue is the ValueDecoderFunc for Undefined. +func undefinedDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tUndefined { + return ValueDecoderError{Name: "UndefinedDecodeValue", Types: []reflect.Type{tUndefined}, Received: val} + } + + elem, err := undefinedDecodeType(dc, vr, tUndefined) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +// Accept both 12-byte string and pretty-printed 24-byte hex string formats. +func objectIDDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tOID { + return emptyValue, ValueDecoderError{ + Name: "ObjectIDDecodeValue", + Types: []reflect.Type{tOID}, + Received: reflect.Zero(t), + } + } + + var oid ObjectID + var err error + switch vrType := vr.Type(); vrType { + case TypeObjectID: + oid, err = vr.ReadObjectID() + if err != nil { + return emptyValue, err + } + case TypeString: + str, err := vr.ReadString() + if err != nil { + return emptyValue, err + } + if oid, err = ObjectIDFromHex(str); err == nil { + break + } + if len(str) != 12 { + return emptyValue, fmt.Errorf("an ObjectID string must be exactly 12 bytes long (got %v)", len(str)) + } + byteArr := []byte(str) + copy(oid[:], byteArr) + case TypeNull: + if err = vr.ReadNull(); err != nil { + return emptyValue, err + } + case TypeUndefined: + if err = vr.ReadUndefined(); err != nil { + return emptyValue, err + } + default: + return emptyValue, fmt.Errorf("cannot decode %v into an ObjectID", vrType) + } + + return reflect.ValueOf(oid), nil +} + +// objectIDDecodeValue is the ValueDecoderFunc for ObjectID. +func objectIDDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tOID { + return ValueDecoderError{Name: "ObjectIDDecodeValue", Types: []reflect.Type{tOID}, Received: val} + } + + elem, err := objectIDDecodeType(dc, vr, tOID) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func dateTimeDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tDateTime { + return emptyValue, ValueDecoderError{ + Name: "DateTimeDecodeValue", + Types: []reflect.Type{tDateTime}, + Received: reflect.Zero(t), + } + } + + var dt int64 + var err error + switch vrType := vr.Type(); vrType { + case TypeDateTime: + dt, err = vr.ReadDateTime() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a DateTime", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(DateTime(dt)), nil +} + +// dateTimeDecodeValue is the ValueDecoderFunc for DateTime. +func dateTimeDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tDateTime { + return ValueDecoderError{Name: "DateTimeDecodeValue", Types: []reflect.Type{tDateTime}, Received: val} + } + + elem, err := dateTimeDecodeType(dc, vr, tDateTime) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func nullDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tNull { + return emptyValue, ValueDecoderError{ + Name: "NullDecodeValue", + Types: []reflect.Type{tNull}, + Received: reflect.Zero(t), + } + } + + var err error + switch vrType := vr.Type(); vrType { + case TypeUndefined: + err = vr.ReadUndefined() + case TypeNull: + err = vr.ReadNull() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a Null", vr.Type()) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(Null{}), nil +} + +// nullDecodeValue is the ValueDecoderFunc for Null. +func nullDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tNull { + return ValueDecoderError{Name: "NullDecodeValue", Types: []reflect.Type{tNull}, Received: val} + } + + elem, err := nullDecodeType(dc, vr, tNull) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func regexDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tRegex { + return emptyValue, ValueDecoderError{ + Name: "RegexDecodeValue", + Types: []reflect.Type{tRegex}, + Received: reflect.Zero(t), + } + } + + var pattern, options string + var err error + switch vrType := vr.Type(); vrType { + case TypeRegex: + pattern, options, err = vr.ReadRegex() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a Regex", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(Regex{Pattern: pattern, Options: options}), nil +} + +// regexDecodeValue is the ValueDecoderFunc for Regex. +func regexDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tRegex { + return ValueDecoderError{Name: "RegexDecodeValue", Types: []reflect.Type{tRegex}, Received: val} + } + + elem, err := regexDecodeType(dc, vr, tRegex) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func dbPointerDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tDBPointer { + return emptyValue, ValueDecoderError{ + Name: "DBPointerDecodeValue", + Types: []reflect.Type{tDBPointer}, + Received: reflect.Zero(t), + } + } + + var ns string + var pointer ObjectID + var err error + switch vrType := vr.Type(); vrType { + case TypeDBPointer: + ns, pointer, err = vr.ReadDBPointer() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a DBPointer", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(DBPointer{DB: ns, Pointer: pointer}), nil +} + +// dbPointerDecodeValue is the ValueDecoderFunc for DBPointer. +func dbPointerDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tDBPointer { + return ValueDecoderError{Name: "DBPointerDecodeValue", Types: []reflect.Type{tDBPointer}, Received: val} + } + + elem, err := dbPointerDecodeType(dc, vr, tDBPointer) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func timestampDecodeType(_ DecodeContext, vr ValueReader, reflectType reflect.Type) (reflect.Value, error) { + if reflectType != tTimestamp { + return emptyValue, ValueDecoderError{ + Name: "TimestampDecodeValue", + Types: []reflect.Type{tTimestamp}, + Received: reflect.Zero(reflectType), + } + } + + var t, incr uint32 + var err error + switch vrType := vr.Type(); vrType { + case TypeTimestamp: + t, incr, err = vr.ReadTimestamp() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a Timestamp", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(Timestamp{T: t, I: incr}), nil +} + +// timestampDecodeValue is the ValueDecoderFunc for Timestamp. +func timestampDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tTimestamp { + return ValueDecoderError{Name: "TimestampDecodeValue", Types: []reflect.Type{tTimestamp}, Received: val} + } + + elem, err := timestampDecodeType(dc, vr, tTimestamp) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func minKeyDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tMinKey { + return emptyValue, ValueDecoderError{ + Name: "MinKeyDecodeValue", + Types: []reflect.Type{tMinKey}, + Received: reflect.Zero(t), + } + } + + var err error + switch vrType := vr.Type(); vrType { + case TypeMinKey: + err = vr.ReadMinKey() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a MinKey", vr.Type()) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(MinKey{}), nil +} + +// minKeyDecodeValue is the ValueDecoderFunc for MinKey. +func minKeyDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tMinKey { + return ValueDecoderError{Name: "MinKeyDecodeValue", Types: []reflect.Type{tMinKey}, Received: val} + } + + elem, err := minKeyDecodeType(dc, vr, tMinKey) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func maxKeyDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tMaxKey { + return emptyValue, ValueDecoderError{ + Name: "MaxKeyDecodeValue", + Types: []reflect.Type{tMaxKey}, + Received: reflect.Zero(t), + } + } + + var err error + switch vrType := vr.Type(); vrType { + case TypeMaxKey: + err = vr.ReadMaxKey() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a MaxKey", vr.Type()) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(MaxKey{}), nil +} + +// maxKeyDecodeValue is the ValueDecoderFunc for MaxKey. +func maxKeyDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tMaxKey { + return ValueDecoderError{Name: "MaxKeyDecodeValue", Types: []reflect.Type{tMaxKey}, Received: val} + } + + elem, err := maxKeyDecodeType(dc, vr, tMaxKey) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func decimal128DecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tDecimal { + return emptyValue, ValueDecoderError{ + Name: "Decimal128DecodeValue", + Types: []reflect.Type{tDecimal}, + Received: reflect.Zero(t), + } + } + + var d128 Decimal128 + var err error + switch vrType := vr.Type(); vrType { + case TypeDecimal128: + d128, err = vr.ReadDecimal128() + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a Decimal128", vr.Type()) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(d128), nil +} + +// decimal128DecodeValue is the ValueDecoderFunc for Decimal128. +func decimal128DecodeValue(dctx DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tDecimal { + return ValueDecoderError{Name: "Decimal128DecodeValue", Types: []reflect.Type{tDecimal}, Received: val} + } + + elem, err := decimal128DecodeType(dctx, vr, tDecimal) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func jsonNumberDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tJSONNumber { + return emptyValue, ValueDecoderError{ + Name: "JSONNumberDecodeValue", + Types: []reflect.Type{tJSONNumber}, + Received: reflect.Zero(t), + } + } + + var jsonNum json.Number + var err error + switch vrType := vr.Type(); vrType { + case TypeDouble: + f64, err := vr.ReadDouble() + if err != nil { + return emptyValue, err + } + jsonNum = json.Number(strconv.FormatFloat(f64, 'f', -1, 64)) + case TypeInt32: + i32, err := vr.ReadInt32() + if err != nil { + return emptyValue, err + } + jsonNum = json.Number(strconv.FormatInt(int64(i32), 10)) + case TypeInt64: + i64, err := vr.ReadInt64() + if err != nil { + return emptyValue, err + } + jsonNum = json.Number(strconv.FormatInt(i64, 10)) + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a json.Number", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(jsonNum), nil +} + +// jsonNumberDecodeValue is the ValueDecoderFunc for json.Number. +func jsonNumberDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tJSONNumber { + return ValueDecoderError{Name: "JSONNumberDecodeValue", Types: []reflect.Type{tJSONNumber}, Received: val} + } + + elem, err := jsonNumberDecodeType(dc, vr, tJSONNumber) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func urlDecodeType(_ DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tURL { + return emptyValue, ValueDecoderError{ + Name: "URLDecodeValue", + Types: []reflect.Type{tURL}, + Received: reflect.Zero(t), + } + } + + urlPtr := &url.URL{} + var err error + switch vrType := vr.Type(); vrType { + case TypeString: + var str string // Declare str here to avoid shadowing err during the ReadString call. + str, err = vr.ReadString() + if err != nil { + return emptyValue, err + } + + urlPtr, err = url.Parse(str) + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a *url.URL", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(urlPtr).Elem(), nil +} + +// urlDecodeValue is the ValueDecoderFunc for url.URL. +func urlDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tURL { + return ValueDecoderError{Name: "URLDecodeValue", Types: []reflect.Type{tURL}, Received: val} + } + + elem, err := urlDecodeType(dc, vr, tURL) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +// arrayDecodeValue is the ValueDecoderFunc for array types. +func arrayDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.IsValid() || val.Kind() != reflect.Array { + return ValueDecoderError{Name: "ArrayDecodeValue", Kinds: []reflect.Kind{reflect.Array}, Received: val} + } + + switch vrType := vr.Type(); vrType { + case TypeArray: + case Type(0), TypeEmbeddedDocument: + if val.Type().Elem() != tE { + return fmt.Errorf("cannot decode document into %s", val.Type()) + } + case TypeBinary: + if val.Type().Elem() != tByte { + return fmt.Errorf("ArrayDecodeValue can only be used to decode binary into a byte array, got %v", vrType) + } + data, subtype, err := vr.ReadBinary() + if err != nil { + return err + } + if subtype != TypeBinaryGeneric && subtype != TypeBinaryBinaryOld { + return fmt.Errorf("ArrayDecodeValue can only be used to decode subtype 0x00 or 0x02 for %s, got %v", TypeBinary, subtype) + } + + if len(data) > val.Len() { + return fmt.Errorf("more elements returned in array than can fit inside %s", val.Type()) + } + + for idx, elem := range data { + val.Index(idx).Set(reflect.ValueOf(elem)) + } + return nil + case TypeNull: + val.Set(reflect.Zero(val.Type())) + return vr.ReadNull() + case TypeUndefined: + val.Set(reflect.Zero(val.Type())) + return vr.ReadUndefined() + default: + return fmt.Errorf("cannot decode %v into an array", vrType) + } + + var elemsFunc func(DecodeContext, ValueReader, reflect.Value) ([]reflect.Value, error) + switch val.Type().Elem() { + case tE: + elemsFunc = decodeD + default: + elemsFunc = decodeDefault + } + + elems, err := elemsFunc(dc, vr, val) + if err != nil { + return err + } + + if len(elems) > val.Len() { + return fmt.Errorf("more elements returned in array than can fit inside %s, got %v elements", val.Type(), len(elems)) + } + + for idx, elem := range elems { + val.Index(idx).Set(elem) + } + + return nil +} + +// valueUnmarshalerDecodeValue is the ValueDecoderFunc for ValueUnmarshaler implementations. +func valueUnmarshalerDecodeValue(_ DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.IsValid() || (!val.Type().Implements(tValueUnmarshaler) && !reflect.PtrTo(val.Type()).Implements(tValueUnmarshaler)) { + return ValueDecoderError{Name: "ValueUnmarshalerDecodeValue", Types: []reflect.Type{tValueUnmarshaler}, Received: val} + } + + // If BSON value is null and the go value is a pointer, then don't call + // UnmarshalBSONValue. Even if the Go pointer is already initialized (i.e., + // non-nil), encountering null in BSON will result in the pointer being + // directly set to nil here. Since the pointer is being replaced with nil, + // there is no opportunity (or reason) for the custom UnmarshalBSONValue logic + // to be called. + if vr.Type() == TypeNull && val.Kind() == reflect.Ptr { + val.Set(reflect.Zero(val.Type())) + + return vr.ReadNull() + } + + if val.Kind() == reflect.Ptr && val.IsNil() { + if !val.CanSet() { + return ValueDecoderError{Name: "ValueUnmarshalerDecodeValue", Types: []reflect.Type{tValueUnmarshaler}, Received: val} + } + val.Set(reflect.New(val.Type().Elem())) + } + + if !val.Type().Implements(tValueUnmarshaler) { + if !val.CanAddr() { + return ValueDecoderError{Name: "ValueUnmarshalerDecodeValue", Types: []reflect.Type{tValueUnmarshaler}, Received: val} + } + val = val.Addr() // If the type doesn't implement the interface, a pointer to it must. + } + + t, src, err := copyValueToBytes(vr) + if err != nil { + return err + } + + m, ok := val.Interface().(ValueUnmarshaler) + if !ok { + // NB: this error should be unreachable due to the above checks + return ValueDecoderError{Name: "ValueUnmarshalerDecodeValue", Types: []reflect.Type{tValueUnmarshaler}, Received: val} + } + return m.UnmarshalBSONValue(byte(t), src) +} + +// unmarshalerDecodeValue is the ValueDecoderFunc for Unmarshaler implementations. +func unmarshalerDecodeValue(_ DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.IsValid() || (!val.Type().Implements(tUnmarshaler) && !reflect.PtrTo(val.Type()).Implements(tUnmarshaler)) { + return ValueDecoderError{Name: "UnmarshalerDecodeValue", Types: []reflect.Type{tUnmarshaler}, Received: val} + } + + if val.Kind() == reflect.Ptr && val.IsNil() { + if !val.CanSet() { + return ValueDecoderError{Name: "UnmarshalerDecodeValue", Types: []reflect.Type{tUnmarshaler}, Received: val} + } + val.Set(reflect.New(val.Type().Elem())) + } + + _, src, err := copyValueToBytes(vr) + if err != nil { + return err + } + + // If the target Go value is a pointer and the BSON field value is empty, set the value to the + // zero value of the pointer (nil) and don't call UnmarshalBSON. UnmarshalBSON has no way to + // change the pointer value from within the function (only the value at the pointer address), + // so it can't set the pointer to "nil" itself. Since the most common Go value for an empty BSON + // field value is "nil", we set "nil" here and don't call UnmarshalBSON. This behavior matches + // the behavior of the Go "encoding/json" unmarshaler when the target Go value is a pointer and + // the JSON field value is "null". + if val.Kind() == reflect.Ptr && len(src) == 0 { + val.Set(reflect.Zero(val.Type())) + return nil + } + + if !val.Type().Implements(tUnmarshaler) { + if !val.CanAddr() { + return ValueDecoderError{Name: "UnmarshalerDecodeValue", Types: []reflect.Type{tUnmarshaler}, Received: val} + } + val = val.Addr() // If the type doesn't implement the interface, a pointer to it must. + } + + m, ok := val.Interface().(Unmarshaler) + if !ok { + // NB: this error should be unreachable due to the above checks + return ValueDecoderError{Name: "UnmarshalerDecodeValue", Types: []reflect.Type{tUnmarshaler}, Received: val} + } + return m.UnmarshalBSON(src) +} + +// coreDocumentDecodeValue is the ValueDecoderFunc for bsoncore.Document. +func coreDocumentDecodeValue(_ DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tCoreDocument { + return ValueDecoderError{Name: "CoreDocumentDecodeValue", Types: []reflect.Type{tCoreDocument}, Received: val} + } + + if val.IsNil() { + val.Set(reflect.MakeSlice(val.Type(), 0, 0)) + } + + val.SetLen(0) + + cdoc, err := appendDocumentBytes(val.Interface().(bsoncore.Document), vr) + val.Set(reflect.ValueOf(cdoc)) + return err +} + +func decodeDefault(dc DecodeContext, vr ValueReader, val reflect.Value) ([]reflect.Value, error) { + elems := make([]reflect.Value, 0) + + ar, err := vr.ReadArray() + if err != nil { + return nil, err + } + + eType := val.Type().Elem() + + isInterfaceSlice := eType.Kind() == reflect.Interface && val.Len() > 0 + + // If this is not an interface slice with pre-populated elements, we can look up + // the decoder for eType once. + var vDecoder ValueDecoder + if !isInterfaceSlice { + vDecoder, err = dc.LookupDecoder(eType) + if err != nil { + return nil, err + } + } + + idx := 0 + for { + vr, err := ar.ReadValue() + if errors.Is(err, ErrEOA) { + break + } + if err != nil { + return nil, err + } + + var elem reflect.Value + if isInterfaceSlice && idx < val.Len() { + // Decode into an existing any slot. + + elem = val.Index(idx).Elem() + switch { + case elem.Kind() != reflect.Ptr || elem.IsNil(): + valueDecoder, err := dc.LookupDecoder(elem.Type()) + if err != nil { + return nil, err + } + + // If an element is allocated and unsettable, it must be overwritten. + if !elem.CanSet() { + elem = reflect.New(elem.Type()).Elem() + } + + err = valueDecoder.DecodeValue(dc, vr, elem) + if err != nil { + return nil, newDecodeError(strconv.Itoa(idx), err) + } + case vr.Type() == TypeNull: + if err = vr.ReadNull(); err != nil { + return nil, err + } + elem = reflect.Zero(val.Index(idx).Type()) + default: + e := elem.Elem() + valueDecoder, err := dc.LookupDecoder(e.Type()) + if err != nil { + return nil, err + } + err = valueDecoder.DecodeValue(dc, vr, e) + if err != nil { + return nil, newDecodeError(strconv.Itoa(idx), err) + } + } + } else { + // For non-interface slices, or if we've exhausted the pre-populated + // slots, we create a fresh value. + + if vDecoder == nil { + vDecoder, err = dc.LookupDecoder(eType) + if err != nil { + return nil, err + } + } + elem, err = decodeTypeOrValueWithInfo(vDecoder, dc, vr, eType) + if err != nil { + return nil, newDecodeError(strconv.Itoa(idx), err) + } + } + + elems = append(elems, elem) + idx++ + } + + return elems, nil +} + +func codeWithScopeDecodeType(dc DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tCodeWithScope { + return emptyValue, ValueDecoderError{ + Name: "CodeWithScopeDecodeValue", + Types: []reflect.Type{tCodeWithScope}, + Received: reflect.Zero(t), + } + } + + var cws CodeWithScope + var err error + switch vrType := vr.Type(); vrType { + case TypeCodeWithScope: + code, dr, err := vr.ReadCodeWithScope() + if err != nil { + return emptyValue, err + } + + scope := reflect.New(tD).Elem() + elems, err := decodeElemsFromDocumentReader(dc, dr) + if err != nil { + return emptyValue, err + } + + scope.Set(reflect.MakeSlice(tD, 0, len(elems))) + scope.Set(reflect.Append(scope, elems...)) + + cws = CodeWithScope{ + Code: JavaScript(code), + Scope: scope.Interface().(D), + } + case TypeNull: + err = vr.ReadNull() + case TypeUndefined: + err = vr.ReadUndefined() + default: + return emptyValue, fmt.Errorf("cannot decode %v into a CodeWithScope", vrType) + } + if err != nil { + return emptyValue, err + } + + return reflect.ValueOf(cws), nil +} + +// codeWithScopeDecodeValue is the ValueDecoderFunc for CodeWithScope. +func codeWithScopeDecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tCodeWithScope { + return ValueDecoderError{Name: "CodeWithScopeDecodeValue", Types: []reflect.Type{tCodeWithScope}, Received: val} + } + + elem, err := codeWithScopeDecodeType(dc, vr, tCodeWithScope) + if err != nil { + return err + } + + val.Set(elem) + return nil +} + +func decodeD(dc DecodeContext, vr ValueReader, _ reflect.Value) ([]reflect.Value, error) { + switch vr.Type() { + case Type(0), TypeEmbeddedDocument: + default: + return nil, fmt.Errorf("cannot decode %v into a D", vr.Type()) + } + + dr, err := vr.ReadDocument() + if err != nil { + return nil, err + } + + return decodeElemsFromDocumentReader(dc, dr) +} + +func decodeElemsFromDocumentReader(dc DecodeContext, dr DocumentReader) ([]reflect.Value, error) { + decoder, err := dc.LookupDecoder(tEmpty) + if err != nil { + return nil, err + } + + elems := make([]reflect.Value, 0) + for { + key, vr, err := dr.ReadElement() + if errors.Is(err, ErrEOD) { + break + } + if err != nil { + return nil, err + } + + val := reflect.New(tEmpty).Elem() + err = decoder.DecodeValue(dc, vr, val) + if err != nil { + return nil, newDecodeError(key, err) + } + + elems = append(elems, reflect.ValueOf(E{Key: key, Value: val.Interface()})) + } + + return elems, nil +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/default_value_encoders.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/default_value_encoders.go new file mode 100644 index 000000000..f5d15bc30 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/default_value_encoders.go @@ -0,0 +1,518 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "encoding/json" + "errors" + "math" + "net/url" + "reflect" + "sync" + + "go.mongodb.org/mongo-driver/v2/x/bsonx/bsoncore" +) + +var bvwPool = sync.Pool{ + New: func() any { + return new(valueWriter) + }, +} + +var errInvalidValue = errors.New("cannot encode invalid element") + +var sliceWriterPool = sync.Pool{ + New: func() any { + sw := make(sliceWriter, 0) + return &sw + }, +} + +func encodeElement(ec EncodeContext, dw DocumentWriter, e E) error { + vw, err := dw.WriteDocumentElement(e.Key) + if err != nil { + return err + } + + if e.Value == nil { + return vw.WriteNull() + } + encoder, err := ec.LookupEncoder(reflect.TypeOf(e.Value)) + if err != nil { + return err + } + + err = encoder.EncodeValue(ec, vw, reflect.ValueOf(e.Value)) + if err != nil { + return err + } + return nil +} + +// registerDefaultEncoders will register the encoder methods attached to DefaultValueEncoders with +// the provided RegistryBuilder. +func registerDefaultEncoders(reg *Registry) { + mapEncoder := &mapCodec{} + uintCodec := &uintCodec{} + + reg.RegisterTypeEncoder(tByteSlice, &byteSliceCodec{}) + reg.RegisterTypeEncoder(tTime, &timeCodec{}) + reg.RegisterTypeEncoder(tEmpty, &emptyInterfaceCodec{}) + reg.RegisterTypeEncoder(tCoreArray, &arrayCodec{}) + reg.RegisterTypeEncoder(tOID, ValueEncoderFunc(objectIDEncodeValue)) + reg.RegisterTypeEncoder(tDecimal, ValueEncoderFunc(decimal128EncodeValue)) + reg.RegisterTypeEncoder(tJSONNumber, ValueEncoderFunc(jsonNumberEncodeValue)) + reg.RegisterTypeEncoder(tURL, ValueEncoderFunc(urlEncodeValue)) + reg.RegisterTypeEncoder(tJavaScript, ValueEncoderFunc(javaScriptEncodeValue)) + reg.RegisterTypeEncoder(tSymbol, ValueEncoderFunc(symbolEncodeValue)) + reg.RegisterTypeEncoder(tBinary, ValueEncoderFunc(binaryEncodeValue)) + reg.RegisterTypeEncoder(tVector, ValueEncoderFunc(vectorEncodeValue)) + reg.RegisterTypeEncoder(tUndefined, ValueEncoderFunc(undefinedEncodeValue)) + reg.RegisterTypeEncoder(tDateTime, ValueEncoderFunc(dateTimeEncodeValue)) + reg.RegisterTypeEncoder(tNull, ValueEncoderFunc(nullEncodeValue)) + reg.RegisterTypeEncoder(tRegex, ValueEncoderFunc(regexEncodeValue)) + reg.RegisterTypeEncoder(tDBPointer, ValueEncoderFunc(dbPointerEncodeValue)) + reg.RegisterTypeEncoder(tTimestamp, ValueEncoderFunc(timestampEncodeValue)) + reg.RegisterTypeEncoder(tMinKey, ValueEncoderFunc(minKeyEncodeValue)) + reg.RegisterTypeEncoder(tMaxKey, ValueEncoderFunc(maxKeyEncodeValue)) + reg.RegisterTypeEncoder(tCoreDocument, ValueEncoderFunc(coreDocumentEncodeValue)) + reg.RegisterTypeEncoder(tCodeWithScope, ValueEncoderFunc(codeWithScopeEncodeValue)) + reg.RegisterKindEncoder(reflect.Bool, ValueEncoderFunc(booleanEncodeValue)) + reg.RegisterKindEncoder(reflect.Int, ValueEncoderFunc(intEncodeValue)) + reg.RegisterKindEncoder(reflect.Int8, ValueEncoderFunc(intEncodeValue)) + reg.RegisterKindEncoder(reflect.Int16, ValueEncoderFunc(intEncodeValue)) + reg.RegisterKindEncoder(reflect.Int32, ValueEncoderFunc(intEncodeValue)) + reg.RegisterKindEncoder(reflect.Int64, ValueEncoderFunc(intEncodeValue)) + reg.RegisterKindEncoder(reflect.Uint, uintCodec) + reg.RegisterKindEncoder(reflect.Uint8, uintCodec) + reg.RegisterKindEncoder(reflect.Uint16, uintCodec) + reg.RegisterKindEncoder(reflect.Uint32, uintCodec) + reg.RegisterKindEncoder(reflect.Uint64, uintCodec) + reg.RegisterKindEncoder(reflect.Float32, ValueEncoderFunc(floatEncodeValue)) + reg.RegisterKindEncoder(reflect.Float64, ValueEncoderFunc(floatEncodeValue)) + reg.RegisterKindEncoder(reflect.Array, ValueEncoderFunc(arrayEncodeValue)) + reg.RegisterKindEncoder(reflect.Map, mapEncoder) + reg.RegisterKindEncoder(reflect.Slice, &sliceCodec{}) + reg.RegisterKindEncoder(reflect.String, &stringCodec{}) + reg.RegisterKindEncoder(reflect.Struct, newStructCodec(mapEncoder)) + reg.RegisterKindEncoder(reflect.Ptr, &pointerCodec{}) + reg.RegisterInterfaceEncoder(tValueMarshaler, ValueEncoderFunc(valueMarshalerEncodeValue)) + reg.RegisterInterfaceEncoder(tMarshaler, ValueEncoderFunc(marshalerEncodeValue)) +} + +// booleanEncodeValue is the ValueEncoderFunc for bool types. +func booleanEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Kind() != reflect.Bool { + return ValueEncoderError{Name: "BooleanEncodeValue", Kinds: []reflect.Kind{reflect.Bool}, Received: val} + } + return vw.WriteBoolean(val.Bool()) +} + +func fitsIn32Bits(i int64) bool { + return math.MinInt32 <= i && i <= math.MaxInt32 +} + +// intEncodeValue is the ValueEncoderFunc for int types. +func intEncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + switch val.Kind() { + case reflect.Int8, reflect.Int16, reflect.Int32: + return vw.WriteInt32(int32(val.Int())) + case reflect.Int: + i64 := val.Int() + if fitsIn32Bits(i64) { + return vw.WriteInt32(int32(i64)) + } + return vw.WriteInt64(i64) + case reflect.Int64: + i64 := val.Int() + if ec.minSize && fitsIn32Bits(i64) { + return vw.WriteInt32(int32(i64)) + } + return vw.WriteInt64(i64) + } + + return ValueEncoderError{ + Name: "IntEncodeValue", + Kinds: []reflect.Kind{reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int}, + Received: val, + } +} + +// floatEncodeValue is the ValueEncoderFunc for float types. +func floatEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + switch val.Kind() { + case reflect.Float32, reflect.Float64: + return vw.WriteDouble(val.Float()) + } + + return ValueEncoderError{Name: "FloatEncodeValue", Kinds: []reflect.Kind{reflect.Float32, reflect.Float64}, Received: val} +} + +// objectIDEncodeValue is the ValueEncoderFunc for ObjectID. +func objectIDEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tOID { + return ValueEncoderError{Name: "ObjectIDEncodeValue", Types: []reflect.Type{tOID}, Received: val} + } + return vw.WriteObjectID(val.Interface().(ObjectID)) +} + +// decimal128EncodeValue is the ValueEncoderFunc for Decimal128. +func decimal128EncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tDecimal { + return ValueEncoderError{Name: "Decimal128EncodeValue", Types: []reflect.Type{tDecimal}, Received: val} + } + return vw.WriteDecimal128(val.Interface().(Decimal128)) +} + +// jsonNumberEncodeValue is the ValueEncoderFunc for json.Number. +func jsonNumberEncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tJSONNumber { + return ValueEncoderError{Name: "JSONNumberEncodeValue", Types: []reflect.Type{tJSONNumber}, Received: val} + } + jsnum := val.Interface().(json.Number) + + // Attempt int first, then float64 + if i64, err := jsnum.Int64(); err == nil { + return intEncodeValue(ec, vw, reflect.ValueOf(i64)) + } + + f64, err := jsnum.Float64() + if err != nil { + return err + } + + return floatEncodeValue(ec, vw, reflect.ValueOf(f64)) +} + +// urlEncodeValue is the ValueEncoderFunc for url.URL. +func urlEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tURL { + return ValueEncoderError{Name: "URLEncodeValue", Types: []reflect.Type{tURL}, Received: val} + } + u := val.Interface().(url.URL) + return vw.WriteString(u.String()) +} + +// arrayEncodeValue is the ValueEncoderFunc for array types. +func arrayEncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Kind() != reflect.Array { + return ValueEncoderError{Name: "ArrayEncodeValue", Kinds: []reflect.Kind{reflect.Array}, Received: val} + } + + // If we have a []E we want to treat it as a document instead of as an array. + if val.Type().Elem() == tE { + dw, err := vw.WriteDocument() + if err != nil { + return err + } + + for idx := 0; idx < val.Len(); idx++ { + e := val.Index(idx).Interface().(E) + err = encodeElement(ec, dw, e) + if err != nil { + return err + } + } + + return dw.WriteDocumentEnd() + } + + // If we have a []byte we want to treat it as a binary instead of as an array. + if val.Type().Elem() == tByte { + var byteSlice []byte + for idx := 0; idx < val.Len(); idx++ { + byteSlice = append(byteSlice, val.Index(idx).Interface().(byte)) + } + return vw.WriteBinary(byteSlice) + } + + aw, err := vw.WriteArray() + if err != nil { + return err + } + + elemType := val.Type().Elem() + encoder, err := ec.LookupEncoder(elemType) + if err != nil && elemType.Kind() != reflect.Interface { + return err + } + + for idx := 0; idx < val.Len(); idx++ { + currEncoder, currVal, lookupErr := lookupElementEncoder(ec, encoder, val.Index(idx)) + if lookupErr != nil && !errors.Is(lookupErr, errInvalidValue) { + return lookupErr + } + + vw, err := aw.WriteArrayElement() + if err != nil { + return err + } + + if errors.Is(lookupErr, errInvalidValue) { + err = vw.WriteNull() + if err != nil { + return err + } + continue + } + + err = currEncoder.EncodeValue(ec, vw, currVal) + if err != nil { + return err + } + } + return aw.WriteArrayEnd() +} + +func lookupElementEncoder(ec EncodeContext, origEncoder ValueEncoder, currVal reflect.Value) (ValueEncoder, reflect.Value, error) { + if origEncoder != nil || (currVal.Kind() != reflect.Interface) { + return origEncoder, currVal, nil + } + currVal = currVal.Elem() + if !currVal.IsValid() { + return nil, currVal, errInvalidValue + } + currEncoder, err := ec.LookupEncoder(currVal.Type()) + + return currEncoder, currVal, err +} + +// valueMarshalerEncodeValue is the ValueEncoderFunc for ValueMarshaler implementations. +func valueMarshalerEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + // Either val or a pointer to val must implement ValueMarshaler + switch { + case !val.IsValid(): + return ValueEncoderError{Name: "ValueMarshalerEncodeValue", Types: []reflect.Type{tValueMarshaler}, Received: val} + case val.Type().Implements(tValueMarshaler): + // If ValueMarshaler is implemented on a concrete type, make sure that val isn't a nil pointer + if isImplementationNil(val, tValueMarshaler) { + return vw.WriteNull() + } + case reflect.PtrTo(val.Type()).Implements(tValueMarshaler) && val.CanAddr(): + val = val.Addr() + default: + return ValueEncoderError{Name: "ValueMarshalerEncodeValue", Types: []reflect.Type{tValueMarshaler}, Received: val} + } + + m, ok := val.Interface().(ValueMarshaler) + if !ok { + return vw.WriteNull() + } + t, data, err := m.MarshalBSONValue() + if err != nil { + return err + } + return copyValueFromBytes(vw, Type(t), data) +} + +// marshalerEncodeValue is the ValueEncoderFunc for Marshaler implementations. +func marshalerEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + // Either val or a pointer to val must implement Marshaler + switch { + case !val.IsValid(): + return ValueEncoderError{Name: "MarshalerEncodeValue", Types: []reflect.Type{tMarshaler}, Received: val} + case val.Type().Implements(tMarshaler): + // If Marshaler is implemented on a concrete type, make sure that val isn't a nil pointer + if isImplementationNil(val, tMarshaler) { + return vw.WriteNull() + } + case reflect.PtrTo(val.Type()).Implements(tMarshaler) && val.CanAddr(): + val = val.Addr() + default: + return ValueEncoderError{Name: "MarshalerEncodeValue", Types: []reflect.Type{tMarshaler}, Received: val} + } + + m, ok := val.Interface().(Marshaler) + if !ok { + return vw.WriteNull() + } + data, err := m.MarshalBSON() + if err != nil { + return err + } + return copyValueFromBytes(vw, TypeEmbeddedDocument, data) +} + +// javaScriptEncodeValue is the ValueEncoderFunc for the JavaScript type. +func javaScriptEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tJavaScript { + return ValueEncoderError{Name: "JavaScriptEncodeValue", Types: []reflect.Type{tJavaScript}, Received: val} + } + + return vw.WriteJavascript(val.String()) +} + +// symbolEncodeValue is the ValueEncoderFunc for the Symbol type. +func symbolEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tSymbol { + return ValueEncoderError{Name: "SymbolEncodeValue", Types: []reflect.Type{tSymbol}, Received: val} + } + + return vw.WriteSymbol(val.String()) +} + +// binaryEncodeValue is the ValueEncoderFunc for Binary. +func binaryEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tBinary { + return ValueEncoderError{Name: "BinaryEncodeValue", Types: []reflect.Type{tBinary}, Received: val} + } + b := val.Interface().(Binary) + + return vw.WriteBinaryWithSubtype(b.Data, b.Subtype) +} + +// vectorEncodeValue is the ValueEncoderFunc for Vector. +func vectorEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + t := val.Type() + if !val.IsValid() || t != tVector { + return ValueEncoderError{ + Name: "VectorEncodeValue", + Types: []reflect.Type{tVector}, + Received: val, + } + } + v := val.Interface().(Vector) + b := v.Binary() + return vw.WriteBinaryWithSubtype(b.Data, b.Subtype) +} + +// undefinedEncodeValue is the ValueEncoderFunc for Undefined. +func undefinedEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tUndefined { + return ValueEncoderError{Name: "UndefinedEncodeValue", Types: []reflect.Type{tUndefined}, Received: val} + } + + return vw.WriteUndefined() +} + +// dateTimeEncodeValue is the ValueEncoderFunc for DateTime. +func dateTimeEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tDateTime { + return ValueEncoderError{Name: "DateTimeEncodeValue", Types: []reflect.Type{tDateTime}, Received: val} + } + + return vw.WriteDateTime(val.Int()) +} + +// nullEncodeValue is the ValueEncoderFunc for Null. +func nullEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tNull { + return ValueEncoderError{Name: "NullEncodeValue", Types: []reflect.Type{tNull}, Received: val} + } + + return vw.WriteNull() +} + +// regexEncodeValue is the ValueEncoderFunc for Regex. +func regexEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tRegex { + return ValueEncoderError{Name: "RegexEncodeValue", Types: []reflect.Type{tRegex}, Received: val} + } + + regex := val.Interface().(Regex) + + return vw.WriteRegex(regex.Pattern, regex.Options) +} + +// dbPointerEncodeValue is the ValueEncoderFunc for DBPointer. +func dbPointerEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tDBPointer { + return ValueEncoderError{Name: "DBPointerEncodeValue", Types: []reflect.Type{tDBPointer}, Received: val} + } + + dbp := val.Interface().(DBPointer) + + return vw.WriteDBPointer(dbp.DB, dbp.Pointer) +} + +// timestampEncodeValue is the ValueEncoderFunc for Timestamp. +func timestampEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tTimestamp { + return ValueEncoderError{Name: "TimestampEncodeValue", Types: []reflect.Type{tTimestamp}, Received: val} + } + + ts := val.Interface().(Timestamp) + + return vw.WriteTimestamp(ts.T, ts.I) +} + +// minKeyEncodeValue is the ValueEncoderFunc for MinKey. +func minKeyEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tMinKey { + return ValueEncoderError{Name: "MinKeyEncodeValue", Types: []reflect.Type{tMinKey}, Received: val} + } + + return vw.WriteMinKey() +} + +// maxKeyEncodeValue is the ValueEncoderFunc for MaxKey. +func maxKeyEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tMaxKey { + return ValueEncoderError{Name: "MaxKeyEncodeValue", Types: []reflect.Type{tMaxKey}, Received: val} + } + + return vw.WriteMaxKey() +} + +// coreDocumentEncodeValue is the ValueEncoderFunc for bsoncore.Document. +func coreDocumentEncodeValue(_ EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tCoreDocument { + return ValueEncoderError{Name: "CoreDocumentEncodeValue", Types: []reflect.Type{tCoreDocument}, Received: val} + } + + cdoc := val.Interface().(bsoncore.Document) + + return copyDocumentFromBytes(vw, cdoc) +} + +// codeWithScopeEncodeValue is the ValueEncoderFunc for CodeWithScope. +func codeWithScopeEncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tCodeWithScope { + return ValueEncoderError{Name: "CodeWithScopeEncodeValue", Types: []reflect.Type{tCodeWithScope}, Received: val} + } + + cws := val.Interface().(CodeWithScope) + + dw, err := vw.WriteCodeWithScope(string(cws.Code)) + if err != nil { + return err + } + + sw := sliceWriterPool.Get().(*sliceWriter) + defer sliceWriterPool.Put(sw) + *sw = (*sw)[:0] + + scopeVW := bvwPool.Get().(*valueWriter) + scopeVW.reset(scopeVW.buf[:0]) + scopeVW.w = sw + defer bvwPool.Put(scopeVW) + + encoder, err := ec.LookupEncoder(reflect.TypeOf(cws.Scope)) + if err != nil { + return err + } + + err = encoder.EncodeValue(ec, scopeVW, reflect.ValueOf(cws.Scope)) + if err != nil { + return err + } + + err = copyBytesToDocumentWriter(dw, *sw) + if err != nil { + return err + } + return dw.WriteDocumentEnd() +} + +// isImplementationNil returns if val is a nil pointer and inter is implemented on a concrete type +func isImplementationNil(val reflect.Value, inter reflect.Type) bool { + vt := val.Type() + for vt.Kind() == reflect.Ptr { + vt = vt.Elem() + } + return vt.Implements(inter) && val.Kind() == reflect.Ptr && val.IsNil() +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/doc.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/doc.go new file mode 100644 index 000000000..b346f71f0 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/doc.go @@ -0,0 +1,141 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +// Package bson is a library for reading, writing, and manipulating BSON. BSON is a binary serialization +// format used to store documents and make remote procedure calls in MongoDB. For more information about +// the Go BSON library, including usage examples, check out the [Work with BSON] page in the Go Driver +// docs site. For more information about BSON, see https://bsonspec.org. +// +// # Native Go Types +// +// The [D] and [M] types defined in this package can be used to build representations of BSON using native Go types. D is a +// slice and M is a map. For more information about the use cases for these types, see the documentation on the type +// definitions. +// +// Note that a D should not be constructed with duplicate key names, as that can cause undefined server behavior. +// +// Example: +// +// bson.D{{"foo", "bar"}, {"hello", "world"}, {"pi", 3.14159}} +// bson.M{"foo": "bar", "hello": "world", "pi": 3.14159} +// +// When decoding BSON to a D or M, the following type mappings apply when unmarshaling: +// +// 1. BSON int32 unmarshals to an int32. +// 2. BSON int64 unmarshals to an int64. +// 3. BSON double unmarshals to a float64. +// 4. BSON string unmarshals to a string. +// 5. BSON boolean unmarshals to a bool. +// 6. BSON embedded document unmarshals to the parent type (i.e. D for a D, M for an M). +// 7. BSON array unmarshals to a bson.A. +// 8. BSON ObjectId unmarshals to a bson.ObjectID. +// 9. BSON datetime unmarshals to a bson.DateTime. +// 10. BSON binary unmarshals to a bson.Binary. +// 11. BSON regular expression unmarshals to a bson.Regex. +// 12. BSON JavaScript unmarshals to a bson.JavaScript. +// 13. BSON code with scope unmarshals to a bson.CodeWithScope. +// 14. BSON timestamp unmarshals to an bson.Timestamp. +// 15. BSON 128-bit decimal unmarshals to an bson.Decimal128. +// 16. BSON min key unmarshals to an bson.MinKey. +// 17. BSON max key unmarshals to an bson.MaxKey. +// 18. BSON undefined unmarshals to a bson.Undefined. +// 19. BSON null unmarshals to nil. +// 20. BSON DBPointer unmarshals to a bson.DBPointer. +// 21. BSON symbol unmarshals to a bson.Symbol. +// +// The above mappings also apply when marshaling a D or M to BSON. Some other useful marshaling mappings are: +// +// 1. time.Time marshals to a BSON datetime. +// 2. int8, int16, and int32 marshal to a BSON int32. +// 3. int marshals to a BSON int32 if the value is between math.MinInt32 and math.MaxInt32, inclusive, and a BSON int64 +// otherwise. +// 4. int64 marshals to BSON int64 (unless [Encoder.IntMinSize] is set). +// 5. uint8 and uint16 marshal to a BSON int32. +// 6. uint, uint32, and uint64 marshal to a BSON int64 (unless [Encoder.IntMinSize] is set). +// 7. BSON null and undefined values will unmarshal into the zero value of a field (e.g. unmarshaling a BSON null or +// undefined value into a string will yield the empty string.). +// +// # Structs +// +// Structs can be marshaled/unmarshaled to/from BSON or Extended JSON. When transforming structs to/from BSON or Extended +// JSON, the following rules apply: +// +// 1. Only exported fields in structs will be marshaled or unmarshaled. +// +// 2. When marshaling a struct, each field will be lowercased to generate the key for the corresponding BSON element. +// For example, a struct field named "Foo" will generate key "foo". This can be overridden via a struct tag (e.g. +// `bson:"fooField"` to generate key "fooField" instead). +// +// 3. An embedded struct field is marshaled as a subdocument. The key will be the lowercased name of the field's type. +// +// 4. A pointer field is marshaled as the underlying type if the pointer is non-nil. If the pointer is nil, it is +// marshaled as a BSON null value. +// +// 5. When unmarshaling, a field of type any will follow the D/M type mappings listed above. BSON documents +// unmarshaled into an any field will be unmarshaled as a D. +// +// The encoding of each struct field can be customized by the "bson" struct tag. The "bson" tag gives the name of the +// field, followed by a comma-separated list of options. The name may be omitted in order to specify options without +// overriding the default field name. The following options can be used to configure behavior: +// +// 1. omitempty: If the "omitempty" struct tag is specified on a field, the field will not be marshaled if it is set to +// an "empty" value. Numbers, booleans, and strings are considered empty if their value is equal to the zero value for +// the type (i.e. 0 for numbers, false for booleans, and "" for strings). Slices, maps, and arrays are considered +// empty if they are of length zero. Interfaces and pointers are considered empty if their value is nil. By default, +// structs are only considered empty if the struct type implements [Zeroer] and the "IsZero" +// method returns true. Struct types that do not implement [Zeroer] are never considered empty and will be +// marshaled as embedded documents. NOTE: It is recommended that this tag be used for all slice and map fields. +// +// 2. minsize: If the minsize struct tag is specified on a field of type int64, uint, uint32, or uint64 and the value of +// the field can fit in a signed int32, the field will be serialized as a BSON int32 rather than a BSON int64. For +// other types, this tag is ignored. +// +// 3. truncate: If the truncate struct tag is specified on a field with a non-float numeric type, BSON doubles +// unmarshaled into that field will be truncated at the decimal point. For example, if 3.14 is unmarshaled into a +// field of type int, it will be unmarshaled as 3. If this tag is not specified, the decoder will throw an error if +// the value cannot be decoded without losing precision. For float64 or non-numeric types, this tag is ignored. +// +// 4. inline: If the inline struct tag is specified for a struct or map field, the field will be "flattened" when +// marshaling and "un-flattened" when unmarshaling. This means that all of the fields in that struct/map will be +// pulled up one level and will become top-level fields rather than being fields in a nested document. For example, +// if a map field named "Map" with value map[string]any{"foo": "bar"} is inlined, the resulting document will +// be {"foo": "bar"} instead of {"map": {"foo": "bar"}}. There can only be one inlined map field in a struct. If +// there are duplicated fields in the resulting document when an inlined struct is marshaled, the inlined field will +// be overwritten. If there are duplicated fields in the resulting document when an inlined map is marshaled, an +// error will be returned. This tag can be used with fields that are pointers to structs. If an inlined pointer field +// is nil, it will not be marshaled. For fields that are not maps or structs, this tag is ignored. +// +// # Raw BSON +// +// The Raw family of types is used to validate and retrieve elements from a slice of bytes. This +// type is most useful when you want do lookups on BSON bytes without unmarshaling it into another +// type. +// +// Example: +// +// var raw bson.Raw = ... // bytes from somewhere +// err := raw.Validate() +// if err != nil { return err } +// val := raw.Lookup("foo") +// i32, ok := val.Int32OK() +// // do something with i32... +// +// # Custom Registry +// +// The Go BSON library uses a [Registry] to define encoding and decoding behavior for different data types. +// The default encoding and decoding behavior can be customized or extended by using a modified Registry. +// The custom registry system is composed of two parts: +// +// 1) [ValueEncoder] and [ValueDecoder] that handle encoding and decoding Go values to and from BSON +// representations. +// +// 2) A [Registry] that holds these ValueEncoders and ValueDecoders and provides methods for +// retrieving them. +// +// To use a custom Registry, use [Encoder.SetRegistry] or [Decoder.SetRegistry]. +// +// [Work with BSON]: https://www.mongodb.com/docs/drivers/go/current/fundamentals/bson/ +package bson diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/empty_interface_codec.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/empty_interface_codec.go new file mode 100644 index 000000000..ae1db53f9 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/empty_interface_codec.go @@ -0,0 +1,127 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "reflect" +) + +// emptyInterfaceCodec is the Codec used for any values. +type emptyInterfaceCodec struct { + // decodeBinaryAsSlice causes DecodeValue to unmarshal BSON binary field values that are the + // "Generic" or "Old" BSON binary subtype as a Go byte slice instead of a Binary. + decodeBinaryAsSlice bool +} + +// Assert that emptyInterfaceCodec satisfies the typeDecoder interface, which allows it +// to be used by collection type decoders (e.g. map, slice, etc) to set individual values in a +// collection. +var _ typeDecoder = &emptyInterfaceCodec{} + +// EncodeValue is the ValueEncoderFunc for any. +func (eic *emptyInterfaceCodec) EncodeValue(ec EncodeContext, vw ValueWriter, val reflect.Value) error { + if !val.IsValid() || val.Type() != tEmpty { + return ValueEncoderError{Name: "EmptyInterfaceEncodeValue", Types: []reflect.Type{tEmpty}, Received: val} + } + + if val.IsNil() { + return vw.WriteNull() + } + encoder, err := ec.LookupEncoder(val.Elem().Type()) + if err != nil { + return err + } + + return encoder.EncodeValue(ec, vw, val.Elem()) +} + +func (eic *emptyInterfaceCodec) getEmptyInterfaceDecodeType(dc DecodeContext, valueType Type) (reflect.Type, error) { + isDocument := valueType == Type(0) || valueType == TypeEmbeddedDocument + if isDocument { + if dc.defaultDocumentType != nil { + // If the bsontype is an embedded document and the DocumentType is set on the DecodeContext, then return + // that type. + return dc.defaultDocumentType, nil + } + } + + rtype, err := dc.LookupTypeMapEntry(valueType) + if err == nil { + return rtype, nil + } + + if isDocument { + // For documents, fallback to looking up a type map entry for Type(0) or TypeEmbeddedDocument, + // depending on the original valueType. + var lookupType Type + switch valueType { + case Type(0): + lookupType = TypeEmbeddedDocument + case TypeEmbeddedDocument: + lookupType = Type(0) + } + + rtype, err = dc.LookupTypeMapEntry(lookupType) + if err == nil { + return rtype, nil + } + // fallback to bson.D + return tD, nil + } + + return nil, err +} + +func (eic *emptyInterfaceCodec) decodeType(dc DecodeContext, vr ValueReader, t reflect.Type) (reflect.Value, error) { + if t != tEmpty { + return emptyValue, ValueDecoderError{Name: "EmptyInterfaceDecodeValue", Types: []reflect.Type{tEmpty}, Received: reflect.Zero(t)} + } + + rtype, err := eic.getEmptyInterfaceDecodeType(dc, vr.Type()) + if err != nil { + switch vr.Type() { + case TypeNull: + return reflect.Zero(t), vr.ReadNull() + default: + return emptyValue, err + } + } + + decoder, err := dc.LookupDecoder(rtype) + if err != nil { + return emptyValue, err + } + + elem, err := decodeTypeOrValueWithInfo(decoder, dc, vr, rtype) + if err != nil { + return emptyValue, err + } + + if (eic.decodeBinaryAsSlice || dc.binaryAsSlice) && rtype == tBinary { + binElem := elem.Interface().(Binary) + if binElem.Subtype == TypeBinaryGeneric || binElem.Subtype == TypeBinaryBinaryOld { + elem = reflect.ValueOf(binElem.Data) + } + } + + return elem, nil +} + +// DecodeValue is the ValueDecoderFunc for any. +func (eic *emptyInterfaceCodec) DecodeValue(dc DecodeContext, vr ValueReader, val reflect.Value) error { + if !val.CanSet() || val.Type() != tEmpty { + return ValueDecoderError{Name: "EmptyInterfaceDecodeValue", Types: []reflect.Type{tEmpty}, Received: val} + } + + elem, err := eic.decodeType(dc, vr, val.Type()) + if err != nil { + return err + } + + val.Set(elem) + return nil +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/encoder.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/encoder.go new file mode 100644 index 000000000..d27bb7b59 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/encoder.go @@ -0,0 +1,130 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "reflect" + "sync" +) + +// This pool is used to keep the allocations of Encoders down. This is only used for the Marshal* +// methods and is not consumable from outside of this package. The Encoders retrieved from this pool +// must have both Reset and SetRegistry called on them. +var encPool = sync.Pool{ + New: func() any { + return new(Encoder) + }, +} + +// An Encoder writes a serialization format to an output stream. It writes to a ValueWriter +// as the destination of BSON data. +type Encoder struct { + ec EncodeContext + vw ValueWriter +} + +// NewEncoder returns a new encoder that writes to vw. +func NewEncoder(vw ValueWriter) *Encoder { + return &Encoder{ + ec: EncodeContext{Registry: defaultRegistry}, + vw: vw, + } +} + +// Encode writes the BSON encoding of val to the stream. +// +// See [Marshal] for details about BSON marshaling behavior. +func (e *Encoder) Encode(val any) error { + if marshaler, ok := val.(Marshaler); ok { + // TODO(skriptble): Should we have a MarshalAppender interface so that we can have []byte reuse? + buf, err := marshaler.MarshalBSON() + if err != nil { + return err + } + return copyDocumentFromBytes(e.vw, buf) + } + + encoder, err := e.ec.LookupEncoder(reflect.TypeOf(val)) + if err != nil { + return err + } + + return encoder.EncodeValue(e.ec, e.vw, reflect.ValueOf(val)) +} + +// Reset will reset the state of the Encoder, using the same *EncodeContext used in +// the original construction but using vw. +func (e *Encoder) Reset(vw ValueWriter) { + e.vw = vw +} + +// SetRegistry replaces the current registry of the Encoder with r. +func (e *Encoder) SetRegistry(r *Registry) { + e.ec.Registry = r +} + +// ErrorOnInlineDuplicates causes the Encoder to return an error if there is a duplicate field in +// the marshaled BSON when the "inline" struct tag option is set. +func (e *Encoder) ErrorOnInlineDuplicates() { + e.ec.errorOnInlineDuplicates = true +} + +// IntMinSize causes the Encoder to marshal Go integer values (int, int8, int16, int32, int64, uint, +// uint8, uint16, uint32, or uint64) as the minimum BSON int size (either 32 or 64 bits) that can +// represent the integer value. +func (e *Encoder) IntMinSize() { + e.ec.minSize = true +} + +// StringifyMapKeysWithFmt causes the Encoder to convert Go map keys to BSON document field name +// strings using fmt.Sprint instead of the default string conversion logic. +func (e *Encoder) StringifyMapKeysWithFmt() { + e.ec.stringifyMapKeysWithFmt = true +} + +// NilMapAsEmpty causes the Encoder to marshal nil Go maps as empty BSON documents instead of BSON +// null. +func (e *Encoder) NilMapAsEmpty() { + e.ec.nilMapAsEmpty = true +} + +// NilSliceAsEmpty causes the Encoder to marshal nil Go slices as empty BSON arrays instead of BSON +// null. +func (e *Encoder) NilSliceAsEmpty() { + e.ec.nilSliceAsEmpty = true +} + +// NilByteSliceAsEmpty causes the Encoder to marshal nil Go byte slices as empty BSON binary values +// instead of BSON null. +func (e *Encoder) NilByteSliceAsEmpty() { + e.ec.nilByteSliceAsEmpty = true +} + +// TODO(GODRIVER-2820): Update the description to remove the note about only examining exported +// TODO struct fields once the logic is updated to also inspect private struct fields. + +// OmitZeroStruct causes the Encoder to consider the zero value for a struct (e.g. MyStruct{}) +// as empty and omit it from the marshaled BSON when the "omitempty" struct tag option is set +// or the OmitEmpty() method is called. +// +// Note that the Encoder only examines exported struct fields when determining if a struct is the +// zero value. It considers pointers to a zero struct value (e.g. &MyStruct{}) not empty. +func (e *Encoder) OmitZeroStruct() { + e.ec.omitZeroStruct = true +} + +// OmitEmpty causes the Encoder to omit empty values from the marshaled BSON as the "omitempty" +// struct tag option is set. +func (e *Encoder) OmitEmpty() { + e.ec.omitEmpty = true +} + +// UseJSONStructTags causes the Encoder to fall back to using the "json" struct tag if a "bson" +// struct tag is not specified. +func (e *Encoder) UseJSONStructTags() { + e.ec.useJSONStructTags = true +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_parser.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_parser.go new file mode 100644 index 000000000..52cd7d855 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_parser.go @@ -0,0 +1,803 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "encoding/base64" + "encoding/hex" + "errors" + "fmt" + "io" + "strings" +) + +const maxNestingDepth = 200 + +// ErrInvalidJSON indicates the JSON input is invalid +var ErrInvalidJSON = errors.New("invalid JSON input") + +type jsonParseState byte + +const ( + jpsStartState jsonParseState = iota + jpsSawBeginObject + jpsSawEndObject + jpsSawBeginArray + jpsSawEndArray + jpsSawColon + jpsSawComma + jpsSawKey + jpsSawValue + jpsDoneState + jpsInvalidState +) + +type jsonParseMode byte + +const ( + jpmInvalidMode jsonParseMode = iota + jpmObjectMode + jpmArrayMode +) + +type extJSONValue struct { + t Type + v any +} + +type extJSONObject struct { + keys []string + values []*extJSONValue +} + +type extJSONParser struct { + js *jsonScanner + s jsonParseState + m []jsonParseMode + k string + v *extJSONValue + + err error + canonicalOnly bool + depth int + maxDepth int + + emptyObject bool + relaxedUUID bool +} + +// newExtJSONParser returns a new extended JSON parser, ready to to begin +// parsing from the first character of the argued json input. It will not +// perform any read-ahead and will therefore not report any errors about +// malformed JSON at this point. +func newExtJSONParser(r io.Reader, canonicalOnly bool) *extJSONParser { + return &extJSONParser{ + js: &jsonScanner{r: r}, + s: jpsStartState, + m: []jsonParseMode{}, + canonicalOnly: canonicalOnly, + maxDepth: maxNestingDepth, + } +} + +// peekType examines the next value and returns its BSON Type +func (ejp *extJSONParser) peekType() (Type, error) { + var t Type + var err error + initialState := ejp.s + + ejp.advanceState() + switch ejp.s { + case jpsSawValue: + t = ejp.v.t + case jpsSawBeginArray: + t = TypeArray + case jpsInvalidState: + err = ejp.err + case jpsSawComma: + // in array mode, seeing a comma means we need to progress again to actually observe a type + if ejp.peekMode() == jpmArrayMode { + return ejp.peekType() + } + case jpsSawEndArray: + // this would only be a valid state if we were in array mode, so return end-of-array error + err = ErrEOA + case jpsSawBeginObject: + // peek key to determine type + ejp.advanceState() + switch ejp.s { + case jpsSawEndObject: // empty embedded document + t = TypeEmbeddedDocument + ejp.emptyObject = true + case jpsInvalidState: + err = ejp.err + case jpsSawKey: + if initialState == jpsStartState { + return TypeEmbeddedDocument, nil + } + t = wrapperKeyBSONType(ejp.k) + + // if $uuid is encountered, parse as binary subtype 4 + if ejp.k == "$uuid" { + ejp.relaxedUUID = true + t = TypeBinary + } + + switch t { + case TypeJavaScript: + // just saw $code, need to check for $scope at same level + _, err = ejp.readValue(TypeJavaScript) + if err != nil { + break + } + + switch ejp.s { + case jpsSawEndObject: // type is TypeJavaScript + case jpsSawComma: + ejp.advanceState() + + if ejp.s == jpsSawKey && ejp.k == "$scope" { + t = TypeCodeWithScope + } else { + err = fmt.Errorf("invalid extended JSON: unexpected key %s in CodeWithScope object", ejp.k) + } + case jpsInvalidState: + err = ejp.err + default: + err = ErrInvalidJSON + } + case TypeCodeWithScope: + err = errors.New("invalid extended JSON: code with $scope must contain $code before $scope") + } + } + } + + return t, err +} + +// readKey parses the next key and its type and returns them +func (ejp *extJSONParser) readKey() (string, Type, error) { + if ejp.emptyObject { + ejp.emptyObject = false + return "", 0, ErrEOD + } + + // advance to key (or return with error) + switch ejp.s { + case jpsStartState: + ejp.advanceState() + if ejp.s == jpsSawBeginObject { + ejp.advanceState() + } + case jpsSawBeginObject: + ejp.advanceState() + case jpsSawValue, jpsSawEndObject, jpsSawEndArray: + ejp.advanceState() + switch ejp.s { + case jpsSawBeginObject, jpsSawComma: + ejp.advanceState() + case jpsSawEndObject: + return "", 0, ErrEOD + case jpsDoneState: + return "", 0, io.EOF + case jpsInvalidState: + return "", 0, ejp.err + default: + return "", 0, ErrInvalidJSON + } + case jpsSawKey: // do nothing (key was peeked before) + default: + return "", 0, invalidRequestError("key") + } + + // read key + var key string + + switch ejp.s { + case jpsSawKey: + key = ejp.k + case jpsSawEndObject: + return "", 0, ErrEOD + case jpsInvalidState: + return "", 0, ejp.err + default: + return "", 0, invalidRequestError("key") + } + + // check for colon + ejp.advanceState() + if err := ensureColon(ejp.s, key); err != nil { + return "", 0, err + } + + // peek at the value to determine type + t, err := ejp.peekType() + if err != nil { + return "", 0, err + } + + return key, t, nil +} + +// readValue returns the value corresponding to the Type returned by peekType +func (ejp *extJSONParser) readValue(t Type) (*extJSONValue, error) { + if ejp.s == jpsInvalidState { + return nil, ejp.err + } + + var v *extJSONValue + + switch t { + case TypeNull, TypeBoolean, TypeString: + if ejp.s != jpsSawValue { + return nil, invalidRequestError(t.String()) + } + v = ejp.v + case TypeInt32, TypeInt64, TypeDouble: + // relaxed version allows these to be literal number values + if ejp.s == jpsSawValue { + v = ejp.v + break + } + fallthrough + case TypeDecimal128, TypeSymbol, TypeObjectID, TypeMinKey, TypeMaxKey, TypeUndefined: + switch ejp.s { + case jpsSawKey: + // read colon + ejp.advanceState() + if err := ensureColon(ejp.s, ejp.k); err != nil { + return nil, err + } + + // read value + ejp.advanceState() + if ejp.s != jpsSawValue || !ejp.ensureExtValueType(t) { + return nil, invalidJSONErrorForType("value", t) + } + + v = ejp.v + + // read end object + ejp.advanceState() + if ejp.s != jpsSawEndObject { + return nil, invalidJSONErrorForType("} after value", t) + } + default: + return nil, invalidRequestError(t.String()) + } + case TypeBinary, TypeRegex, TypeTimestamp, TypeDBPointer: + if ejp.s != jpsSawKey { + return nil, invalidRequestError(t.String()) + } + // read colon + ejp.advanceState() + if err := ensureColon(ejp.s, ejp.k); err != nil { + return nil, err + } + + ejp.advanceState() + if t == TypeBinary && ejp.s == jpsSawValue { + // convert relaxed $uuid format + if ejp.relaxedUUID { + defer func() { ejp.relaxedUUID = false }() + uuid, err := ejp.v.parseSymbol() + if err != nil { + return nil, err + } + + // RFC 4122 defines the length of a UUID as 36 and the hyphens in a UUID as appearing + // in the 8th, 13th, 18th, and 23rd characters. + // + // See https://tools.ietf.org/html/rfc4122#section-3 + valid := len(uuid) == 36 && + string(uuid[8]) == "-" && + string(uuid[13]) == "-" && + string(uuid[18]) == "-" && + string(uuid[23]) == "-" + if !valid { + return nil, fmt.Errorf("$uuid value does not follow RFC 4122 format regarding length and hyphens") + } + + // remove hyphens + uuidNoHyphens := strings.ReplaceAll(uuid, "-", "") + if len(uuidNoHyphens) != 32 { + return nil, fmt.Errorf("$uuid value does not follow RFC 4122 format regarding length and hyphens") + } + + // convert hex to bytes + bytes, err := hex.DecodeString(uuidNoHyphens) + if err != nil { + return nil, fmt.Errorf("$uuid value does not follow RFC 4122 format regarding hex bytes: %w", err) + } + + ejp.advanceState() + if ejp.s != jpsSawEndObject { + return nil, invalidJSONErrorForType("$uuid and value and then }", TypeBinary) + } + + base64 := &extJSONValue{ + t: TypeString, + v: base64.StdEncoding.EncodeToString(bytes), + } + subType := &extJSONValue{ + t: TypeString, + v: "04", + } + + v = &extJSONValue{ + t: TypeEmbeddedDocument, + v: &extJSONObject{ + keys: []string{"base64", "subType"}, + values: []*extJSONValue{base64, subType}, + }, + } + + break + } + + // convert legacy $binary format + base64 := ejp.v + + ejp.advanceState() + if ejp.s != jpsSawComma { + return nil, invalidJSONErrorForType(",", TypeBinary) + } + + ejp.advanceState() + key, t, err := ejp.readKey() + if err != nil { + return nil, err + } + if key != "$type" { + return nil, invalidJSONErrorForType("$type", TypeBinary) + } + + subType, err := ejp.readValue(t) + if err != nil { + return nil, err + } + + ejp.advanceState() + if ejp.s != jpsSawEndObject { + return nil, invalidJSONErrorForType("2 key-value pairs and then }", TypeBinary) + } + + v = &extJSONValue{ + t: TypeEmbeddedDocument, + v: &extJSONObject{ + keys: []string{"base64", "subType"}, + values: []*extJSONValue{base64, subType}, + }, + } + break + } + + // read KV pairs + if ejp.s != jpsSawBeginObject { + return nil, invalidJSONErrorForType("{", t) + } + + keys, vals, err := ejp.readObject(2, true) + if err != nil { + return nil, err + } + + ejp.advanceState() + if ejp.s != jpsSawEndObject { + return nil, invalidJSONErrorForType("2 key-value pairs and then }", t) + } + + v = &extJSONValue{t: TypeEmbeddedDocument, v: &extJSONObject{keys: keys, values: vals}} + + case TypeDateTime: + switch ejp.s { + case jpsSawValue: + v = ejp.v + case jpsSawKey: + // read colon + ejp.advanceState() + if err := ensureColon(ejp.s, ejp.k); err != nil { + return nil, err + } + + ejp.advanceState() + switch ejp.s { + case jpsSawBeginObject: + keys, vals, err := ejp.readObject(1, true) + if err != nil { + return nil, err + } + v = &extJSONValue{t: TypeEmbeddedDocument, v: &extJSONObject{keys: keys, values: vals}} + case jpsSawValue: + if ejp.canonicalOnly { + return nil, invalidJSONError("{") + } + v = ejp.v + default: + if ejp.canonicalOnly { + return nil, invalidJSONErrorForType("object", t) + } + return nil, invalidJSONErrorForType("ISO-8601 Internet Date/Time Format as described in RFC-3339", t) + } + + ejp.advanceState() + if ejp.s != jpsSawEndObject { + return nil, invalidJSONErrorForType("value and then }", t) + } + default: + return nil, invalidRequestError(t.String()) + } + case TypeJavaScript: + switch ejp.s { + case jpsSawKey: + // read colon + ejp.advanceState() + if err := ensureColon(ejp.s, ejp.k); err != nil { + return nil, err + } + + // read value + ejp.advanceState() + if ejp.s != jpsSawValue { + return nil, invalidJSONErrorForType("value", t) + } + v = ejp.v + + // read end object or comma and just return + ejp.advanceState() + case jpsSawEndObject: + v = ejp.v + default: + return nil, invalidRequestError(t.String()) + } + case TypeCodeWithScope: + if ejp.s == jpsSawKey && ejp.k == "$scope" { + v = ejp.v // this is the $code string from earlier + + // read colon + ejp.advanceState() + if err := ensureColon(ejp.s, ejp.k); err != nil { + return nil, err + } + + // read { + ejp.advanceState() + if ejp.s != jpsSawBeginObject { + return nil, invalidJSONError("$scope to be embedded document") + } + } else { + return nil, invalidRequestError(t.String()) + } + case TypeEmbeddedDocument, TypeArray: + return nil, invalidRequestError(t.String()) + } + + return v, nil +} + +// readObject is a utility method for reading full objects of known (or expected) size +// it is useful for extended JSON types such as binary, datetime, regex, and timestamp +func (ejp *extJSONParser) readObject(numKeys int, started bool) ([]string, []*extJSONValue, error) { + keys := make([]string, numKeys) + vals := make([]*extJSONValue, numKeys) + + if !started { + ejp.advanceState() + if ejp.s != jpsSawBeginObject { + return nil, nil, invalidJSONError("{") + } + } + + for i := 0; i < numKeys; i++ { + key, t, err := ejp.readKey() + if err != nil { + return nil, nil, err + } + + switch ejp.s { + case jpsSawKey: + v, err := ejp.readValue(t) + if err != nil { + return nil, nil, err + } + + keys[i] = key + vals[i] = v + case jpsSawValue: + keys[i] = key + vals[i] = ejp.v + default: + return nil, nil, invalidJSONError("value") + } + } + + ejp.advanceState() + if ejp.s != jpsSawEndObject { + return nil, nil, invalidJSONError("}") + } + + return keys, vals, nil +} + +// advanceState reads the next JSON token from the scanner and transitions +// from the current state based on that token's type +func (ejp *extJSONParser) advanceState() { + if ejp.s == jpsDoneState || ejp.s == jpsInvalidState { + return + } + + jt, err := ejp.js.nextToken() + if err != nil { + ejp.err = err + ejp.s = jpsInvalidState + return + } + + valid := ejp.validateToken(jt.t) + if !valid { + ejp.err = unexpectedTokenError(jt) + ejp.s = jpsInvalidState + return + } + + switch jt.t { + case jttBeginObject: + ejp.s = jpsSawBeginObject + ejp.pushMode(jpmObjectMode) + ejp.depth++ + + if ejp.depth > ejp.maxDepth { + ejp.err = nestingDepthError(jt.p, ejp.depth) + ejp.s = jpsInvalidState + } + case jttEndObject: + ejp.s = jpsSawEndObject + ejp.depth-- + + if ejp.popMode() != jpmObjectMode { + ejp.err = unexpectedTokenError(jt) + ejp.s = jpsInvalidState + } + case jttBeginArray: + ejp.s = jpsSawBeginArray + ejp.pushMode(jpmArrayMode) + case jttEndArray: + ejp.s = jpsSawEndArray + + if ejp.popMode() != jpmArrayMode { + ejp.err = unexpectedTokenError(jt) + ejp.s = jpsInvalidState + } + case jttColon: + ejp.s = jpsSawColon + case jttComma: + ejp.s = jpsSawComma + case jttEOF: + ejp.s = jpsDoneState + if len(ejp.m) != 0 { + ejp.err = unexpectedTokenError(jt) + ejp.s = jpsInvalidState + } + case jttString: + switch ejp.s { + case jpsSawComma: + if ejp.peekMode() == jpmArrayMode { + ejp.s = jpsSawValue + ejp.v = extendJSONToken(jt) + return + } + fallthrough + case jpsSawBeginObject: + ejp.s = jpsSawKey + ejp.k = jt.v.(string) + return + } + fallthrough + default: + ejp.s = jpsSawValue + ejp.v = extendJSONToken(jt) + } +} + +var jpsValidTransitionTokens = map[jsonParseState]map[jsonTokenType]bool{ + jpsStartState: { + jttBeginObject: true, + jttBeginArray: true, + jttInt32: true, + jttInt64: true, + jttDouble: true, + jttString: true, + jttBool: true, + jttNull: true, + jttEOF: true, + }, + jpsSawBeginObject: { + jttEndObject: true, + jttString: true, + }, + jpsSawEndObject: { + jttEndObject: true, + jttEndArray: true, + jttComma: true, + jttEOF: true, + }, + jpsSawBeginArray: { + jttBeginObject: true, + jttBeginArray: true, + jttEndArray: true, + jttInt32: true, + jttInt64: true, + jttDouble: true, + jttString: true, + jttBool: true, + jttNull: true, + }, + jpsSawEndArray: { + jttEndObject: true, + jttEndArray: true, + jttComma: true, + jttEOF: true, + }, + jpsSawColon: { + jttBeginObject: true, + jttBeginArray: true, + jttInt32: true, + jttInt64: true, + jttDouble: true, + jttString: true, + jttBool: true, + jttNull: true, + }, + jpsSawComma: { + jttBeginObject: true, + jttBeginArray: true, + jttInt32: true, + jttInt64: true, + jttDouble: true, + jttString: true, + jttBool: true, + jttNull: true, + }, + jpsSawKey: { + jttColon: true, + }, + jpsSawValue: { + jttEndObject: true, + jttEndArray: true, + jttComma: true, + jttEOF: true, + }, + jpsDoneState: {}, + jpsInvalidState: {}, +} + +func (ejp *extJSONParser) validateToken(jtt jsonTokenType) bool { + switch ejp.s { + case jpsSawEndObject: + // if we are at depth zero and the next token is a '{', + // we can consider it valid only if we are not in array mode. + if jtt == jttBeginObject && ejp.depth == 0 { + return ejp.peekMode() != jpmArrayMode + } + case jpsSawComma: + switch ejp.peekMode() { + // the only valid next token after a comma inside a document is a string (a key) + case jpmObjectMode: + return jtt == jttString + case jpmInvalidMode: + return false + } + } + + _, ok := jpsValidTransitionTokens[ejp.s][jtt] + return ok +} + +// ensureExtValueType returns true if the current value has the expected +// value type for single-key extended JSON types. For example, +// {"$numberInt": v} v must be TypeString +func (ejp *extJSONParser) ensureExtValueType(t Type) bool { + switch t { + case TypeMinKey, TypeMaxKey: + return ejp.v.t == TypeInt32 + case TypeUndefined: + return ejp.v.t == TypeBoolean + case TypeInt32, TypeInt64, TypeDouble, TypeDecimal128, TypeSymbol, TypeObjectID: + return ejp.v.t == TypeString + default: + return false + } +} + +func (ejp *extJSONParser) pushMode(m jsonParseMode) { + ejp.m = append(ejp.m, m) +} + +func (ejp *extJSONParser) popMode() jsonParseMode { + l := len(ejp.m) + if l == 0 { + return jpmInvalidMode + } + + m := ejp.m[l-1] + ejp.m = ejp.m[:l-1] + + return m +} + +func (ejp *extJSONParser) peekMode() jsonParseMode { + l := len(ejp.m) + if l == 0 { + return jpmInvalidMode + } + + return ejp.m[l-1] +} + +func extendJSONToken(jt *jsonToken) *extJSONValue { + var t Type + + switch jt.t { + case jttInt32: + t = TypeInt32 + case jttInt64: + t = TypeInt64 + case jttDouble: + t = TypeDouble + case jttString: + t = TypeString + case jttBool: + t = TypeBoolean + case jttNull: + t = TypeNull + default: + return nil + } + + return &extJSONValue{t: t, v: jt.v} +} + +func ensureColon(s jsonParseState, key string) error { + if s != jpsSawColon { + return fmt.Errorf("invalid JSON input: missing colon after key \"%s\"", key) + } + + return nil +} + +func invalidRequestError(s string) error { + return fmt.Errorf("invalid request to read %s", s) +} + +func invalidJSONError(expected string) error { + return fmt.Errorf("invalid JSON input; expected %s", expected) +} + +func invalidJSONErrorForType(expected string, t Type) error { + return fmt.Errorf("invalid JSON input; expected %s for %s", expected, t) +} + +func unexpectedTokenError(jt *jsonToken) error { + switch jt.t { + case jttInt32, jttInt64, jttDouble: + return fmt.Errorf("invalid JSON input; unexpected number (%v) at position %d", jt.v, jt.p) + case jttString: + return fmt.Errorf("invalid JSON input; unexpected string (\"%v\") at position %d", jt.v, jt.p) + case jttBool: + return fmt.Errorf("invalid JSON input; unexpected boolean literal (%v) at position %d", jt.v, jt.p) + case jttNull: + return fmt.Errorf("invalid JSON input; unexpected null literal at position %d", jt.p) + case jttEOF: + return fmt.Errorf("invalid JSON input; unexpected end of input at position %d", jt.p) + default: + return fmt.Errorf("invalid JSON input; unexpected %c at position %d", jt.v.(byte), jt.p) + } +} + +func nestingDepthError(p, depth int) error { + return fmt.Errorf("invalid JSON input; nesting too deep (%d levels) at position %d", depth, p) +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_reader.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_reader.go new file mode 100644 index 000000000..339cdbbcb --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_reader.go @@ -0,0 +1,604 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 + +package bson + +import ( + "errors" + "fmt" + "io" +) + +type ejvrState struct { + mode mode + vType Type + depth int +} + +// extJSONValueReader is for reading extended JSON. +type extJSONValueReader struct { + p *extJSONParser + + stack []ejvrState + frame int +} + +// NewExtJSONValueReader returns a ValueReader that reads Extended JSON values +// from r. If canonicalOnly is true, reading values from the ValueReader returns +// an error if the Extended JSON was not marshaled in canonical mode. +func NewExtJSONValueReader(r io.Reader, canonicalOnly bool) (ValueReader, error) { + return newExtJSONValueReader(r, canonicalOnly) +} + +func newExtJSONValueReader(r io.Reader, canonicalOnly bool) (*extJSONValueReader, error) { + ejvr := new(extJSONValueReader) + return ejvr.reset(r, canonicalOnly) +} + +func (ejvr *extJSONValueReader) reset(r io.Reader, canonicalOnly bool) (*extJSONValueReader, error) { + p := newExtJSONParser(r, canonicalOnly) + typ, err := p.peekType() + if err != nil { + return nil, ErrInvalidJSON + } + + var m mode + switch typ { + case TypeEmbeddedDocument: + m = mTopLevel + case TypeArray: + m = mArray + default: + m = mValue + } + + stack := make([]ejvrState, 1, 5) + stack[0] = ejvrState{ + mode: m, + vType: typ, + } + return &extJSONValueReader{ + p: p, + stack: stack, + }, nil +} + +func (ejvr *extJSONValueReader) advanceFrame() { + if ejvr.frame+1 >= len(ejvr.stack) { // We need to grow the stack + length := len(ejvr.stack) + if length+1 >= cap(ejvr.stack) { + // double it + buf := make([]ejvrState, 2*cap(ejvr.stack)+1) + copy(buf, ejvr.stack) + ejvr.stack = buf + } + ejvr.stack = ejvr.stack[:length+1] + } + ejvr.frame++ + + // Clean the stack + ejvr.stack[ejvr.frame].mode = 0 + ejvr.stack[ejvr.frame].vType = 0 + ejvr.stack[ejvr.frame].depth = 0 +} + +func (ejvr *extJSONValueReader) pushDocument() { + ejvr.advanceFrame() + + ejvr.stack[ejvr.frame].mode = mDocument + ejvr.stack[ejvr.frame].depth = ejvr.p.depth +} + +func (ejvr *extJSONValueReader) pushCodeWithScope() { + ejvr.advanceFrame() + + ejvr.stack[ejvr.frame].mode = mCodeWithScope +} + +func (ejvr *extJSONValueReader) pushArray() { + ejvr.advanceFrame() + + ejvr.stack[ejvr.frame].mode = mArray +} + +func (ejvr *extJSONValueReader) push(m mode, t Type) { + ejvr.advanceFrame() + + ejvr.stack[ejvr.frame].mode = m + ejvr.stack[ejvr.frame].vType = t +} + +func (ejvr *extJSONValueReader) pop() { + switch ejvr.stack[ejvr.frame].mode { + case mElement, mValue: + ejvr.frame-- + case mDocument, mArray, mCodeWithScope: + ejvr.frame -= 2 // we pop twice to jump over the vrElement: vrDocument -> vrElement -> vrDocument/TopLevel/etc... + } +} + +func (ejvr *extJSONValueReader) skipObject() { + // read entire object until depth returns to 0 (last ending } or ] seen) + depth := 1 + for depth > 0 { + ejvr.p.advanceState() + + // If object is empty, raise depth and continue. When emptyObject is true, the + // parser has already read both the opening and closing brackets of an empty + // object ("{}"), so the next valid token will be part of the parent document, + // not part of the nested document. + // + // If there is a comma, there are remaining fields, emptyObject must be set back + // to false, and comma must be skipped with advanceState(). + if ejvr.p.emptyObject { + if ejvr.p.s == jpsSawComma { + ejvr.p.emptyObject = false + ejvr.p.advanceState() + } + depth-- + continue + } + + switch ejvr.p.s { + case jpsSawBeginObject, jpsSawBeginArray: + depth++ + case jpsSawEndObject, jpsSawEndArray: + depth-- + } + } +} + +func (ejvr *extJSONValueReader) invalidTransitionErr(destination mode, name string, modes []mode) error { + te := TransitionError{ + name: name, + current: ejvr.stack[ejvr.frame].mode, + destination: destination, + modes: modes, + action: "read", + } + if ejvr.frame != 0 { + te.parent = ejvr.stack[ejvr.frame-1].mode + } + return te +} + +func (ejvr *extJSONValueReader) typeError(t Type) error { + return fmt.Errorf("positioned on %s, but attempted to read %s", ejvr.stack[ejvr.frame].vType, t) +} + +func (ejvr *extJSONValueReader) ensureElementValue(t Type, destination mode, callerName string, addModes ...mode) error { + switch ejvr.stack[ejvr.frame].mode { + case mElement, mValue: + if ejvr.stack[ejvr.frame].vType != t { + return ejvr.typeError(t) + } + default: + modes := []mode{mElement, mValue} + if addModes != nil { + modes = append(modes, addModes...) + } + return ejvr.invalidTransitionErr(destination, callerName, modes) + } + + return nil +} + +func (ejvr *extJSONValueReader) Type() Type { + return ejvr.stack[ejvr.frame].vType +} + +func (ejvr *extJSONValueReader) Skip() error { + switch ejvr.stack[ejvr.frame].mode { + case mElement, mValue: + default: + return ejvr.invalidTransitionErr(0, "Skip", []mode{mElement, mValue}) + } + + defer ejvr.pop() + + t := ejvr.stack[ejvr.frame].vType + switch t { + case TypeArray, TypeEmbeddedDocument, TypeCodeWithScope: + // read entire array, doc or CodeWithScope + ejvr.skipObject() + default: + _, err := ejvr.p.readValue(t) + if err != nil { + return err + } + } + + return nil +} + +func (ejvr *extJSONValueReader) ReadArray() (ArrayReader, error) { + switch ejvr.stack[ejvr.frame].mode { + case mTopLevel: // allow reading array from top level + case mArray: + return ejvr, nil + default: + if err := ejvr.ensureElementValue(TypeArray, mArray, "ReadArray", mTopLevel, mArray); err != nil { + return nil, err + } + } + + ejvr.pushArray() + + return ejvr, nil +} + +func (ejvr *extJSONValueReader) ReadBinary() (b []byte, btype byte, err error) { + if err := ejvr.ensureElementValue(TypeBinary, 0, "ReadBinary"); err != nil { + return nil, 0, err + } + + v, err := ejvr.p.readValue(TypeBinary) + if err != nil { + return nil, 0, err + } + + b, btype, err = v.parseBinary() + + ejvr.pop() + return b, btype, err +} + +func (ejvr *extJSONValueReader) ReadBoolean() (bool, error) { + if err := ejvr.ensureElementValue(TypeBoolean, 0, "ReadBoolean"); err != nil { + return false, err + } + + v, err := ejvr.p.readValue(TypeBoolean) + if err != nil { + return false, err + } + + if v.t != TypeBoolean { + return false, fmt.Errorf("expected type bool, but got type %s", v.t) + } + + ejvr.pop() + return v.v.(bool), nil +} + +func (ejvr *extJSONValueReader) ReadDocument() (DocumentReader, error) { + switch ejvr.stack[ejvr.frame].mode { + case mTopLevel: + return ejvr, nil + case mElement, mValue: + if ejvr.stack[ejvr.frame].vType != TypeEmbeddedDocument { + return nil, ejvr.typeError(TypeEmbeddedDocument) + } + + ejvr.pushDocument() + return ejvr, nil + default: + return nil, ejvr.invalidTransitionErr(mDocument, "ReadDocument", []mode{mTopLevel, mElement, mValue}) + } +} + +func (ejvr *extJSONValueReader) ReadCodeWithScope() (code string, dr DocumentReader, err error) { + if err = ejvr.ensureElementValue(TypeCodeWithScope, 0, "ReadCodeWithScope"); err != nil { + return "", nil, err + } + + v, err := ejvr.p.readValue(TypeCodeWithScope) + if err != nil { + return "", nil, err + } + + code, err = v.parseJavascript() + + ejvr.pushCodeWithScope() + return code, ejvr, err +} + +func (ejvr *extJSONValueReader) ReadDBPointer() (ns string, oid ObjectID, err error) { + if err = ejvr.ensureElementValue(TypeDBPointer, 0, "ReadDBPointer"); err != nil { + return "", NilObjectID, err + } + + v, err := ejvr.p.readValue(TypeDBPointer) + if err != nil { + return "", NilObjectID, err + } + + ns, oid, err = v.parseDBPointer() + + ejvr.pop() + return ns, oid, err +} + +func (ejvr *extJSONValueReader) ReadDateTime() (int64, error) { + if err := ejvr.ensureElementValue(TypeDateTime, 0, "ReadDateTime"); err != nil { + return 0, err + } + + v, err := ejvr.p.readValue(TypeDateTime) + if err != nil { + return 0, err + } + + d, err := v.parseDateTime() + + ejvr.pop() + return d, err +} + +func (ejvr *extJSONValueReader) ReadDecimal128() (Decimal128, error) { + if err := ejvr.ensureElementValue(TypeDecimal128, 0, "ReadDecimal128"); err != nil { + return Decimal128{}, err + } + + v, err := ejvr.p.readValue(TypeDecimal128) + if err != nil { + return Decimal128{}, err + } + + d, err := v.parseDecimal128() + + ejvr.pop() + return d, err +} + +func (ejvr *extJSONValueReader) ReadDouble() (float64, error) { + if err := ejvr.ensureElementValue(TypeDouble, 0, "ReadDouble"); err != nil { + return 0, err + } + + v, err := ejvr.p.readValue(TypeDouble) + if err != nil { + return 0, err + } + + d, err := v.parseDouble() + + ejvr.pop() + return d, err +} + +func (ejvr *extJSONValueReader) ReadInt32() (int32, error) { + if err := ejvr.ensureElementValue(TypeInt32, 0, "ReadInt32"); err != nil { + return 0, err + } + + v, err := ejvr.p.readValue(TypeInt32) + if err != nil { + return 0, err + } + + i, err := v.parseInt32() + + ejvr.pop() + return i, err +} + +func (ejvr *extJSONValueReader) ReadInt64() (int64, error) { + if err := ejvr.ensureElementValue(TypeInt64, 0, "ReadInt64"); err != nil { + return 0, err + } + + v, err := ejvr.p.readValue(TypeInt64) + if err != nil { + return 0, err + } + + i, err := v.parseInt64() + + ejvr.pop() + return i, err +} + +func (ejvr *extJSONValueReader) ReadJavascript() (code string, err error) { + if err = ejvr.ensureElementValue(TypeJavaScript, 0, "ReadJavascript"); err != nil { + return "", err + } + + v, err := ejvr.p.readValue(TypeJavaScript) + if err != nil { + return "", err + } + + code, err = v.parseJavascript() + + ejvr.pop() + return code, err +} + +func (ejvr *extJSONValueReader) ReadMaxKey() error { + if err := ejvr.ensureElementValue(TypeMaxKey, 0, "ReadMaxKey"); err != nil { + return err + } + + v, err := ejvr.p.readValue(TypeMaxKey) + if err != nil { + return err + } + + err = v.parseMinMaxKey("max") + + ejvr.pop() + return err +} + +func (ejvr *extJSONValueReader) ReadMinKey() error { + if err := ejvr.ensureElementValue(TypeMinKey, 0, "ReadMinKey"); err != nil { + return err + } + + v, err := ejvr.p.readValue(TypeMinKey) + if err != nil { + return err + } + + err = v.parseMinMaxKey("min") + + ejvr.pop() + return err +} + +func (ejvr *extJSONValueReader) ReadNull() error { + if err := ejvr.ensureElementValue(TypeNull, 0, "ReadNull"); err != nil { + return err + } + + v, err := ejvr.p.readValue(TypeNull) + if err != nil { + return err + } + + if v.t != TypeNull { + return fmt.Errorf("expected type null but got type %s", v.t) + } + + ejvr.pop() + return nil +} + +func (ejvr *extJSONValueReader) ReadObjectID() (ObjectID, error) { + if err := ejvr.ensureElementValue(TypeObjectID, 0, "ReadObjectID"); err != nil { + return ObjectID{}, err + } + + v, err := ejvr.p.readValue(TypeObjectID) + if err != nil { + return ObjectID{}, err + } + + oid, err := v.parseObjectID() + + ejvr.pop() + return oid, err +} + +func (ejvr *extJSONValueReader) ReadRegex() (pattern string, options string, err error) { + if err = ejvr.ensureElementValue(TypeRegex, 0, "ReadRegex"); err != nil { + return "", "", err + } + + v, err := ejvr.p.readValue(TypeRegex) + if err != nil { + return "", "", err + } + + pattern, options, err = v.parseRegex() + + ejvr.pop() + return pattern, options, err +} + +func (ejvr *extJSONValueReader) ReadString() (string, error) { + if err := ejvr.ensureElementValue(TypeString, 0, "ReadString"); err != nil { + return "", err + } + + v, err := ejvr.p.readValue(TypeString) + if err != nil { + return "", err + } + + if v.t != TypeString { + return "", fmt.Errorf("expected type string but got type %s", v.t) + } + + ejvr.pop() + return v.v.(string), nil +} + +func (ejvr *extJSONValueReader) ReadSymbol() (symbol string, err error) { + if err = ejvr.ensureElementValue(TypeSymbol, 0, "ReadSymbol"); err != nil { + return "", err + } + + v, err := ejvr.p.readValue(TypeSymbol) + if err != nil { + return "", err + } + + symbol, err = v.parseSymbol() + + ejvr.pop() + return symbol, err +} + +func (ejvr *extJSONValueReader) ReadTimestamp() (t uint32, i uint32, err error) { + if err = ejvr.ensureElementValue(TypeTimestamp, 0, "ReadTimestamp"); err != nil { + return 0, 0, err + } + + v, err := ejvr.p.readValue(TypeTimestamp) + if err != nil { + return 0, 0, err + } + + t, i, err = v.parseTimestamp() + + ejvr.pop() + return t, i, err +} + +func (ejvr *extJSONValueReader) ReadUndefined() error { + if err := ejvr.ensureElementValue(TypeUndefined, 0, "ReadUndefined"); err != nil { + return err + } + + v, err := ejvr.p.readValue(TypeUndefined) + if err != nil { + return err + } + + err = v.parseUndefined() + + ejvr.pop() + return err +} + +func (ejvr *extJSONValueReader) ReadElement() (string, ValueReader, error) { + switch ejvr.stack[ejvr.frame].mode { + case mTopLevel, mDocument, mCodeWithScope: + default: + return "", nil, ejvr.invalidTransitionErr(mElement, "ReadElement", []mode{mTopLevel, mDocument, mCodeWithScope}) + } + + name, t, err := ejvr.p.readKey() + if err != nil { + if errors.Is(err, ErrEOD) { + if ejvr.stack[ejvr.frame].mode == mCodeWithScope { + _, err := ejvr.p.peekType() + if err != nil { + return "", nil, err + } + } + + ejvr.pop() + } + + return "", nil, err + } + + ejvr.push(mElement, t) + return name, ejvr, nil +} + +func (ejvr *extJSONValueReader) ReadValue() (ValueReader, error) { + switch ejvr.stack[ejvr.frame].mode { + case mArray: + default: + return nil, ejvr.invalidTransitionErr(mValue, "ReadValue", []mode{mArray}) + } + + t, err := ejvr.p.peekType() + if err != nil { + if errors.Is(err, ErrEOA) { + ejvr.pop() + } + + return nil, err + } + + ejvr.push(mValue, t) + return ejvr, nil +} diff --git a/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_tables.go b/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_tables.go new file mode 100644 index 000000000..5384db225 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/v2/bson/extjson_tables.go @@ -0,0 +1,223 @@ +// Copyright (C) MongoDB, Inc. 2017-present. +// +// 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 +// +// Based on github.com/golang/go by The Go Authors +// See THIRD-PARTY-NOTICES for original license terms. + +package bson + +import "unicode/utf8" + +// safeSet holds the value true if the ASCII character with the given array +// position can be represented inside a JSON string without any further +// escaping. +// +// All values are true except for the ASCII control characters (0-31), the +// double quote ("), and the backslash character ("\"). +var safeSet = [utf8.RuneSelf]bool{ + ' ': true, + '!': true, + '"': false, + '#': true, + '$': true, + '%': true, + '&': true, + '\'': true, + '(': true, + ')': true, + '*': true, + '+': true, + ',': true, + '-': true, + '.': true, + '/': true, + '0': true, + '1': true, + '2': true, + '3': true, + '4': true, + '5': true, + '6': true, + '7': true, + '8': true, + '9': true, + ':': true, + ';': true, + '<': true, + '=': true, + '>': true, + '?': true, + '@': true, + 'A': true, + 'B': true, + 'C': true, + 'D': true, + 'E': true, + 'F': true, + 'G': true, + 'H': true, + 'I': true, + 'J': true, + 'K': true, + 'L': true, + 'M': true, + 'N': true, + 'O': true, + 'P': true, + 'Q': true, + 'R': true, + 'S': true, + 'T': true, + 'U': true, + 'V': true, + 'W': true, + 'X': true, + 'Y': true, + 'Z': true, + '[': true, + '\\': false, + ']': true, + '^': true, + '_': true, + '`': true, + 'a': true, + 'b': true, + 'c': true, + 'd': true, + 'e': true, + 'f': true, + 'g': true, + 'h': true, + 'i': true, + 'j': true, + 'k': true, + 'l': true, + 'm': true, + 'n': true, + 'o': true, + 'p': true, + 'q': true, + 'r': true, + 's': true, + 't': true, + 'u': true, + 'v': true, + 'w': true, + 'x': true, + 'y': true, + 'z': true, + '{': true, + '|': true, + '}': true, + '~': true, + '\u007f': true, +} + +// htmlSafeSet holds the value true if the ASCII character with the given +// array position can be safely represented inside a JSON string, embedded +// inside of HTML