From c758fc03156d0dd4205e3845c30f2ff8c21b999a Mon Sep 17 00:00:00 2001 From: YANGGMM Date: Thu, 21 Dec 2023 22:18:04 +0800 Subject: [PATCH] fix show subscriptions (#1.0-dev) (#13599) fix show subscriptions Approved by: @iamlinjunhong, @qingxinhome, @heni02, @nnsgmsone, @ouyuanning, @sukki37 --- pkg/frontend/compiler_context.go | 5 +- pkg/frontend/mysql_cmd_executor.go | 61 +- pkg/frontend/mysql_cmd_executor_test.go | 4 +- pkg/frontend/plsql_interpreter.go | 6 +- pkg/frontend/session.go | 22 +- pkg/frontend/session_test.go | 2 +- pkg/frontend/status_stmt.go | 4 +- pkg/frontend/types.go | 1 + pkg/frontend/util.go | 55 + pkg/frontend/util_test.go | 156 ++- pkg/frontend/variables.go | 5 + pkg/pb/plan/plan.pb.go | 1218 +++++++++-------- pkg/sql/compile/ddl.go | 5 +- pkg/sql/parsers/dialect/mysql/mysql_sql.go | 2 +- pkg/sql/parsers/tree/create.go | 1 + pkg/sql/plan/build_ddl.go | 1 + proto/plan.proto | 1 + .../statement_query_type.result | 2 +- test/distributed/cases/tenant/pub_sub1.result | 16 +- test/distributed/cases/tenant/pub_sub1.sql | 22 +- 20 files changed, 957 insertions(+), 632 deletions(-) diff --git a/pkg/frontend/compiler_context.go b/pkg/frontend/compiler_context.go index de3526265927c..97046e3183203 100644 --- a/pkg/frontend/compiler_context.go +++ b/pkg/frontend/compiler_context.go @@ -401,7 +401,10 @@ func (tcc *TxnCompilerContext) ResolveVariable(varName string, isSystemVar, isGl } } else { _, val, err := tcc.GetSession().GetUserDefinedVar(varName) - return val, err + if val == nil { + return nil, err + } + return val.Value, err } } diff --git a/pkg/frontend/mysql_cmd_executor.go b/pkg/frontend/mysql_cmd_executor.go index 941668dbc612a..1e658a5f1c89a 100644 --- a/pkg/frontend/mysql_cmd_executor.go +++ b/pkg/frontend/mysql_cmd_executor.go @@ -231,8 +231,19 @@ var RecordStatement = func(ctx context.Context, ses *Session, proc *process.Proc if cw != nil { copy(stmID[:], cw.GetUUID()) statement = cw.GetAst() + ses.ast = statement - text = SubStringFromBegin(envStmt, int(ses.GetParameterUnit().SV.LengthOfQueryPrinted)) + + execSql := makeExecuteSql(ses, statement) + if len(execSql) != 0 { + bb := strings.Builder{} + bb.WriteString(envStmt) + bb.WriteString(" // ") + bb.WriteString(execSql) + text = SubStringFromBegin(bb.String(), int(ses.GetParameterUnit().SV.LengthOfQueryPrinted)) + } else { + text = SubStringFromBegin(envStmt, int(ses.GetParameterUnit().SV.LengthOfQueryPrinted)) + } } else { stmID = uuid.New() text = SubStringFromBegin(envStmt, int(ses.GetParameterUnit().SV.LengthOfQueryPrinted)) @@ -554,7 +565,11 @@ func (mce *MysqlCmdExecutor) handleSelectVariables(ve *tree.VarExpr, cwIndex, cw if err != nil { return err } - row[0] = val + if val != nil { + row[0] = val.Value + } else { + row[0] = nil + } } mrs.AddRow(row) @@ -671,10 +686,10 @@ func (mce *MysqlCmdExecutor) handleCmdFieldList(requestCtx context.Context, icfl return err } -func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree.SetVar) error { +func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree.SetVar, sql string) error { var err error = nil var ok bool - setVarFunc := func(system, global bool, name string, value interface{}) error { + setVarFunc := func(system, global bool, name string, value interface{}, sql string) error { if system { if global { err = doCheckRole(ctx, ses) @@ -707,7 +722,7 @@ func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree } } } else { - err = ses.SetUserDefinedVar(name, value) + err = ses.SetUserDefinedVar(name, value, sql) if err != nil { return err } @@ -737,7 +752,7 @@ func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree "character_set_client", "character_set_connection", "character_set_results", } for _, rb := range replacedBy { - err = setVarFunc(assign.System, assign.Global, rb, value) + err = setVarFunc(assign.System, assign.Global, rb, value, sql) if err != nil { return err } @@ -746,7 +761,7 @@ func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree if !ses.GetTenantInfo().IsSysTenant() { return moerr.NewInternalError(ses.GetRequestContext(), "only system account can set system variable syspublications") } - err = setVarFunc(assign.System, assign.Global, name, value) + err = setVarFunc(assign.System, assign.Global, name, value, sql) if err != nil { return err } @@ -765,7 +780,7 @@ func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree cache.invalidate() } } - err = setVarFunc(assign.System, assign.Global, name, value) + err = setVarFunc(assign.System, assign.Global, name, value, sql) if err != nil { return err } @@ -783,24 +798,24 @@ func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree cache.invalidate() } } - err = setVarFunc(assign.System, assign.Global, name, value) + err = setVarFunc(assign.System, assign.Global, name, value, sql) if err != nil { return err } } else if name == "runtime_filter_limit_in" { - err = setVarFunc(assign.System, assign.Global, name, value) + err = setVarFunc(assign.System, assign.Global, name, value, sql) if err != nil { return err } runtime.ProcessLevelRuntime().SetGlobalVariables("runtime_filter_limit_in", value) } else if name == "runtime_filter_limit_bloom_filter" { - err = setVarFunc(assign.System, assign.Global, name, value) + err = setVarFunc(assign.System, assign.Global, name, value, sql) if err != nil { return err } runtime.ProcessLevelRuntime().SetGlobalVariables("runtime_filter_limit_bloom_filter", value) } else { - err = setVarFunc(assign.System, assign.Global, name, value) + err = setVarFunc(assign.System, assign.Global, name, value, sql) if err != nil { return err } @@ -812,9 +827,9 @@ func doSetVar(ctx context.Context, mce *MysqlCmdExecutor, ses *Session, sv *tree /* handle setvar */ -func (mce *MysqlCmdExecutor) handleSetVar(ctx context.Context, sv *tree.SetVar) error { +func (mce *MysqlCmdExecutor) handleSetVar(ctx context.Context, sv *tree.SetVar, sql string) error { ses := mce.GetSession() - err := doSetVar(ctx, mce, ses, sv) + err := doSetVar(ctx, mce, ses, sv, sql) if err != nil { return err } @@ -1135,7 +1150,7 @@ func (mce *MysqlCmdExecutor) handleExplainStmt(requestCtx context.Context, stmt return nil } -func doPrepareStmt(ctx context.Context, ses *Session, st *tree.PrepareStmt) (*PrepareStmt, error) { +func doPrepareStmt(ctx context.Context, ses *Session, st *tree.PrepareStmt, sql string) (*PrepareStmt, error) { preparePlan, err := buildPlan(ctx, ses, ses.GetTxnCompileCtx(), st) if err != nil { return nil, err @@ -1143,6 +1158,7 @@ func doPrepareStmt(ctx context.Context, ses *Session, st *tree.PrepareStmt) (*Pr prepareStmt := &PrepareStmt{ Name: preparePlan.GetDcl().GetPrepare().GetName(), + Sql: sql, PreparePlan: preparePlan, PrepareStmt: st.Stmt, getFromSendLongData: make(map[int]struct{}), @@ -1154,8 +1170,8 @@ func doPrepareStmt(ctx context.Context, ses *Session, st *tree.PrepareStmt) (*Pr } // handlePrepareStmt -func (mce *MysqlCmdExecutor) handlePrepareStmt(ctx context.Context, st *tree.PrepareStmt) (*PrepareStmt, error) { - return doPrepareStmt(ctx, mce.GetSession(), st) +func (mce *MysqlCmdExecutor) handlePrepareStmt(ctx context.Context, st *tree.PrepareStmt, sql string) (*PrepareStmt, error) { + return doPrepareStmt(ctx, mce.GetSession(), st, sql) } func doPrepareString(ctx context.Context, ses *Session, st *tree.PrepareString) (*PrepareStmt, error) { @@ -1174,6 +1190,7 @@ func doPrepareString(ctx context.Context, ses *Session, st *tree.PrepareString) } prepareStmt := &PrepareStmt{ Name: preparePlan.GetDcl().GetPrepare().GetName(), + Sql: st.Sql, PreparePlan: preparePlan, PrepareStmt: stmts[0], } @@ -2583,6 +2600,7 @@ func (mce *MysqlCmdExecutor) executeStmt(requestCtx context.Context, pu *config.ParameterUnit, tenant string, userName string, + sql string, ) (err error) { var span trace.Span @@ -2933,6 +2951,7 @@ func (mce *MysqlCmdExecutor) executeStmt(requestCtx context.Context, err = moerr.NewInternalError(proc.Ctx, "only admin can create subscription") return } + st.Sql = sql case *tree.DropDatabase: err = inputNameIsInvalid(proc.Ctx, string(st.Name)) if err != nil { @@ -2945,7 +2964,7 @@ func (mce *MysqlCmdExecutor) executeStmt(requestCtx context.Context, } case *tree.PrepareStmt: selfHandle = true - prepareStmt, err = mce.handlePrepareStmt(requestCtx, st) + prepareStmt, err = mce.handlePrepareStmt(requestCtx, st, sql) if err != nil { return err } @@ -2979,7 +2998,7 @@ func (mce *MysqlCmdExecutor) executeStmt(requestCtx context.Context, } case *tree.SetVar: selfHandle = true - err = mce.handleSetVar(requestCtx, st) + err = mce.handleSetVar(requestCtx, st, sql) if err != nil { return err } @@ -3223,7 +3242,7 @@ func (mce *MysqlCmdExecutor) executeStmt(requestCtx context.Context, // reset some special stmt for execute statement switch st := stmt.(type) { case *tree.SetVar: - err = mce.handleSetVar(requestCtx, st) + err = mce.handleSetVar(requestCtx, st, sql) if err != nil { return err } else { @@ -3703,7 +3722,7 @@ func (mce *MysqlCmdExecutor) doComQuery(requestCtx context.Context, input *UserI ses.proc.UnixTime = proc.UnixTime } - err = mce.executeStmt(requestCtx, ses, stmt, proc, cw, i, cws, proto, pu, tenant, userNameOnly) + err = mce.executeStmt(requestCtx, ses, stmt, proc, cw, i, cws, proto, pu, tenant, userNameOnly, sqlRecord[i]) if err != nil { return err } diff --git a/pkg/frontend/mysql_cmd_executor_test.go b/pkg/frontend/mysql_cmd_executor_test.go index fe301e39b2b0e..bf19e5510b7bd 100644 --- a/pkg/frontend/mysql_cmd_executor_test.go +++ b/pkg/frontend/mysql_cmd_executor_test.go @@ -440,7 +440,7 @@ func Test_mce_selfhandle(t *testing.T) { setVar, err := parsers.ParseOne(ctx, dialect.MYSQL, set, 1) convey.So(err, convey.ShouldBeNil) - err = mce.handleSetVar(ctx, setVar.(*tree.SetVar)) + err = mce.handleSetVar(ctx, setVar.(*tree.SetVar), "") convey.So(err, convey.ShouldBeNil) req := &Request{ @@ -871,7 +871,7 @@ func Test_HandlePrepareStmt(t *testing.T) { } runTestHandle("handlePrepareStmt", t, func(mce *MysqlCmdExecutor) error { stmt := stmt.(*tree.PrepareStmt) - _, err := mce.handlePrepareStmt(context.TODO(), stmt) + _, err := mce.handlePrepareStmt(context.TODO(), stmt, "") return err }) } diff --git a/pkg/frontend/plsql_interpreter.go b/pkg/frontend/plsql_interpreter.go index 7e46e25a5c046..955708be8563d 100644 --- a/pkg/frontend/plsql_interpreter.go +++ b/pkg/frontend/plsql_interpreter.go @@ -101,7 +101,7 @@ func (interpreter *Interpreter) FlushParam() error { // save INOUT at session interpreter.bh.ClearExecResultSet() // system setvar execution - err := interpreter.ses.SetUserDefinedVar(interpreter.argsMap[k].(*tree.VarExpr).Name, v) + err := interpreter.ses.SetUserDefinedVar(interpreter.argsMap[k].(*tree.VarExpr).Name, v, "") if err != nil { return err } @@ -112,7 +112,7 @@ func (interpreter *Interpreter) FlushParam() error { // save at session interpreter.bh.ClearExecResultSet() // system setvar execution - err := interpreter.ses.SetUserDefinedVar(interpreter.argsMap[k].(*tree.VarExpr).Name, v) + err := interpreter.ses.SetUserDefinedVar(interpreter.argsMap[k].(*tree.VarExpr).Name, v, "") if err != nil { return err } @@ -262,7 +262,7 @@ func (interpreter *Interpreter) ExecuteSp(stmt tree.Statement, dbName string) (e return moerr.NewNotSupported(interpreter.ctx, fmt.Sprintf("parameter %s with type INOUT or IN has to have a specified value.", k)) } // save param to local var scope - (*interpreter.varScope)[len(*interpreter.varScope)-1][strings.ToLower(k)] = value + (*interpreter.varScope)[len(*interpreter.varScope)-1][strings.ToLower(k)] = value.Value } } else { // if param type is INOUT or OUT and the param is not provided with variable expr, raise an error diff --git a/pkg/frontend/session.go b/pkg/frontend/session.go index 4b2ae07d368c6..cf6f1b24f75df 100644 --- a/pkg/frontend/session.go +++ b/pkg/frontend/session.go @@ -102,7 +102,7 @@ type Session struct { sql string sysVars map[string]interface{} - userDefinedVars map[string]interface{} + userDefinedVars map[string]*UserDefinedVar gSysVars *GlobalSystemVariables //the server status @@ -543,7 +543,7 @@ func NewSession(proto Protocol, mp *mpool.MPool, pu *config.ParameterUnit, } if isNotBackgroundSession { ses.sysVars = gSysVars.CopySysVarsToSession() - ses.userDefinedVars = make(map[string]interface{}) + ses.userDefinedVars = make(map[string]*UserDefinedVar) ses.prepareStmts = make(map[string]*PrepareStmt) ses.statsCache = plan2.NewStatsCache() // For seq init values. @@ -1166,11 +1166,13 @@ func (ses *Session) SetPrepareStmt(name string, prepareStmt *PrepareStmt) error } else { stmt.Close() } - isInsertValues, exprList := checkPlanIsInsertValues(ses.proc, - prepareStmt.PreparePlan.GetDcl().GetPrepare().GetPlan()) - if isInsertValues { - prepareStmt.proc = ses.proc - prepareStmt.exprList = exprList + if prepareStmt != nil && prepareStmt.PreparePlan != nil { + isInsertValues, exprList := checkPlanIsInsertValues(ses.proc, + prepareStmt.PreparePlan.GetDcl().GetPrepare().GetPlan()) + if isInsertValues { + prepareStmt.proc = ses.proc + prepareStmt.exprList = exprList + } } ses.prepareStmts[name] = prepareStmt @@ -1323,15 +1325,15 @@ func (ses *Session) CopyAllSessionVars() map[string]interface{} { } // SetUserDefinedVar sets the user defined variable to the value in session -func (ses *Session) SetUserDefinedVar(name string, value interface{}) error { +func (ses *Session) SetUserDefinedVar(name string, value interface{}, sql string) error { ses.mu.Lock() defer ses.mu.Unlock() - ses.userDefinedVars[strings.ToLower(name)] = value + ses.userDefinedVars[strings.ToLower(name)] = &UserDefinedVar{Value: value, Sql: sql} return nil } // GetUserDefinedVar gets value of the user defined variable -func (ses *Session) GetUserDefinedVar(name string) (SystemVariableType, interface{}, error) { +func (ses *Session) GetUserDefinedVar(name string) (SystemVariableType, *UserDefinedVar, error) { ses.mu.Lock() defer ses.mu.Unlock() val, ok := ses.userDefinedVars[strings.ToLower(name)] diff --git a/pkg/frontend/session_test.go b/pkg/frontend/session_test.go index ef720a7a71b5c..9c35f8fbdfc3e 100644 --- a/pkg/frontend/session_test.go +++ b/pkg/frontend/session_test.go @@ -521,7 +521,7 @@ func TestVariables(t *testing.T) { vars := ses.CopyAllSessionVars() convey.So(len(vars), convey.ShouldNotBeZeroValue) - err := ses.SetUserDefinedVar("abc", 1) + err := ses.SetUserDefinedVar("abc", 1, "") convey.So(err, convey.ShouldBeNil) _, _, err = ses.GetUserDefinedVar("abc") diff --git a/pkg/frontend/status_stmt.go b/pkg/frontend/status_stmt.go index e852841d0d9bd..8cbd7f5484275 100644 --- a/pkg/frontend/status_stmt.go +++ b/pkg/frontend/status_stmt.go @@ -124,7 +124,7 @@ func (pse *PrepareStmtExecutor) ResponseAfterExec(ctx context.Context, ses *Sess func (pse *PrepareStmtExecutor) ExecuteImpl(ctx context.Context, ses *Session) error { var err error - pse.prepareStmt, err = doPrepareStmt(ctx, ses, pse.ps) + pse.prepareStmt, err = doPrepareStmt(ctx, ses, pse.ps, "") if err != nil { return err } @@ -238,7 +238,7 @@ type SetVarExecutor struct { } func (sve *SetVarExecutor) ExecuteImpl(ctx context.Context, ses *Session) error { - return doSetVar(ctx, nil, ses, sve.sv) + return doSetVar(ctx, nil, ses, sve.sv, "") } type DeleteExecutor struct { diff --git a/pkg/frontend/types.go b/pkg/frontend/types.go index 9bb938f46a73f..4dbd679dacc74 100644 --- a/pkg/frontend/types.go +++ b/pkg/frontend/types.go @@ -97,6 +97,7 @@ func (ec *engineColumnInfo) GetType() types.T { type PrepareStmt struct { Name string + Sql string PreparePlan *plan.Plan PrepareStmt tree.Statement ParamTypes []byte diff --git a/pkg/frontend/util.go b/pkg/frontend/util.go index 3b6409a920c95..a91d5e781e088 100644 --- a/pkg/frontend/util.go +++ b/pkg/frontend/util.go @@ -725,3 +725,58 @@ func needConvertedToAccessDeniedError(errMsg string) bool { const ( quitStr = "!!!COM_QUIT!!!" ) + +// makeExecuteSql appends the PREPARE sql and its values of parameters for the EXECUTE statement. +// Format 1: execute ... using ... +// execute.... // prepare stmt1 from .... ; set var1 = val1 ; set var2 = val2 ; +// Format 2: COM_STMT_EXECUTE +// execute.... // prepare stmt1 from .... ; param0 ; param1 ... +func makeExecuteSql(ses *Session, stmt tree.Statement) string { + if ses == nil || stmt == nil { + return "" + } + preSql := "" + bb := &strings.Builder{} + //fill prepare parameters + switch t := stmt.(type) { + case *tree.Execute: + name := string(t.Name) + prepareStmt, err := ses.GetPrepareStmt(name) + if err != nil || prepareStmt == nil { + break + } + preSql = strings.TrimSpace(prepareStmt.Sql) + bb.WriteString(preSql) + bb.WriteString(" ; ") + if len(t.Variables) != 0 { + //for EXECUTE ... USING statement. append variables if there is. + //get SET VAR sql + setVarSqls := make([]string, len(t.Variables)) + for i, v := range t.Variables { + _, userVal, err := ses.GetUserDefinedVar(v.Name) + if err == nil && userVal != nil && len(userVal.Sql) != 0 { + setVarSqls[i] = userVal.Sql + } + } + bb.WriteString(strings.Join(setVarSqls, " ; ")) + } else if prepareStmt.params != nil { + //for COM_STMT_EXECUTE + //get value of parameters + paramCnt := prepareStmt.params.Length() + paramValues := make([]string, paramCnt) + vs := vector.MustFixedCol[types.Varlena](prepareStmt.params) + for i := 0; i < paramCnt; i++ { + isNull := prepareStmt.params.GetNulls().Contains(uint64(i)) + if isNull { + paramValues[i] = "NULL" + } else { + paramValues[i] = vs[i].GetString(prepareStmt.params.GetArea()) + } + } + bb.WriteString(strings.Join(paramValues, " ; ")) + } + default: + return "" + } + return bb.String() +} diff --git a/pkg/frontend/util_test.go b/pkg/frontend/util_test.go index d5fc79bc6c287..ecf868d90c076 100644 --- a/pkg/frontend/util_test.go +++ b/pkg/frontend/util_test.go @@ -18,26 +18,33 @@ import ( "context" "encoding/binary" "fmt" - "github.com/stretchr/testify/assert" "math" "sort" + "strings" "testing" "time" + "github.com/stretchr/testify/assert" + "github.com/golang/mock/gomock" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/common/mpool" "github.com/matrixorigin/matrixone/pkg/config" "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" mock_frontend "github.com/matrixorigin/matrixone/pkg/frontend/test" "github.com/matrixorigin/matrixone/pkg/pb/txn" "github.com/matrixorigin/matrixone/pkg/sql/parsers" "github.com/matrixorigin/matrixone/pkg/sql/parsers/dialect" "github.com/matrixorigin/matrixone/pkg/sql/parsers/tree" "github.com/matrixorigin/matrixone/pkg/sql/plan" + "github.com/matrixorigin/matrixone/pkg/sql/util" "github.com/matrixorigin/matrixone/pkg/testutil" "github.com/matrixorigin/matrixone/pkg/util/toml" "github.com/matrixorigin/matrixone/pkg/vm/engine" + "github.com/matrixorigin/matrixone/pkg/vm/process" cvey "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/require" ) @@ -875,3 +882,150 @@ func TestRewriteError(t *testing.T) { }) } } + +func Test_makeExecuteSql(t *testing.T) { + type args struct { + ses *Session + stmt tree.Statement + } + + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + eng := mock_frontend.NewMockEngine(ctrl) + eng.EXPECT().New(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + + txnClient := mock_frontend.NewMockTxnClient(ctrl) + + sv := &config.FrontendParameters{ + SessionTimeout: toml.Duration{Duration: 5 * time.Minute}, + } + + pu := config.NewParameterUnit(sv, eng, txnClient, nil) + ses1 := NewSession(&FakeProtocol{}, testutil.NewProc().Mp(), pu, GSysVariables, true, nil, nil) + + ses1.SetUserDefinedVar("var2", "val2", "set var2 = val2") + ses1.SetUserDefinedVar("var3", "val3", "set var3 = val3") + ses1.SetPrepareStmt("st2", &PrepareStmt{ + Name: "st2", + Sql: "prepare st2 select * from t where a = ?", + }) + ses1.SetPrepareStmt("st3", &PrepareStmt{ + Name: "st3", + Sql: "prepare st3 select * from t where a = ? and b = ?", + }) + + mp, err := mpool.NewMPool("ut_pool", 0, mpool.NoFixed) + if err != nil { + assert.NoError(t, err) + } + defer mpool.DeleteMPool(mp) + + testProc := process.New(context.Background(), mp, nil, nil, nil, nil, nil, nil) + + params1 := testProc.GetVector(types.T_text.ToType()) + for i := 0; i < 3; i++ { + err = vector.AppendBytes(params1, []byte{}, false, testProc.GetMPool()) + assert.NoError(t, err) + } + + util.SetAnyToStringVector(testProc, "aVal", params1, 0) + util.SetAnyToStringVector(testProc, "NULL", params1, 1) + util.SetAnyToStringVector(testProc, "bVal", params1, 2) + + ses1.SetPrepareStmt("st4", &PrepareStmt{ + Name: "st4", + Sql: "prepare st4 select * from t where a = ? and b = ?", + params: params1, + }) + + ses1.SetPrepareStmt("st5", nil) + + tests := []struct { + name string + args args + want string + }{ + { + name: "t1", + args: args{}, + want: "", + }, + { + name: "t2", + args: args{ + ses: &Session{}, + stmt: &tree.SetVar{}, + }, + want: "", + }, + { + name: "t3", + args: args{ + ses: ses1, + stmt: &tree.Execute{ + Name: "st1", + }, + }, + want: "", + }, + { + name: "t4-no variables - no params", + args: args{ + ses: ses1, + stmt: &tree.Execute{ + Name: "st2", + }, + }, + want: "prepare st2 select * from t where a = ? ;", + }, + { + name: "t5 - variables", + args: args{ + ses: ses1, + stmt: &tree.Execute{ + Name: "st3", + Variables: []*tree.VarExpr{ + { + Name: "var2", + }, + { + Name: "var-none", + }, + { + Name: "var3", + }, + }, + }, + }, + want: "prepare st3 select * from t where a = ? and b = ? ; set var2 = val2 ; ; set var3 = val3", + }, + { + name: "t6 - params", + args: args{ + ses: ses1, + stmt: &tree.Execute{ + Name: "st4", + }, + }, + want: "prepare st4 select * from t where a = ? and b = ? ; aVal ; NULL ; bVal", + }, + { + name: "t7 - params is nil", + args: args{ + ses: ses1, + stmt: &tree.Execute{ + Name: "st5", + }, + }, + want: "", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := makeExecuteSql(tt.args.ses, tt.args.stmt); strings.TrimSpace(got) != strings.TrimSpace(tt.want) { + t.Errorf("makeExecuteSql() = %v, want %v", got, tt.want) + } + }) + } +} diff --git a/pkg/frontend/variables.go b/pkg/frontend/variables.go index f77620829d3fb..57e56e355e010 100644 --- a/pkg/frontend/variables.go +++ b/pkg/frontend/variables.go @@ -3595,3 +3595,8 @@ func valueIsBoolTrue(value interface{}) (bool, error) { } return svbt.IsTrue(newValue), nil } + +type UserDefinedVar struct { + Value interface{} + Sql string +} diff --git a/pkg/pb/plan/plan.pb.go b/pkg/pb/plan/plan.pb.go index f7ea02c152a5c..416373cd6d1ff 100644 --- a/pkg/pb/plan/plan.pb.go +++ b/pkg/pb/plan/plan.pb.go @@ -7621,6 +7621,7 @@ type CreateDatabase struct { IfNotExists bool `protobuf:"varint,1,opt,name=if_not_exists,json=ifNotExists,proto3" json:"if_not_exists,omitempty"` Database string `protobuf:"bytes,2,opt,name=database,proto3" json:"database,omitempty"` SubscriptionOption *SubscriptionOption `protobuf:"bytes,3,opt,name=subscription_option,json=subscriptionOption,proto3" json:"subscription_option,omitempty"` + Sql string `protobuf:"bytes,4,opt,name=sql,proto3" json:"sql,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -7680,6 +7681,13 @@ func (m *CreateDatabase) GetSubscriptionOption() *SubscriptionOption { return nil } +func (m *CreateDatabase) GetSql() string { + if m != nil { + return m.Sql + } + return "" +} + type AlterDatabase struct { IfExists bool `protobuf:"varint,1,opt,name=if_exists,json=ifExists,proto3" json:"if_exists,omitempty"` Database string `protobuf:"bytes,2,opt,name=database,proto3" json:"database,omitempty"` @@ -10351,593 +10359,594 @@ func init() { func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) } var fileDescriptor_2d655ab2f7683c23 = []byte{ - // 9368 bytes of a gzipped FileDescriptorProto + // 9378 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0xbd, 0x4d, 0x6c, 0x23, 0x49, 0x96, 0x18, 0x2c, 0xfe, 0x93, 0x8f, 0x3f, 0x4a, 0x45, 0xa9, 0xaa, 0x58, 0xd5, 0xd5, 0xd5, 0xea, 0xec, 0xbf, 0xea, 0xea, 0x9e, 0xaa, 0x6e, 0xf5, 0x7f, 0xef, 0xcc, 0xce, 0x50, 0x14, 0xab, 0xc4, 0x2e, 0x8a, 0xd4, 0x24, 0xa9, 0xaa, 0xee, 0x5d, 0x7c, 0x48, 0x24, 0x99, 0x49, 0x29, 0x5b, 0xc9, - 0x4c, 0x76, 0x66, 0xb2, 0x24, 0x35, 0xb0, 0xc0, 0x9c, 0xbe, 0x85, 0x6f, 0x06, 0x6c, 0x2c, 0x0c, - 0x78, 0x0d, 0xec, 0xfa, 0xb8, 0xf0, 0xc9, 0xb0, 0xb1, 0x80, 0xb1, 0x30, 0x60, 0xf8, 0xe2, 0x35, - 0x60, 0xc0, 0x86, 0x6f, 0xb6, 0x0f, 0xf6, 0x18, 0xf0, 0xcd, 0xf0, 0x61, 0x17, 0x3e, 0x19, 0x86, - 0xf1, 0x5e, 0x44, 0x66, 0x46, 0x92, 0xd4, 0xd4, 0x54, 0xcf, 0x18, 0xb6, 0x2f, 0x52, 0xc6, 0x7b, - 0x2f, 0xfe, 0x23, 0xde, 0x6f, 0x44, 0x10, 0x60, 0xee, 0x18, 0xee, 0x83, 0xb9, 0xef, 0x85, 0x1e, - 0xcb, 0xe3, 0xf7, 0xed, 0x1f, 0x9d, 0xd8, 0xe1, 0xe9, 0x62, 0xfc, 0x60, 0xe2, 0xcd, 0x1e, 0x9e, - 0x78, 0x27, 0xde, 0x43, 0x42, 0x8e, 0x17, 0x53, 0x4a, 0x51, 0x82, 0xbe, 0x78, 0xa6, 0xdb, 0xe0, - 0x78, 0x93, 0x33, 0xfe, 0xad, 0xfe, 0x79, 0x06, 0xf2, 0xa3, 0xcb, 0xb9, 0xc5, 0x1a, 0x90, 0xb5, - 0xcd, 0x66, 0x66, 0x27, 0x73, 0xaf, 0xa0, 0x65, 0x6d, 0x93, 0xed, 0x40, 0xd5, 0xf5, 0xc2, 0xfe, - 0xc2, 0x71, 0x8c, 0xb1, 0x63, 0x35, 0xb3, 0x3b, 0x99, 0x7b, 0x65, 0x4d, 0x06, 0xb1, 0x57, 0xa0, - 0x62, 0x2c, 0x42, 0x4f, 0xb7, 0xdd, 0x89, 0xdf, 0xcc, 0x11, 0xbe, 0x8c, 0x80, 0xae, 0x3b, 0xf1, - 0xd9, 0x36, 0x14, 0xce, 0x6d, 0x33, 0x3c, 0x6d, 0xe6, 0xa9, 0x44, 0x9e, 0x40, 0x68, 0x30, 0x31, - 0x1c, 0xab, 0x59, 0xe0, 0x50, 0x4a, 0x20, 0x34, 0xa4, 0x4a, 0x8a, 0x3b, 0x99, 0x7b, 0x15, 0x8d, - 0x27, 0xd8, 0x5d, 0x00, 0xcb, 0x5d, 0xcc, 0x9e, 0x1b, 0xce, 0xc2, 0x0a, 0x9a, 0x25, 0x42, 0x49, - 0x10, 0xf5, 0xbf, 0x16, 0xa0, 0xd0, 0xf6, 0xdc, 0x20, 0x64, 0x37, 0xa0, 0x68, 0x07, 0xee, 0xc2, - 0x71, 0xa8, 0xf9, 0x65, 0x4d, 0xa4, 0xd8, 0x0d, 0x28, 0xd8, 0x9f, 0x3f, 0x37, 0x1c, 0x6a, 0x7c, - 0xe1, 0x60, 0x43, 0xe3, 0x49, 0xd6, 0x84, 0xa2, 0xfd, 0xe1, 0xa7, 0x88, 0xc8, 0x09, 0x84, 0x48, - 0x13, 0xe6, 0xa3, 0x5d, 0xc4, 0xe4, 0x63, 0x0c, 0xa5, 0x09, 0xf3, 0xe9, 0xc7, 0x88, 0xc1, 0xa6, - 0xe7, 0x08, 0x43, 0x69, 0xac, 0x65, 0x41, 0xb5, 0x60, 0xeb, 0xeb, 0x58, 0xcb, 0x22, 0xaa, 0x65, - 0xc1, 0x6b, 0x29, 0x09, 0x84, 0x48, 0x13, 0x86, 0xd7, 0x52, 0x8e, 0x31, 0x71, 0x2d, 0x0b, 0x5e, - 0x4b, 0x65, 0x27, 0x73, 0x2f, 0x4f, 0x18, 0x5e, 0xcb, 0x36, 0xe4, 0x4d, 0x84, 0xc3, 0x4e, 0xe6, - 0x5e, 0xe6, 0x60, 0x43, 0xa3, 0x14, 0x42, 0x03, 0x84, 0x56, 0x71, 0x74, 0x10, 0x1a, 0x08, 0xe8, - 0x18, 0xa1, 0x35, 0x1c, 0x0d, 0x84, 0x8e, 0x05, 0x74, 0x8a, 0xd0, 0xfa, 0x4e, 0xe6, 0x5e, 0x16, - 0xa1, 0x98, 0x62, 0xb7, 0xa1, 0x64, 0x1a, 0xa1, 0x85, 0x88, 0x86, 0xe8, 0x72, 0x04, 0x40, 0x5c, - 0x68, 0xcf, 0x08, 0xb7, 0x29, 0x3a, 0x1d, 0x01, 0x98, 0x0a, 0x55, 0x24, 0x8b, 0xf0, 0x8a, 0xc0, - 0xcb, 0x40, 0xf6, 0x09, 0xd4, 0x4c, 0x6b, 0x62, 0xcf, 0x0c, 0x87, 0xf7, 0x69, 0x6b, 0x27, 0x73, - 0xaf, 0xba, 0xbb, 0xf9, 0x80, 0xd6, 0x6f, 0x8c, 0x39, 0xd8, 0xd0, 0x52, 0x64, 0xec, 0x73, 0xa8, - 0x8b, 0xf4, 0x87, 0xbb, 0x34, 0xb0, 0x8c, 0xf2, 0x29, 0xa9, 0x7c, 0x1f, 0xee, 0x7e, 0x7e, 0xb0, - 0xa1, 0xa5, 0x09, 0xd9, 0x9b, 0x50, 0xc3, 0xba, 0x83, 0xd0, 0x98, 0xcd, 0x31, 0xe3, 0x35, 0xd1, - 0xaa, 0x14, 0x14, 0xbb, 0xf5, 0x6d, 0xe0, 0xb9, 0x48, 0xb0, 0x2d, 0xc6, 0x2d, 0x02, 0xb0, 0x1d, - 0x00, 0xd3, 0x9a, 0x1a, 0x0b, 0x27, 0x44, 0xf4, 0x75, 0x31, 0x80, 0x12, 0x8c, 0xdd, 0x85, 0xca, - 0x62, 0x8e, 0xbd, 0x7c, 0x6a, 0x38, 0xcd, 0x1b, 0x82, 0x20, 0x01, 0x61, 0xe9, 0xb8, 0x48, 0x11, - 0x7b, 0x53, 0xcc, 0x6e, 0x04, 0xc0, 0x85, 0x6e, 0x07, 0x7b, 0xb6, 0xdb, 0x6c, 0xd2, 0x3a, 0xe5, - 0x09, 0x76, 0x07, 0x72, 0x81, 0x3f, 0x69, 0xde, 0xa2, 0x5e, 0x02, 0xef, 0x65, 0xe7, 0x62, 0xee, - 0x6b, 0x08, 0xde, 0x2b, 0x41, 0x81, 0x16, 0xbc, 0x7a, 0x07, 0xca, 0x47, 0x86, 0x6f, 0xcc, 0x34, - 0x6b, 0xca, 0x14, 0xc8, 0xcd, 0xbd, 0x40, 0xec, 0x56, 0xfc, 0x54, 0x7b, 0x50, 0x7c, 0x6a, 0xf8, - 0x88, 0x63, 0x90, 0x77, 0x8d, 0x99, 0x45, 0xc8, 0x8a, 0x46, 0xdf, 0xb8, 0x43, 0x82, 0xcb, 0x20, - 0xb4, 0x66, 0x62, 0x1f, 0x8b, 0x14, 0xc2, 0x4f, 0x1c, 0x6f, 0x2c, 0x76, 0x42, 0x59, 0x13, 0x29, - 0xb5, 0x0f, 0xc5, 0xb6, 0xe7, 0x60, 0x69, 0x37, 0xa1, 0xe4, 0x5b, 0x8e, 0x9e, 0xd4, 0x56, 0xf4, - 0x2d, 0xe7, 0xc8, 0x0b, 0x10, 0x31, 0xf1, 0x38, 0x22, 0xcb, 0x11, 0x13, 0x8f, 0x10, 0x51, 0xfd, - 0xb9, 0xa4, 0x7e, 0xf5, 0x0b, 0xa8, 0x68, 0xc6, 0xb9, 0x28, 0xf2, 0x3a, 0x14, 0xc3, 0xb1, 0xa3, - 0x0b, 0x6e, 0x93, 0xd7, 0x0a, 0xe1, 0xd8, 0xe9, 0x9a, 0x08, 0xc6, 0x02, 0x6d, 0x93, 0xca, 0xcb, - 0x6b, 0x85, 0x89, 0xe7, 0x74, 0x4d, 0x75, 0x04, 0xd0, 0xf6, 0x7c, 0xff, 0x07, 0x37, 0x67, 0x1b, - 0x0a, 0xa6, 0x35, 0x0f, 0x4f, 0xf9, 0x5e, 0xd7, 0x78, 0x42, 0xbd, 0x0f, 0x65, 0x1c, 0xe2, 0x9e, - 0x1d, 0x84, 0xec, 0x2e, 0xe4, 0x1d, 0x3b, 0x08, 0x9b, 0x99, 0x9d, 0xdc, 0xd2, 0x04, 0x10, 0x5c, - 0xdd, 0x81, 0xf2, 0xa1, 0x71, 0xf1, 0x14, 0x27, 0x01, 0x4b, 0xa3, 0xd9, 0x10, 0xa3, 0x2b, 0xa6, - 0xe6, 0x3e, 0xc0, 0xc8, 0xf0, 0x4f, 0xac, 0x90, 0x38, 0xe9, 0x1d, 0xc8, 0x85, 0x97, 0x73, 0xa2, - 0x88, 0x8b, 0x43, 0x84, 0x86, 0x60, 0xf5, 0xaf, 0x32, 0x50, 0x1d, 0x2e, 0xc6, 0xdf, 0x2d, 0x2c, - 0xff, 0x12, 0x7b, 0x74, 0x2f, 0xa1, 0x6e, 0xec, 0xde, 0xe0, 0xd4, 0x12, 0x3e, 0xc9, 0x89, 0x5d, - 0x74, 0x3d, 0xd3, 0x8a, 0x46, 0xa8, 0xa0, 0x15, 0x31, 0xd9, 0x35, 0x91, 0x75, 0x7b, 0x73, 0x31, - 0xde, 0x59, 0x6f, 0xce, 0x76, 0xa0, 0x30, 0x39, 0xb5, 0x1d, 0x93, 0x98, 0x58, 0xba, 0x47, 0x1c, - 0xc1, 0x6e, 0x41, 0xd9, 0xf7, 0xce, 0xf5, 0xc0, 0xfe, 0x3e, 0x62, 0xc5, 0x25, 0xdf, 0x3b, 0x1f, - 0xda, 0xdf, 0x5b, 0xea, 0x48, 0xc8, 0x03, 0x80, 0xe2, 0xb0, 0xdd, 0xea, 0xb5, 0x34, 0x65, 0x03, - 0xbf, 0x3b, 0x5f, 0x77, 0x87, 0xa3, 0xa1, 0x92, 0x61, 0x0d, 0x80, 0xfe, 0x60, 0xa4, 0x8b, 0x74, - 0x96, 0x15, 0x21, 0xdb, 0xed, 0x2b, 0x39, 0xa4, 0x41, 0x78, 0xb7, 0xaf, 0xe4, 0x59, 0x09, 0x72, - 0xad, 0xfe, 0x37, 0x4a, 0x81, 0x3e, 0x7a, 0x3d, 0xa5, 0xa8, 0xfe, 0x59, 0x16, 0x2a, 0x83, 0xf1, - 0xb7, 0xd6, 0x24, 0xc4, 0x3e, 0xe3, 0x72, 0xb4, 0xfc, 0xe7, 0x96, 0x4f, 0xdd, 0xce, 0x69, 0x22, - 0x85, 0x1d, 0x31, 0xc7, 0xd4, 0xb9, 0x9c, 0x96, 0x35, 0xc7, 0x44, 0x37, 0x39, 0xb5, 0x66, 0x06, - 0x75, 0x0e, 0xe9, 0x28, 0x85, 0xcb, 0xdf, 0x1b, 0x7f, 0x4b, 0xdd, 0xcb, 0x69, 0xf8, 0xc9, 0x5e, - 0x83, 0x2a, 0x2f, 0x43, 0xa7, 0xb5, 0x57, 0xe0, 0xd2, 0x82, 0x83, 0xfa, 0xb8, 0x03, 0x6e, 0x42, - 0xc9, 0x1c, 0x73, 0x24, 0x97, 0x32, 0x45, 0x73, 0x4c, 0x08, 0xcc, 0x49, 0xa5, 0x72, 0xa4, 0x90, - 0x33, 0x1c, 0x44, 0x04, 0xb7, 0xa0, 0xec, 0x8d, 0xbf, 0xe5, 0xd8, 0x32, 0x61, 0x4b, 0xde, 0xf8, - 0x5b, 0x42, 0xbd, 0x07, 0x5b, 0xc1, 0x62, 0x1c, 0x4c, 0x7c, 0x7b, 0x1e, 0xda, 0x9e, 0xcb, 0x69, - 0x2a, 0x44, 0xa3, 0xc8, 0x08, 0x22, 0xbe, 0x07, 0xe5, 0xf9, 0x62, 0xac, 0xdb, 0xee, 0xd4, 0x23, - 0x2e, 0x5e, 0xdd, 0xad, 0xf3, 0x89, 0x39, 0x5a, 0x8c, 0xbb, 0xee, 0xd4, 0xd3, 0x4a, 0x73, 0xfe, - 0xa1, 0xbe, 0x0d, 0x25, 0x01, 0x43, 0x19, 0x1b, 0x5a, 0xae, 0xe1, 0x86, 0x7a, 0x2c, 0x9c, 0xcb, - 0x1c, 0xd0, 0x35, 0xd5, 0x3f, 0xce, 0x80, 0x32, 0x94, 0xaa, 0x39, 0xb4, 0x42, 0x63, 0xed, 0xf6, - 0x7f, 0x15, 0xc0, 0x98, 0x4c, 0xbc, 0x05, 0x2f, 0x86, 0x2f, 0x9e, 0x8a, 0x80, 0x74, 0x4d, 0x79, - 0x6c, 0x72, 0xa9, 0xb1, 0x79, 0x1d, 0x6a, 0x51, 0x3e, 0xc2, 0xe6, 0x09, 0x5b, 0x15, 0xb0, 0x68, - 0x74, 0x82, 0xc5, 0x58, 0x1e, 0xf5, 0x52, 0xb0, 0xa0, 0xdc, 0xea, 0x1f, 0x66, 0xa1, 0xfc, 0x68, - 0xe1, 0x4e, 0xb0, 0x69, 0xec, 0x0d, 0xc8, 0x4f, 0x17, 0xee, 0x44, 0xec, 0x0a, 0x21, 0x03, 0xe2, - 0x15, 0xa1, 0x11, 0x12, 0x77, 0xa2, 0xe1, 0x9f, 0xe0, 0x0e, 0x5e, 0xd9, 0x89, 0x08, 0x57, 0xff, - 0x71, 0x86, 0x97, 0xf8, 0xc8, 0x31, 0x4e, 0x58, 0x19, 0xf2, 0xfd, 0x41, 0xbf, 0xa3, 0x6c, 0xb0, - 0x1a, 0x94, 0xbb, 0xfd, 0x51, 0x47, 0xeb, 0xb7, 0x7a, 0x4a, 0x86, 0x16, 0xee, 0xa8, 0xb5, 0xd7, - 0xeb, 0x28, 0x59, 0xc4, 0x3c, 0x1d, 0xf4, 0x5a, 0xa3, 0x6e, 0xaf, 0xa3, 0xe4, 0x39, 0x46, 0xeb, - 0xb6, 0x47, 0x4a, 0x99, 0x29, 0x50, 0x3b, 0xd2, 0x06, 0xfb, 0xc7, 0xed, 0x8e, 0xde, 0x3f, 0xee, - 0xf5, 0x14, 0x85, 0x5d, 0x83, 0xcd, 0x18, 0x32, 0xe0, 0xc0, 0x1d, 0xcc, 0xf2, 0xb4, 0xa5, 0xb5, - 0xb4, 0xc7, 0xca, 0xcf, 0x58, 0x19, 0x72, 0xad, 0xc7, 0x8f, 0x95, 0x5f, 0xe0, 0x1e, 0xa8, 0x3c, - 0xeb, 0xf6, 0xf5, 0xa7, 0xad, 0xde, 0x71, 0x47, 0xf9, 0x45, 0x36, 0x4a, 0x0f, 0xb4, 0xfd, 0x8e, - 0xa6, 0xfc, 0x22, 0x8f, 0xe9, 0xc3, 0x41, 0x7f, 0x30, 0x1a, 0xf4, 0xbb, 0x6d, 0xe5, 0x17, 0x65, - 0xf5, 0x2f, 0xf2, 0x90, 0xc7, 0x6e, 0xfc, 0x6a, 0xd6, 0xc0, 0x5e, 0x81, 0xcc, 0x84, 0x66, 0xa7, - 0xba, 0x5b, 0xe5, 0x38, 0xd2, 0x6f, 0x0e, 0x36, 0xb4, 0x0c, 0x8e, 0x4d, 0x86, 0xef, 0xf1, 0xea, - 0x6e, 0x43, 0xac, 0x1b, 0x21, 0x0d, 0x10, 0x3f, 0x67, 0x77, 0x20, 0xf3, 0x5c, 0x6c, 0xf8, 0x1a, - 0xc7, 0x73, 0x79, 0x80, 0xd8, 0xe7, 0x6c, 0x07, 0x72, 0x13, 0x8f, 0xeb, 0x2e, 0x31, 0x9e, 0xb3, - 0xd4, 0x83, 0x0d, 0x0d, 0x51, 0xec, 0x0d, 0xc8, 0xf9, 0xc6, 0x39, 0x6d, 0x8e, 0x78, 0x7e, 0x62, - 0x9e, 0x8d, 0x44, 0xbe, 0x71, 0x8e, 0x8d, 0x98, 0xd2, 0x16, 0x89, 0x1b, 0x11, 0x4d, 0x30, 0x56, - 0x33, 0x65, 0x3b, 0x90, 0x39, 0xa7, 0x4d, 0x12, 0x8b, 0xeb, 0x67, 0xb6, 0x6b, 0x7a, 0xe7, 0xc3, - 0xb9, 0x35, 0x41, 0x8a, 0x73, 0xf6, 0x16, 0xe4, 0x82, 0xc5, 0x98, 0x36, 0x49, 0x75, 0x77, 0x6b, - 0x85, 0xdd, 0x61, 0x45, 0xc1, 0x62, 0xcc, 0xde, 0x86, 0xfc, 0xc4, 0xf3, 0x7d, 0xb1, 0x51, 0x94, - 0xa8, 0xc1, 0x91, 0x1c, 0x40, 0xf5, 0x05, 0xf1, 0x58, 0x61, 0x48, 0xda, 0x4f, 0x4c, 0x94, 0x30, - 0x62, 0xac, 0x30, 0x64, 0x6f, 0x0a, 0xee, 0x5e, 0x93, 0x5b, 0x1d, 0xf1, 0x7e, 0x2c, 0x07, 0xb1, - 0x4c, 0x85, 0xdc, 0xcc, 0xb8, 0x20, 0xdd, 0x28, 0x26, 0x8a, 0x98, 0x3e, 0xb6, 0x69, 0x66, 0x5c, - 0xb0, 0x37, 0x21, 0x37, 0xb6, 0x5d, 0x52, 0x93, 0xe2, 0xda, 0xf6, 0x6c, 0xd7, 0xf0, 0x2f, 0xf7, - 0x8d, 0xd0, 0x40, 0xaa, 0xb1, 0xed, 0xa2, 0x18, 0x33, 0x16, 0x17, 0xb8, 0xcf, 0x36, 0xb9, 0xc0, - 0x31, 0x16, 0x17, 0x5d, 0x13, 0x59, 0x96, 0x6b, 0x3e, 0x27, 0x3d, 0x29, 0xa3, 0xe1, 0x27, 0x2a, - 0xd8, 0x81, 0xe5, 0x58, 0x93, 0xd0, 0x7e, 0x6e, 0x87, 0x97, 0xa4, 0x1c, 0x65, 0x34, 0x19, 0xb4, - 0x57, 0x84, 0xbc, 0x75, 0x31, 0xf7, 0xd5, 0x1d, 0x80, 0xa4, 0x1e, 0xdc, 0xe0, 0xa6, 0x11, 0x1a, - 0xb4, 0x88, 0x6a, 0x1a, 0x7d, 0xab, 0xb7, 0xa0, 0x12, 0xab, 0x50, 0xac, 0x06, 0x19, 0x43, 0x30, - 0xd6, 0x8c, 0xa1, 0xde, 0x43, 0x8d, 0x26, 0x52, 0x92, 0xd2, 0x38, 0x4c, 0x45, 0xec, 0x36, 0x33, - 0x56, 0x7f, 0x0c, 0x35, 0xcd, 0x0a, 0x16, 0x4e, 0xd8, 0xf6, 0x9c, 0x7d, 0x6b, 0xca, 0xde, 0x07, - 0x88, 0xd3, 0x81, 0x90, 0x8e, 0xc9, 0xd2, 0xd9, 0xb7, 0xa6, 0x9a, 0x84, 0x57, 0xff, 0x55, 0x8e, - 0x74, 0x86, 0x7d, 0x2e, 0xe0, 0x85, 0x24, 0xcf, 0x48, 0x92, 0x3c, 0xe6, 0x4c, 0xd9, 0xb4, 0x62, - 0x72, 0x6a, 0x9b, 0xa6, 0xe5, 0x46, 0x0a, 0x08, 0x4f, 0xe1, 0x58, 0x1b, 0xce, 0x09, 0xad, 0xe7, - 0xc6, 0x2e, 0x8b, 0x2a, 0x9d, 0xcd, 0x7d, 0x2b, 0x08, 0xf8, 0x86, 0x31, 0x9c, 0x93, 0x68, 0x3b, - 0x15, 0xd6, 0x6f, 0xa7, 0x5b, 0x50, 0x76, 0xbd, 0x50, 0x27, 0xc3, 0xa0, 0x48, 0xa5, 0x97, 0x84, - 0xf9, 0xc2, 0xde, 0x81, 0x92, 0x50, 0xe9, 0xc4, 0x6a, 0x16, 0xac, 0x78, 0x9f, 0x03, 0xb5, 0x08, - 0xcb, 0x9a, 0xa8, 0x56, 0xcc, 0x66, 0x96, 0x1b, 0x46, 0xbc, 0x5f, 0x24, 0xd9, 0x7b, 0x50, 0xf1, - 0x5c, 0x9d, 0xeb, 0x7d, 0x62, 0x39, 0x8b, 0x75, 0x33, 0x70, 0x8f, 0x09, 0xaa, 0x95, 0x3d, 0xf1, - 0x85, 0x4d, 0x71, 0xbc, 0x73, 0x7d, 0x62, 0xf8, 0x26, 0x2d, 0xe9, 0xb2, 0x56, 0x72, 0xbc, 0xf3, - 0xb6, 0xe1, 0x9b, 0x5c, 0x16, 0x7e, 0xe7, 0x2e, 0x66, 0xb4, 0x8c, 0xeb, 0x9a, 0x48, 0xb1, 0x3b, - 0x50, 0x99, 0x38, 0x8b, 0x20, 0xb4, 0xfc, 0xbd, 0x4b, 0xae, 0xc9, 0x6b, 0x09, 0x00, 0xdb, 0x35, - 0xf7, 0xed, 0x99, 0xe1, 0x5f, 0xd2, 0x9a, 0x2d, 0x6b, 0x51, 0x12, 0x35, 0x94, 0xf9, 0x99, 0x6d, - 0x5e, 0x70, 0x75, 0x5e, 0xe3, 0x09, 0xa4, 0x3f, 0xb5, 0x0c, 0xd3, 0xf2, 0x03, 0x5a, 0x96, 0x65, - 0x2d, 0x4a, 0xd2, 0x0c, 0xd0, 0x27, 0xad, 0xcd, 0x8a, 0x26, 0x52, 0xea, 0x77, 0x50, 0x12, 0xa3, - 0x81, 0x6c, 0x19, 0xd7, 0x61, 0x9a, 0x6d, 0x71, 0xb6, 0x8c, 0x70, 0xf6, 0x06, 0xd4, 0x3d, 0xdf, - 0x3e, 0xb1, 0x5d, 0x3d, 0x08, 0x7d, 0xdb, 0x3d, 0x11, 0x33, 0x5c, 0xe3, 0xc0, 0x21, 0xc1, 0x50, - 0x96, 0xe0, 0x4c, 0xe8, 0xc6, 0xd8, 0x76, 0x70, 0xbd, 0xe7, 0x84, 0x41, 0xb9, 0x70, 0x9c, 0x16, - 0x07, 0xa9, 0x03, 0x28, 0x47, 0x63, 0xf7, 0x5b, 0xa9, 0x53, 0xfd, 0x1d, 0xa8, 0x76, 0x5d, 0xd3, - 0xba, 0x18, 0x90, 0x78, 0x64, 0xef, 0x03, 0x9b, 0xf8, 0x96, 0x11, 0x5a, 0xba, 0x75, 0x11, 0xfa, - 0x86, 0xce, 0x8d, 0x4e, 0x6e, 0x33, 0x2a, 0x1c, 0xd3, 0x41, 0xc4, 0x08, 0xe1, 0xea, 0xbf, 0xcb, - 0x40, 0xfd, 0x88, 0x0f, 0xea, 0x13, 0xeb, 0x72, 0x9f, 0x6b, 0xd6, 0x93, 0x68, 0x2b, 0xe4, 0x35, - 0xfa, 0x66, 0x77, 0xa1, 0x3a, 0x3f, 0xb3, 0x2e, 0xf5, 0x94, 0xea, 0x5a, 0x41, 0x50, 0x9b, 0x16, - 0xfd, 0xbb, 0x50, 0xf4, 0xa8, 0x76, 0xc1, 0xbb, 0x05, 0xcb, 0x93, 0x9a, 0xa5, 0x09, 0x02, 0xa6, - 0x42, 0x3d, 0x2e, 0x4a, 0x16, 0xb7, 0xa2, 0x30, 0x12, 0xb7, 0xdb, 0x50, 0x40, 0x54, 0xd0, 0x2c, - 0xec, 0xe4, 0x50, 0xff, 0xa4, 0x04, 0xfb, 0x00, 0xea, 0x13, 0x6f, 0x36, 0xd7, 0xa3, 0xec, 0x82, - 0x8b, 0xa7, 0x37, 0x6b, 0x15, 0x49, 0x8e, 0x78, 0x59, 0xea, 0xdf, 0xc9, 0x42, 0x99, 0xda, 0x20, - 0xf6, 0xab, 0x6d, 0x5e, 0x44, 0xfb, 0xb5, 0xa2, 0x15, 0x6c, 0x13, 0x59, 0xd6, 0xab, 0x00, 0x36, - 0x92, 0xe8, 0xd2, 0xae, 0xad, 0x10, 0x24, 0x6a, 0xca, 0xdc, 0xf0, 0xc3, 0xa0, 0x99, 0xe3, 0x4d, - 0xa1, 0x04, 0x2e, 0xa7, 0x85, 0x6b, 0x7f, 0xb7, 0xe0, 0xad, 0x2f, 0x6b, 0x22, 0xc5, 0xee, 0x81, - 0xc2, 0x0b, 0xa3, 0x41, 0x97, 0xf5, 0x85, 0x06, 0xc1, 0x69, 0xcc, 0x23, 0x85, 0x8c, 0xd3, 0x58, - 0x17, 0xc8, 0xb7, 0xf9, 0xce, 0x05, 0x02, 0x75, 0x10, 0x22, 0xef, 0xc9, 0x52, 0x7a, 0x4f, 0x36, - 0xa1, 0xf4, 0xdc, 0x0e, 0x6c, 0x9c, 0xd5, 0x32, 0x5f, 0xe5, 0x22, 0x29, 0x4d, 0x43, 0xe5, 0x05, - 0xd3, 0xa0, 0xfe, 0x65, 0x16, 0xea, 0x8f, 0x3c, 0xdf, 0xb2, 0x4f, 0xdc, 0x64, 0xde, 0x57, 0x54, - 0xaa, 0x68, 0x2d, 0x64, 0xa5, 0xb5, 0xf0, 0x1a, 0x54, 0xa7, 0x3c, 0xa3, 0x1e, 0x8e, 0xb9, 0x49, - 0x95, 0xd7, 0x40, 0x80, 0x46, 0x63, 0x07, 0xf7, 0x40, 0x44, 0x40, 0x99, 0xf3, 0x94, 0x39, 0xca, - 0x84, 0x6c, 0x94, 0x7d, 0x49, 0x6c, 0xc5, 0xb4, 0x1c, 0x2b, 0xe4, 0x03, 0xd4, 0xd8, 0x7d, 0x55, - 0x48, 0x5a, 0xb9, 0x4d, 0x0f, 0x34, 0x6b, 0xda, 0x22, 0xc1, 0x8b, 0x5c, 0x66, 0x9f, 0xc8, 0x45, - 0x5e, 0xc1, 0x92, 0x8a, 0xbf, 0x66, 0x5e, 0xbe, 0xdf, 0xd4, 0x11, 0x54, 0x62, 0x30, 0xaa, 0x4d, - 0x5a, 0x47, 0xa8, 0x4a, 0x1b, 0xac, 0x0a, 0xa5, 0x76, 0x6b, 0xd8, 0x6e, 0xed, 0x77, 0x94, 0x0c, - 0xa2, 0x86, 0x9d, 0x11, 0x57, 0x8f, 0xb2, 0x6c, 0x13, 0xaa, 0x98, 0xda, 0xef, 0x3c, 0x6a, 0x1d, - 0xf7, 0x46, 0x4a, 0x8e, 0xd5, 0xa1, 0xd2, 0x1f, 0xe8, 0xad, 0xf6, 0xa8, 0x3b, 0xe8, 0x2b, 0x79, - 0xf5, 0x67, 0x50, 0x6e, 0x9f, 0x5a, 0x93, 0xb3, 0xab, 0x46, 0x91, 0x2c, 0x15, 0x6b, 0x72, 0x26, - 0xb4, 0x9e, 0x25, 0x4b, 0xc5, 0x9a, 0x9c, 0xa9, 0x4f, 0xa1, 0xd6, 0x8e, 0xb8, 0xde, 0x55, 0xa5, - 0xec, 0x42, 0x83, 0x96, 0xff, 0x64, 0x1c, 0xad, 0xff, 0xec, 0x9a, 0xf5, 0x5f, 0x43, 0x9a, 0xf6, - 0x58, 0x6c, 0x80, 0x4f, 0xa0, 0x7a, 0xe4, 0x7b, 0x73, 0xcb, 0x0f, 0xa9, 0x58, 0x05, 0x72, 0x67, - 0xd6, 0xa5, 0x28, 0x15, 0x3f, 0x13, 0x4b, 0x2f, 0x2b, 0x5b, 0x7a, 0xbb, 0x50, 0x8e, 0xb2, 0xfd, - 0xda, 0x79, 0x7e, 0x8a, 0x7c, 0x84, 0xf2, 0xd8, 0x56, 0x80, 0x95, 0x3d, 0x00, 0x98, 0xc7, 0x00, - 0x21, 0x58, 0x23, 0x9d, 0x4e, 0x14, 0xae, 0x49, 0x14, 0xea, 0x5f, 0xe5, 0xa0, 0x71, 0x64, 0xf8, - 0xa1, 0x8d, 0x93, 0xc3, 0x87, 0xe1, 0x1d, 0xc8, 0x87, 0x97, 0x73, 0x4b, 0x98, 0x8d, 0xd7, 0x62, - 0x85, 0x90, 0xd3, 0x90, 0x0c, 0x24, 0x02, 0xf6, 0x25, 0x34, 0xe6, 0x11, 0x58, 0x27, 0x8e, 0xca, - 0xc7, 0x66, 0x39, 0x0b, 0x8d, 0x79, 0x7d, 0x2e, 0x27, 0xd9, 0x4f, 0x60, 0x3b, 0x9d, 0xd7, 0x0a, - 0x82, 0x84, 0x93, 0xc9, 0x93, 0x75, 0x2d, 0x95, 0x91, 0x93, 0xb1, 0x36, 0x6c, 0x25, 0xd9, 0x27, - 0x9e, 0xb3, 0x98, 0xb9, 0x81, 0xd0, 0x50, 0x6f, 0x2c, 0xd5, 0xde, 0xe6, 0x58, 0x4d, 0x99, 0x2f, - 0x41, 0x98, 0x0a, 0xb5, 0x18, 0xd6, 0x5f, 0xcc, 0x68, 0x4b, 0xe4, 0xb5, 0x14, 0x8c, 0x7d, 0x04, - 0x10, 0xa7, 0x83, 0x66, 0x91, 0xc6, 0x73, 0xb9, 0x7f, 0xdd, 0xd0, 0x9a, 0x69, 0x12, 0x19, 0xca, - 0x57, 0xc3, 0x39, 0xf1, 0x7c, 0x3b, 0x3c, 0x9d, 0x11, 0x1f, 0xc9, 0x69, 0x09, 0x80, 0xd8, 0x55, - 0xa0, 0xa3, 0x65, 0x13, 0x67, 0x11, 0x2c, 0xa5, 0x61, 0x07, 0xc3, 0xc5, 0x38, 0x2e, 0x17, 0x05, - 0x51, 0xd2, 0xcb, 0x59, 0x70, 0x22, 0xec, 0xbf, 0xa4, 0x85, 0x87, 0xc1, 0x09, 0xdb, 0x85, 0xeb, - 0x09, 0x51, 0xc2, 0x01, 0x83, 0x26, 0x10, 0xef, 0x4c, 0x86, 0x2f, 0x66, 0x83, 0x81, 0xfa, 0x15, - 0xd4, 0x53, 0xb3, 0xf3, 0x42, 0x91, 0x78, 0x0b, 0xca, 0xf8, 0x1f, 0x05, 0xa2, 0x58, 0x80, 0x25, - 0x4c, 0x0f, 0x43, 0x5f, 0xb5, 0x40, 0x59, 0x1e, 0x6b, 0xf6, 0x26, 0x79, 0x4c, 0x68, 0x52, 0x56, - 0x3d, 0x1f, 0x11, 0x0a, 0x4d, 0xdc, 0xd5, 0x49, 0xcc, 0x52, 0xab, 0x57, 0x26, 0x4b, 0xfd, 0xd3, - 0xac, 0xd4, 0x66, 0x1c, 0x71, 0xf6, 0x96, 0xbc, 0xfc, 0xa4, 0x8d, 0x9b, 0x8c, 0x19, 0xf1, 0xfc, - 0x77, 0x41, 0xf1, 0x7c, 0xd3, 0x76, 0x0d, 0xf2, 0xe0, 0xf0, 0xe1, 0xce, 0x92, 0x3a, 0xb4, 0x29, - 0xe0, 0x47, 0x02, 0x8c, 0x6a, 0xb3, 0x69, 0xc5, 0x26, 0xaf, 0x30, 0x58, 0x65, 0x90, 0x2c, 0x1f, - 0xf2, 0x69, 0xf9, 0xf0, 0x0e, 0x54, 0x1c, 0x2b, 0x08, 0xf4, 0xf0, 0xd4, 0x70, 0x49, 0x82, 0xa6, - 0x3b, 0x5d, 0x46, 0xe4, 0xe8, 0xd4, 0x70, 0x91, 0xd0, 0x76, 0x75, 0xe1, 0x7a, 0x2e, 0xae, 0x12, - 0xda, 0x2e, 0x59, 0x06, 0x28, 0x79, 0xb7, 0xd7, 0x4d, 0xac, 0x10, 0x4c, 0x6c, 0x75, 0x5e, 0xd5, - 0x57, 0xa1, 0xf4, 0xd4, 0xb6, 0xce, 0x05, 0x2f, 0x7b, 0x6e, 0x5b, 0xe7, 0x11, 0x2f, 0xc3, 0x6f, - 0xf5, 0x4f, 0xcb, 0x50, 0x26, 0xe2, 0xfd, 0xab, 0x3d, 0x65, 0x2f, 0xa3, 0x48, 0xef, 0x08, 0x39, - 0x95, 0x5f, 0xa3, 0xbe, 0x73, 0xa9, 0xf5, 0x2a, 0x70, 0xe1, 0xaa, 0x13, 0x43, 0xe1, 0x32, 0xb9, - 0x42, 0x10, 0xe1, 0xcd, 0xaa, 0x70, 0xd5, 0x28, 0xf8, 0xce, 0x11, 0xae, 0x93, 0x04, 0xc0, 0x1e, - 0x40, 0x19, 0x5b, 0x48, 0xa6, 0x7d, 0x49, 0x66, 0x2c, 0xd4, 0x87, 0xc8, 0x38, 0xd4, 0x4a, 0xe1, - 0xd8, 0xc1, 0x04, 0x49, 0x68, 0xcb, 0x0f, 0xa2, 0xed, 0x54, 0xd7, 0xa2, 0x24, 0x72, 0x34, 0x54, - 0x5f, 0x84, 0x31, 0x17, 0x6d, 0x5f, 0x59, 0xff, 0xd2, 0x88, 0x80, 0xdd, 0x83, 0x12, 0x69, 0x0c, - 0x56, 0xd0, 0xac, 0xc9, 0xac, 0x33, 0x52, 0x67, 0xb4, 0x08, 0xcd, 0xde, 0x85, 0xc2, 0xf4, 0xcc, - 0xba, 0x0c, 0x9a, 0x75, 0x99, 0x25, 0xa4, 0x64, 0xa1, 0xc6, 0x29, 0xd8, 0x9b, 0xd0, 0xf0, 0xad, - 0xa9, 0x4e, 0xde, 0x31, 0x14, 0xde, 0x41, 0xb3, 0x41, 0xb2, 0xb9, 0xe6, 0x5b, 0xd3, 0x36, 0x02, - 0x47, 0x63, 0x27, 0x60, 0x6f, 0x43, 0x91, 0xa4, 0x12, 0x2a, 0xd1, 0x52, 0xcd, 0x91, 0x88, 0xd3, - 0x04, 0x96, 0xed, 0x42, 0x25, 0x61, 0x1b, 0xd7, 0xa9, 0x43, 0xdb, 0x4b, 0xfc, 0x88, 0xd8, 0xb8, - 0x96, 0x90, 0xb1, 0x0f, 0x01, 0x84, 0x7a, 0xaf, 0x8f, 0x2f, 0xc9, 0xb1, 0x5c, 0x8d, 0x0d, 0x1f, - 0x49, 0x00, 0xca, 0x46, 0xc0, 0x3b, 0x50, 0x40, 0x29, 0x11, 0x34, 0x6f, 0x52, 0x6b, 0xb6, 0xd2, - 0x22, 0x84, 0x7a, 0x47, 0x78, 0x76, 0x0f, 0xca, 0xb8, 0xb8, 0x74, 0x9c, 0xc2, 0xa6, 0x6c, 0xef, - 0x88, 0x95, 0x88, 0x7a, 0x92, 0x75, 0x3e, 0xfc, 0xce, 0x61, 0xf7, 0x21, 0x6f, 0x5a, 0xd3, 0xa0, - 0x79, 0x8b, 0x4a, 0xbc, 0x21, 0xcd, 0x25, 0x2a, 0x0e, 0xfb, 0xd6, 0x94, 0x8b, 0x16, 0xa4, 0x61, - 0x07, 0xd0, 0xc0, 0xa5, 0xb7, 0x4b, 0xaa, 0x2f, 0x0e, 0x79, 0xf3, 0x36, 0xe5, 0x7a, 0x7d, 0x29, - 0x57, 0x5f, 0x10, 0xd1, 0x04, 0x75, 0xdc, 0xd0, 0xbf, 0xd4, 0xea, 0xae, 0x0c, 0x63, 0xb7, 0xa1, - 0x6c, 0x07, 0x3d, 0x6f, 0x72, 0x66, 0x99, 0xcd, 0x57, 0x78, 0x20, 0x29, 0x4a, 0xb3, 0x2f, 0xa0, - 0x4e, 0x8b, 0x11, 0x93, 0x58, 0x79, 0xf3, 0x8e, 0x2c, 0xf2, 0x46, 0x32, 0x4a, 0x4b, 0x53, 0xa2, - 0xba, 0x65, 0x07, 0x7a, 0x68, 0xcd, 0xe6, 0x9e, 0x8f, 0x96, 0xd2, 0xab, 0xdc, 0xe4, 0xb0, 0x83, - 0x51, 0x04, 0x42, 0x3e, 0x1f, 0xc7, 0xb0, 0x74, 0x6f, 0x3a, 0x0d, 0xac, 0xb0, 0x79, 0x97, 0xf6, - 0x5a, 0x23, 0x0a, 0x65, 0x0d, 0x08, 0x7a, 0xfb, 0x31, 0xd9, 0x43, 0x54, 0xee, 0x27, 0x4b, 0xf2, - 0x3b, 0xb5, 0x60, 0x25, 0x41, 0x7f, 0xb0, 0x21, 0x8b, 0xf1, 0xbd, 0x02, 0xe4, 0x4c, 0x6b, 0x7a, - 0xfb, 0x67, 0xc0, 0x56, 0x47, 0xe4, 0x45, 0xca, 0x44, 0x41, 0x28, 0x13, 0x5f, 0x66, 0x3f, 0xcf, - 0xa8, 0x5f, 0x40, 0x3d, 0xb5, 0xbd, 0xd6, 0x2a, 0x45, 0x5c, 0x3d, 0x37, 0xb8, 0xc7, 0xbf, 0xa6, - 0xf1, 0x84, 0xfa, 0xc7, 0x39, 0xa8, 0x1d, 0x18, 0xc1, 0xe9, 0xa1, 0x31, 0x1f, 0x86, 0x46, 0x18, - 0xe0, 0x18, 0x9d, 0x1a, 0xc1, 0xe9, 0xcc, 0x98, 0x73, 0x6f, 0x70, 0x86, 0xbb, 0x21, 0x04, 0x6c, - 0x68, 0x7f, 0x6f, 0xe1, 0xec, 0x60, 0x72, 0xe0, 0x1e, 0x3d, 0x11, 0xe1, 0x83, 0x38, 0x8d, 0xfb, - 0x39, 0x38, 0x5d, 0x4c, 0xa7, 0x8e, 0x25, 0xf8, 0x4e, 0x94, 0x64, 0x6f, 0x42, 0x5d, 0x7c, 0x92, - 0x21, 0x74, 0x21, 0x02, 0x81, 0x69, 0x20, 0xfb, 0x08, 0xaa, 0x02, 0x30, 0x8a, 0xb8, 0x4f, 0x23, - 0x76, 0x0b, 0x25, 0x08, 0x4d, 0xa6, 0x62, 0x3f, 0x87, 0xeb, 0x52, 0xf2, 0x91, 0xe7, 0x1f, 0x2e, - 0x9c, 0xd0, 0x6e, 0xf7, 0x85, 0xce, 0xfb, 0xca, 0x4a, 0xf6, 0x84, 0x44, 0x5b, 0x9f, 0x33, 0xdd, - 0xda, 0x43, 0xdb, 0x15, 0x1a, 0x41, 0x1a, 0xb8, 0x44, 0x65, 0x5c, 0x10, 0x0f, 0x4b, 0x53, 0x19, - 0x17, 0xb8, 0x62, 0x05, 0xe0, 0xd0, 0x0a, 0x4f, 0x3d, 0x93, 0x34, 0x82, 0x78, 0xc5, 0x0e, 0x65, - 0x94, 0x96, 0xa6, 0x54, 0xff, 0x53, 0x06, 0x0a, 0x7c, 0x5e, 0x5e, 0x81, 0xca, 0xd8, 0xf1, 0x26, - 0x67, 0xba, 0xbb, 0x98, 0x45, 0x8e, 0x5f, 0x02, 0xa0, 0xc2, 0x43, 0xc6, 0x47, 0x10, 0xd2, 0x6c, - 0x64, 0x34, 0xfa, 0x46, 0x01, 0xe0, 0x2d, 0xc2, 0x89, 0x1b, 0xd2, 0x44, 0x64, 0x34, 0x91, 0xc2, - 0x19, 0xf2, 0xbd, 0x73, 0x9a, 0xdb, 0x3c, 0x21, 0xa2, 0x24, 0xf9, 0x96, 0x89, 0xf1, 0x63, 0xa6, - 0x02, 0xe1, 0xca, 0x04, 0x68, 0xbb, 0xe1, 0xb2, 0x77, 0xaa, 0xb8, 0xe2, 0x9d, 0x62, 0x9f, 0xc6, - 0x2b, 0x87, 0x5a, 0x2c, 0xd8, 0xbf, 0x60, 0x59, 0xf2, 0x1a, 0xd3, 0x52, 0x74, 0xea, 0x33, 0x00, - 0xcd, 0x3b, 0x0f, 0xac, 0x90, 0x94, 0x9a, 0x9b, 0xd4, 0xbc, 0x54, 0x40, 0xc7, 0x3b, 0x3f, 0xf2, - 0x82, 0x28, 0xc4, 0x95, 0x8d, 0x43, 0x5c, 0xb1, 0xfe, 0x93, 0x5b, 0xaf, 0xff, 0xa8, 0x0f, 0xa1, - 0x84, 0x82, 0xcd, 0x08, 0x0d, 0xf6, 0x66, 0xec, 0x23, 0xcb, 0x25, 0xbe, 0xba, 0xa4, 0x56, 0xe1, - 0x35, 0x7b, 0x18, 0xb5, 0x84, 0xf2, 0xbc, 0x2e, 0x59, 0xf7, 0x31, 0x83, 0x14, 0x05, 0x72, 0x51, - 0xa9, 0xfe, 0xfb, 0x0c, 0x54, 0x07, 0xbe, 0x89, 0xcc, 0x77, 0x38, 0xb7, 0x26, 0x2f, 0xd4, 0xc8, - 0x50, 0x76, 0x7a, 0x8e, 0x63, 0xc4, 0xfa, 0x0c, 0xca, 0xce, 0x08, 0xc0, 0x3e, 0x84, 0xfc, 0xd4, - 0x31, 0x4e, 0xa8, 0x3f, 0xb1, 0xa5, 0x26, 0x15, 0x1f, 0x7d, 0x3f, 0x72, 0x8c, 0x13, 0x8d, 0x48, - 0xd5, 0xdf, 0x8f, 0xeb, 0x27, 0x17, 0xb8, 0xec, 0xf8, 0xde, 0xa0, 0x60, 0xcb, 0xb0, 0xad, 0x64, - 0x58, 0x19, 0xf2, 0xfb, 0x9d, 0x61, 0x9b, 0xdb, 0x67, 0x68, 0xa9, 0x0d, 0xf5, 0x47, 0x5d, 0x6d, - 0x38, 0x52, 0xf2, 0x14, 0xbd, 0x21, 0x40, 0xaf, 0x35, 0x1c, 0x29, 0x65, 0x06, 0x50, 0x3c, 0xee, - 0x77, 0x7f, 0x7e, 0xdc, 0x51, 0x14, 0xf5, 0xdf, 0x66, 0x00, 0x12, 0x77, 0x2d, 0x7b, 0x0f, 0xaa, - 0xe7, 0x94, 0xd2, 0x25, 0xc7, 0xbd, 0xdc, 0x47, 0xe0, 0x68, 0x92, 0xeb, 0x3f, 0x92, 0xd4, 0x74, - 0x94, 0x5f, 0xab, 0x1e, 0xfc, 0xea, 0x3c, 0x11, 0x7d, 0xec, 0x7d, 0x28, 0x7b, 0xd8, 0x0f, 0x24, - 0xcd, 0xc9, 0xc2, 0x4b, 0xea, 0xbe, 0x56, 0xf2, 0x78, 0x02, 0xe5, 0xdc, 0xd4, 0x8f, 0x1c, 0x22, - 0x31, 0xe9, 0x23, 0x04, 0xb5, 0x1d, 0x63, 0x11, 0x58, 0x1a, 0xc7, 0xc7, 0x7c, 0xb0, 0x20, 0x85, - 0x1e, 0xff, 0x41, 0x06, 0xaa, 0x12, 0x29, 0x7b, 0x98, 0xb2, 0x9c, 0x5e, 0x59, 0x29, 0x8b, 0x7f, - 0x4b, 0x16, 0xd4, 0xdb, 0x50, 0x08, 0x42, 0xc3, 0x0f, 0x85, 0xe1, 0xa4, 0x48, 0x39, 0xf6, 0xbc, - 0x85, 0x6b, 0x6a, 0x1c, 0xcd, 0x54, 0xc8, 0x59, 0xae, 0x29, 0x56, 0xe7, 0x2a, 0x15, 0x22, 0xd5, - 0x1d, 0xa8, 0xc4, 0xc5, 0xe3, 0x34, 0x69, 0x83, 0x67, 0x43, 0x65, 0x83, 0x55, 0xa0, 0xa0, 0xb5, - 0xfa, 0x8f, 0x3b, 0x4a, 0x46, 0xfd, 0x47, 0x19, 0x80, 0x24, 0x17, 0x7b, 0x90, 0x6a, 0xed, 0xed, - 0xe5, 0x52, 0x1f, 0xd0, 0x5f, 0xa9, 0xb1, 0x77, 0xa0, 0xb2, 0x70, 0x09, 0x68, 0x99, 0x82, 0x59, - 0x27, 0x00, 0x76, 0x07, 0x72, 0xd1, 0xa9, 0x87, 0xa5, 0x48, 0xf3, 0x73, 0xc3, 0x51, 0xbf, 0x84, - 0x4a, 0x5c, 0x1c, 0x1a, 0xf2, 0x8f, 0x06, 0xbd, 0xde, 0xe0, 0x59, 0xb7, 0xff, 0x58, 0xd9, 0xc0, - 0xe4, 0x91, 0xd6, 0x69, 0x77, 0xf6, 0x31, 0x99, 0xc1, 0x75, 0xd5, 0x3e, 0xd6, 0xb4, 0x4e, 0x7f, - 0xa4, 0x6b, 0x83, 0x67, 0x4a, 0x56, 0xfd, 0xdb, 0x59, 0xd8, 0x1a, 0xb8, 0xfb, 0x8b, 0xb9, 0x63, - 0x4f, 0x8c, 0xd0, 0x7a, 0x62, 0x5d, 0xb6, 0xc3, 0x0b, 0xf6, 0x5e, 0xc4, 0x61, 0x4c, 0x6b, 0x2a, - 0x16, 0x50, 0x23, 0xad, 0x1c, 0x08, 0x8e, 0xb3, 0x4f, 0x81, 0x50, 0xc5, 0x73, 0x75, 0x33, 0x2a, - 0x42, 0xb7, 0xcd, 0x0b, 0x5a, 0x46, 0x05, 0xad, 0xe1, 0x25, 0x25, 0xa3, 0xd0, 0xf8, 0x1a, 0xb6, - 0x52, 0x94, 0x82, 0x2b, 0xe0, 0x32, 0x7a, 0x3f, 0x72, 0xc1, 0x2e, 0x35, 0x45, 0x86, 0x60, 0x8f, - 0xb9, 0x1a, 0xb2, 0xe9, 0xa5, 0xa1, 0xb7, 0xfb, 0xb0, 0xbd, 0x8e, 0x70, 0x8d, 0x74, 0xde, 0x91, - 0xa5, 0xf3, 0x92, 0xe7, 0x22, 0x91, 0xd4, 0xff, 0x24, 0x0b, 0x95, 0xae, 0x1b, 0x58, 0x7e, 0x88, - 0xc3, 0xf1, 0x3a, 0xe4, 0xfc, 0x78, 0x20, 0x56, 0x42, 0x60, 0x88, 0x63, 0xf7, 0x61, 0xcb, 0x30, - 0x4d, 0xdd, 0x98, 0x4e, 0xad, 0x49, 0x68, 0x99, 0x3a, 0xf2, 0x6a, 0x31, 0x8f, 0x9b, 0x86, 0x69, - 0xb6, 0x04, 0x1c, 0xd9, 0x96, 0xb0, 0x51, 0x23, 0xa5, 0x91, 0x3b, 0x33, 0x73, 0x91, 0x8d, 0x2a, - 0x74, 0x46, 0x1a, 0xe7, 0xf4, 0x3c, 0xe4, 0x5f, 0x30, 0x0f, 0x0f, 0xe0, 0xda, 0xb2, 0x49, 0x63, - 0x9b, 0xdc, 0xe1, 0x98, 0xd7, 0xb6, 0xd2, 0x16, 0x4d, 0xd7, 0x0c, 0xae, 0xb6, 0x6d, 0x8b, 0x57, - 0xda, 0xb6, 0x69, 0xa3, 0x19, 0x27, 0xba, 0x44, 0x6c, 0x3e, 0xe1, 0x21, 0x5d, 0xf3, 0x42, 0xfd, - 0x0f, 0x59, 0x00, 0xcd, 0x9a, 0x3b, 0xc6, 0xc4, 0xfa, 0x7f, 0x67, 0xf4, 0x5e, 0x43, 0xf3, 0xd4, - 0xb1, 0x42, 0x4b, 0x9f, 0x78, 0xae, 0x19, 0x05, 0xa2, 0x39, 0xa8, 0xed, 0xd1, 0x8e, 0x5e, 0x3b, - 0xbc, 0xc5, 0x97, 0x1e, 0xde, 0xd2, 0x4b, 0x0c, 0x6f, 0x79, 0xcd, 0xf0, 0xfe, 0x97, 0x1c, 0x54, - 0x5b, 0xae, 0xe1, 0x5c, 0x7e, 0x6f, 0x51, 0xa8, 0x99, 0xdc, 0xbd, 0xf3, 0x45, 0xc8, 0x47, 0x8d, - 0xc7, 0x88, 0x2a, 0x04, 0xa1, 0xf1, 0x7a, 0x0d, 0xaa, 0xde, 0x22, 0x8c, 0xf1, 0x3c, 0x6a, 0x04, - 0x1c, 0x44, 0x04, 0x71, 0x7e, 0xd2, 0x35, 0x72, 0x52, 0x7e, 0xd2, 0x22, 0x93, 0xfc, 0xb1, 0x2e, - 0x12, 0xe7, 0x27, 0x82, 0x37, 0xa0, 0x1e, 0xda, 0x33, 0x1a, 0xb7, 0x60, 0x31, 0xb3, 0xf8, 0xd8, - 0xe5, 0xf8, 0xd9, 0x9d, 0xb6, 0x80, 0x61, 0x29, 0x33, 0x6b, 0xe6, 0xf9, 0x97, 0xbc, 0x94, 0x22, - 0x2f, 0x85, 0x83, 0xa8, 0x94, 0xf7, 0x81, 0x9d, 0x1b, 0x76, 0xa8, 0xa7, 0x8b, 0xe2, 0xda, 0x9c, - 0x82, 0x98, 0x91, 0x5c, 0xdc, 0x0d, 0x28, 0x9a, 0x76, 0x70, 0xd6, 0x1d, 0x08, 0x4d, 0x4e, 0xa4, - 0x50, 0x35, 0x0a, 0x3e, 0xea, 0x0e, 0xf4, 0xf1, 0xa5, 0x08, 0xee, 0xe4, 0xb4, 0x32, 0x02, 0xf6, - 0x2e, 0x43, 0x72, 0x65, 0x13, 0x92, 0xf7, 0x96, 0x42, 0xe1, 0x14, 0xd4, 0xc9, 0x69, 0x0d, 0x84, - 0x77, 0x11, 0xdc, 0x46, 0x28, 0xae, 0x47, 0xa2, 0x14, 0x1d, 0xe7, 0xa4, 0x55, 0x22, 0xdd, 0x44, - 0xc4, 0x80, 0xe0, 0x9c, 0xf6, 0x0e, 0x54, 0x5c, 0x2b, 0x3c, 0xf7, 0x7c, 0x6c, 0x4d, 0x8d, 0x8f, - 0x5e, 0x0c, 0x40, 0x1d, 0x3c, 0x98, 0x18, 0x2e, 0x36, 0x9e, 0x02, 0x3e, 0xd8, 0x1e, 0x91, 0x66, - 0x77, 0x71, 0xe0, 0x91, 0xc7, 0x10, 0xb6, 0xc1, 0x87, 0x24, 0x81, 0xa8, 0xbe, 0xe4, 0x3d, 0x3c, - 0xf2, 0x17, 0xae, 0xc5, 0xed, 0x2d, 0xfa, 0x34, 0x45, 0xf8, 0x23, 0x4e, 0xb3, 0x7d, 0xb8, 0xc6, - 0xb5, 0x3c, 0xcb, 0xd4, 0x25, 0xaf, 0x5a, 0xf6, 0x6a, 0xaf, 0x1a, 0x8b, 0xe8, 0x63, 0x70, 0xa0, - 0xfe, 0xe5, 0x75, 0xc8, 0xf7, 0x3d, 0xd3, 0x62, 0x1f, 0x40, 0x85, 0x0e, 0xad, 0xac, 0x7a, 0x2b, - 0x11, 0x4d, 0x7f, 0x48, 0x7c, 0x95, 0x5d, 0xf1, 0x75, 0xf5, 0x31, 0x97, 0xd7, 0x49, 0x10, 0x53, - 0xc0, 0x41, 0x0a, 0x91, 0x73, 0x15, 0x93, 0x63, 0xb0, 0x63, 0x64, 0xc2, 0xfb, 0x96, 0x4b, 0x1e, - 0x8f, 0x82, 0x16, 0xa7, 0x49, 0x45, 0xf1, 0x3d, 0xe4, 0x17, 0x3a, 0x05, 0x84, 0x0b, 0x6b, 0x54, - 0x14, 0x8e, 0xa7, 0x53, 0x41, 0x1f, 0x40, 0xe5, 0x5b, 0xcf, 0x76, 0x79, 0xc3, 0x8b, 0x2b, 0x0d, - 0xff, 0xca, 0xb3, 0xb9, 0x9b, 0xb5, 0xfc, 0xad, 0xf8, 0x62, 0x6f, 0x40, 0xc9, 0x73, 0x79, 0xd9, - 0xa5, 0x95, 0xb2, 0x8b, 0x9e, 0xdb, 0xe3, 0x81, 0xe6, 0xfa, 0x78, 0x61, 0x3b, 0xa6, 0x8e, 0xa4, - 0xd6, 0x34, 0x14, 0x5e, 0xc5, 0x2a, 0x01, 0x07, 0x6e, 0xcf, 0x9a, 0x86, 0xa8, 0x79, 0x4d, 0x6d, - 0x07, 0xd9, 0x12, 0x15, 0x56, 0x59, 0x29, 0x0c, 0x38, 0x9a, 0x0a, 0x7c, 0x0b, 0xca, 0x27, 0xbe, - 0xb7, 0x98, 0xa3, 0x2a, 0x05, 0xab, 0x7e, 0x3c, 0xc2, 0xed, 0x5d, 0x62, 0xef, 0xe9, 0xd3, 0x76, - 0x4f, 0x74, 0x34, 0x72, 0xab, 0xab, 0xbd, 0x8f, 0xf0, 0x43, 0x8b, 0x4a, 0x35, 0x4e, 0x4e, 0x74, - 0x11, 0x39, 0x5f, 0x29, 0xd5, 0x38, 0x39, 0xa1, 0xca, 0x1f, 0x40, 0xfd, 0xdc, 0x76, 0xf5, 0x60, - 0x6e, 0x4d, 0x38, 0x6d, 0x7d, 0xb5, 0xd8, 0x73, 0xdb, 0x45, 0x75, 0x8e, 0xe8, 0x65, 0xbd, 0xaf, - 0xf1, 0x42, 0xbd, 0x6f, 0x07, 0x0a, 0x8e, 0x3d, 0xb3, 0x43, 0x0a, 0x59, 0x2e, 0xc9, 0x58, 0x42, - 0x30, 0x15, 0x8a, 0xc2, 0x68, 0x57, 0x56, 0x48, 0x04, 0x26, 0xcd, 0xbe, 0xd9, 0x0b, 0xd8, 0xf7, - 0xae, 0xf0, 0x36, 0x20, 0xb1, 0xfe, 0xdc, 0x9a, 0x34, 0xaf, 0xc9, 0x8e, 0x9e, 0x38, 0x43, 0x35, - 0xca, 0xf0, 0xd4, 0x9a, 0xb0, 0x7b, 0x50, 0xf2, 0xc6, 0xdf, 0xea, 0x28, 0x9c, 0xb6, 0xd7, 0x0b, - 0xa7, 0xa2, 0x37, 0xfe, 0x56, 0xb3, 0xa6, 0xec, 0x43, 0xa8, 0xfa, 0x64, 0x70, 0xe8, 0x64, 0x9d, - 0x5c, 0x97, 0x55, 0xc5, 0xc4, 0x12, 0xd1, 0xc0, 0x4f, 0xac, 0x92, 0x37, 0xa0, 0xce, 0x83, 0x95, - 0x3c, 0x3a, 0x15, 0x90, 0x67, 0xa8, 0xa2, 0xd5, 0x08, 0xc8, 0x23, 0x57, 0x01, 0x7b, 0x00, 0x10, - 0x09, 0x9d, 0xf0, 0x82, 0x8e, 0x1d, 0xc6, 0x8d, 0xe0, 0xa1, 0xa1, 0x76, 0x78, 0xa1, 0x55, 0xcc, - 0xe8, 0x13, 0x8d, 0xfe, 0xb1, 0xed, 0x9a, 0xb8, 0x16, 0x42, 0xe3, 0x24, 0x68, 0x36, 0x69, 0xab, - 0x54, 0x05, 0x6c, 0x64, 0x9c, 0x04, 0xec, 0x63, 0xa8, 0x19, 0x5c, 0x38, 0xf0, 0x13, 0x4b, 0xb7, - 0x64, 0xd5, 0x5b, 0x12, 0x1b, 0x5a, 0xd5, 0x90, 0x64, 0xc8, 0x67, 0xc0, 0x22, 0x77, 0x20, 0x69, - 0x65, 0x7c, 0x51, 0xdc, 0x5e, 0x59, 0x14, 0x9b, 0xc2, 0x1f, 0x18, 0x9f, 0xc1, 0xfb, 0x0c, 0xea, - 0x69, 0x51, 0x7c, 0x67, 0x8d, 0x03, 0x8c, 0x86, 0x5f, 0xab, 0x4d, 0x64, 0xe1, 0xfc, 0x06, 0xd4, - 0x5d, 0x2f, 0xd4, 0x27, 0xc6, 0xe4, 0xd4, 0xa2, 0x8c, 0xdc, 0xc9, 0x53, 0x73, 0xbd, 0xb0, 0x1d, - 0xc1, 0x70, 0x7c, 0x38, 0x3f, 0xa4, 0xf1, 0xb9, 0x2b, 0x8f, 0x4f, 0xac, 0x9d, 0xa1, 0xac, 0x8a, - 0x14, 0x35, 0x9c, 0x27, 0xae, 0x78, 0x50, 0x86, 0xd7, 0x52, 0xf3, 0x14, 0x6b, 0x24, 0x1a, 0xf8, - 0x89, 0x76, 0xf2, 0x1a, 0x54, 0x03, 0x6f, 0xe1, 0x4f, 0x2c, 0x3d, 0x08, 0xad, 0x79, 0x73, 0x87, - 0x46, 0x14, 0x38, 0x68, 0x18, 0x5a, 0x73, 0xf6, 0x39, 0x34, 0xe6, 0xbe, 0xa5, 0x4b, 0xf3, 0xf4, - 0xba, 0xdc, 0xc5, 0x23, 0xdf, 0x4a, 0xa6, 0xaa, 0x36, 0x97, 0x52, 0x51, 0x4e, 0xa9, 0x07, 0xea, - 0x52, 0xce, 0xa4, 0x13, 0x98, 0x33, 0x51, 0x38, 0x7f, 0x0a, 0x5b, 0x52, 0xce, 0xc5, 0x19, 0x65, - 0x7e, 0x23, 0xe5, 0x8f, 0x8c, 0xc8, 0x8f, 0xcf, 0x30, 0x7b, 0x63, 0x9e, 0x4a, 0xb3, 0xd6, 0x92, - 0x4e, 0x8e, 0x4a, 0xf0, 0x9b, 0x94, 0xff, 0xe6, 0x15, 0x8a, 0x76, 0x4a, 0x59, 0x7f, 0xc2, 0xdd, - 0x58, 0xdd, 0xa0, 0xe3, 0x9a, 0xcd, 0xb7, 0xf8, 0x99, 0x57, 0x4a, 0xb0, 0x8f, 0xa0, 0x46, 0xde, - 0x8d, 0x90, 0x4e, 0xeb, 0x04, 0xcd, 0xb7, 0x65, 0x43, 0x9d, 0x1c, 0x78, 0x84, 0xd0, 0xaa, 0x4e, - 0xfc, 0x1d, 0xb0, 0x4f, 0x61, 0x8b, 0xfb, 0x44, 0x64, 0xee, 0xf8, 0xce, 0xea, 0xe2, 0x22, 0xa2, - 0x47, 0x09, 0x8b, 0xd4, 0xe0, 0x96, 0xbf, 0x70, 0x49, 0x23, 0x10, 0x39, 0xe7, 0xbe, 0x37, 0xb6, - 0x78, 0xfe, 0x7b, 0x94, 0x5f, 0x74, 0x47, 0xe3, 0x64, 0x3c, 0x2f, 0x31, 0xa3, 0x1b, 0xbe, 0x0c, - 0x3a, 0xc2, 0x7c, 0x57, 0x94, 0xc9, 0xd9, 0x3a, 0x95, 0xf9, 0xee, 0xcb, 0x94, 0xb9, 0x87, 0xf9, - 0xa8, 0x4c, 0x06, 0xf9, 0xc5, 0xc2, 0x36, 0x9b, 0xf7, 0xf9, 0xc9, 0x1e, 0xfc, 0x66, 0x6f, 0x41, - 0xc3, 0xb7, 0x26, 0x0b, 0x3f, 0xb0, 0x9f, 0x5b, 0x7a, 0x60, 0xbb, 0x67, 0xcd, 0xf7, 0x68, 0x1c, - 0xeb, 0x31, 0x74, 0x68, 0xbb, 0x67, 0xb8, 0x62, 0xad, 0x8b, 0xd0, 0xf2, 0x5d, 0x1d, 0xd5, 0x82, - 0xe6, 0xfb, 0xf2, 0x8a, 0xed, 0x10, 0x62, 0x38, 0x31, 0x5c, 0x0d, 0xac, 0xf8, 0x9b, 0xfd, 0x04, - 0x36, 0x13, 0x25, 0x71, 0x8e, 0xc2, 0xbf, 0xf9, 0xa3, 0xb5, 0xae, 0x6a, 0x52, 0x0c, 0xb4, 0x24, - 0x8e, 0x43, 0x69, 0xf5, 0xdf, 0xe4, 0xa1, 0x1c, 0x49, 0x6f, 0x56, 0x85, 0xd2, 0x71, 0xff, 0x49, - 0x7f, 0xf0, 0xac, 0xaf, 0x6c, 0xb0, 0x06, 0x00, 0x9d, 0x8c, 0xd3, 0x87, 0xed, 0x56, 0x9f, 0x9f, - 0x18, 0xa5, 0xf3, 0x78, 0x3c, 0x9d, 0x65, 0x5b, 0x50, 0x7f, 0x74, 0xdc, 0xa7, 0x10, 0x31, 0x07, - 0xe5, 0x10, 0xd4, 0xf9, 0x9a, 0x3b, 0x32, 0x38, 0x28, 0x8f, 0xa0, 0xc3, 0xd6, 0xa8, 0xa3, 0x75, - 0x23, 0x50, 0x81, 0xa2, 0xcd, 0x23, 0xad, 0xd3, 0x3a, 0xe4, 0x80, 0x22, 0x56, 0x7b, 0xa4, 0x0d, - 0xbe, 0xea, 0xb4, 0x47, 0x0a, 0xb0, 0xeb, 0xb0, 0x15, 0x97, 0x11, 0x95, 0xaf, 0x54, 0x59, 0x0d, - 0xca, 0x51, 0x39, 0xca, 0x36, 0x96, 0xaa, 0x75, 0xda, 0xc7, 0xda, 0xb0, 0xfb, 0xb4, 0xa3, 0xb7, - 0x47, 0x1d, 0xe5, 0x3a, 0x9a, 0xe1, 0xc3, 0x6e, 0xff, 0x89, 0x72, 0x03, 0x8d, 0x5c, 0xfc, 0xe2, - 0xa5, 0xdf, 0x64, 0x0c, 0x1a, 0x09, 0x2d, 0xc1, 0x9a, 0xe4, 0x63, 0x79, 0xfc, 0x58, 0xb9, 0x8b, - 0xc5, 0xee, 0x77, 0x87, 0xa3, 0x6e, 0xbf, 0x3d, 0x52, 0x5e, 0x63, 0x00, 0xc5, 0x47, 0xdd, 0xde, - 0xa8, 0xa3, 0x29, 0x3b, 0x58, 0xde, 0x57, 0x83, 0x6e, 0x5f, 0x79, 0x9d, 0xce, 0x1b, 0xb6, 0x0e, - 0x8f, 0x7a, 0x1d, 0x45, 0xa5, 0x5a, 0x06, 0xda, 0x48, 0x79, 0x03, 0x8d, 0xfd, 0xe3, 0x3e, 0xb6, - 0xed, 0x4d, 0xac, 0x90, 0x3e, 0xf5, 0x56, 0xaf, 0xa7, 0xbc, 0x25, 0x39, 0x63, 0xde, 0xc6, 0xef, - 0x67, 0xdd, 0xfe, 0xfe, 0xe0, 0x99, 0xf2, 0x0e, 0x92, 0xed, 0x69, 0x83, 0xd6, 0x7e, 0xbb, 0x35, - 0x1c, 0x29, 0xf7, 0xb0, 0x80, 0xe1, 0x51, 0xaf, 0x3b, 0x52, 0xde, 0x45, 0xaa, 0xc7, 0xad, 0xd1, - 0x41, 0x47, 0x53, 0xee, 0xe3, 0x77, 0x6b, 0x38, 0xec, 0x68, 0x23, 0x65, 0x17, 0xbf, 0xbb, 0x7d, - 0xfa, 0xfe, 0x08, 0xbf, 0xf7, 0x3b, 0xbd, 0xce, 0xa8, 0xa3, 0x7c, 0x8c, 0x03, 0xa6, 0x75, 0x8e, - 0x7a, 0xad, 0x76, 0x47, 0xf9, 0x04, 0x13, 0xbd, 0x41, 0xfb, 0x89, 0x3e, 0x38, 0x52, 0x3e, 0xc5, - 0x3a, 0xc8, 0x95, 0x34, 0xc4, 0xc1, 0xfc, 0x0c, 0xc7, 0x29, 0x4e, 0x52, 0xeb, 0x3e, 0xc7, 0x6a, - 0x0f, 0xbb, 0xfd, 0xe3, 0xa1, 0xf2, 0x05, 0x12, 0xd3, 0x27, 0x61, 0xbe, 0x64, 0xdb, 0xa0, 0x0c, - 0xfa, 0xfa, 0xfe, 0xf1, 0x51, 0xaf, 0xdb, 0x6e, 0x8d, 0x3a, 0xfa, 0x93, 0xce, 0x37, 0xca, 0xef, - 0xe0, 0xb4, 0x1f, 0x69, 0x1d, 0x5d, 0xb4, 0xe3, 0xc7, 0x51, 0x5a, 0xb4, 0xe5, 0x27, 0x58, 0x45, - 0x82, 0xd7, 0x8f, 0x9f, 0x28, 0xbf, 0xab, 0x7e, 0x0b, 0xe5, 0x48, 0xaf, 0xc2, 0xea, 0xba, 0xfd, - 0x7e, 0x47, 0x53, 0x36, 0x70, 0xec, 0x7a, 0x9d, 0x47, 0x23, 0x25, 0x43, 0x8e, 0x92, 0xee, 0xe3, - 0x83, 0x91, 0x92, 0xc5, 0xcf, 0xc1, 0x31, 0x8e, 0x78, 0x8e, 0xc6, 0xb6, 0x73, 0xd8, 0x55, 0xf2, - 0xf8, 0xd5, 0xea, 0x8f, 0xba, 0x4a, 0x81, 0xc6, 0xbe, 0xdb, 0x7f, 0xdc, 0xeb, 0x28, 0x45, 0x84, - 0x1e, 0xb6, 0xb4, 0x27, 0x4a, 0x09, 0x33, 0xb5, 0x8e, 0x8e, 0x7a, 0xdf, 0x28, 0x65, 0xf5, 0x1e, - 0x94, 0x5a, 0x27, 0x27, 0x87, 0xa8, 0xa3, 0x96, 0x21, 0xff, 0xe8, 0xb8, 0xd7, 0xe3, 0x07, 0x9d, - 0xf7, 0x06, 0xa3, 0xd1, 0xe0, 0x50, 0xc9, 0xe0, 0x54, 0x8f, 0x06, 0x47, 0x4a, 0x56, 0xfd, 0x87, - 0x19, 0x80, 0x64, 0x0f, 0xe1, 0x2e, 0x8d, 0x95, 0xd9, 0x82, 0x70, 0xbb, 0x44, 0x67, 0xf2, 0x44, - 0x44, 0x0e, 0xbf, 0xd1, 0xb6, 0x98, 0x7a, 0xfe, 0xcc, 0x08, 0xa3, 0x43, 0xb5, 0x3c, 0x85, 0x12, - 0xcb, 0x3e, 0x71, 0x3d, 0xdf, 0x42, 0x66, 0xe1, 0x5a, 0x3c, 0x24, 0x9e, 0xd7, 0x6a, 0x02, 0xd8, - 0x43, 0x18, 0x8a, 0x13, 0xcb, 0x9d, 0x38, 0x5e, 0x60, 0x99, 0xa8, 0x2b, 0x15, 0x88, 0x23, 0x40, - 0x04, 0xda, 0xbb, 0x44, 0xa5, 0x3f, 0xb4, 0xfc, 0x99, 0xed, 0x1a, 0xa1, 0x65, 0x8a, 0xb8, 0x9c, - 0x04, 0x51, 0xff, 0x2c, 0x07, 0x90, 0xf0, 0x51, 0x76, 0x0b, 0xca, 0x91, 0xad, 0x29, 0x62, 0x89, - 0xa5, 0x90, 0x5b, 0x98, 0x6c, 0x17, 0x6e, 0x88, 0xb3, 0x63, 0xe2, 0x10, 0xd3, 0x85, 0x6e, 0xbb, - 0xfa, 0xd8, 0x08, 0x85, 0xfa, 0xcd, 0x04, 0x96, 0x7b, 0xec, 0xbb, 0xee, 0x9e, 0x11, 0xb2, 0x5d, - 0xd8, 0x94, 0xf3, 0x84, 0x97, 0xf3, 0xb4, 0x53, 0x89, 0x47, 0x63, 0x92, 0x8c, 0xa3, 0xcb, 0x39, - 0xfb, 0x00, 0xae, 0xfb, 0xd6, 0xd4, 0xb7, 0x82, 0x53, 0x3d, 0x0c, 0xe4, 0x6a, 0x78, 0x60, 0x60, - 0x4b, 0x20, 0x47, 0x41, 0x5c, 0xcb, 0x07, 0x70, 0x5d, 0xf0, 0xd6, 0xa5, 0x86, 0xf1, 0x23, 0xeb, - 0x5b, 0x1c, 0x29, 0xb7, 0xeb, 0x55, 0x00, 0x21, 0x56, 0xa2, 0xeb, 0x44, 0x65, 0xad, 0xc2, 0x45, - 0x08, 0xea, 0x01, 0xef, 0x03, 0xb3, 0x03, 0x7d, 0xc9, 0x9c, 0x26, 0xe3, 0xb0, 0xac, 0x29, 0x76, - 0x70, 0x94, 0x32, 0xa5, 0xaf, 0xb2, 0xd4, 0xcb, 0x57, 0x59, 0xea, 0xdb, 0x50, 0x20, 0xc9, 0x43, - 0x06, 0x63, 0x59, 0xe3, 0x09, 0xa6, 0x42, 0x1e, 0x17, 0x19, 0x59, 0x88, 0x8d, 0xdd, 0xc6, 0x03, - 0xba, 0x7b, 0x85, 0x33, 0x83, 0x50, 0x8d, 0x70, 0xea, 0x3f, 0xcd, 0x40, 0x23, 0x2d, 0x89, 0x79, - 0x10, 0x3b, 0x89, 0xce, 0x17, 0x92, 0x88, 0xfc, 0x2b, 0x50, 0x99, 0x9f, 0x89, 0x50, 0xbc, 0x98, - 0xa2, 0xf2, 0xfc, 0x8c, 0x87, 0xe0, 0xd1, 0x06, 0x99, 0x9f, 0x71, 0x9b, 0x65, 0x75, 0x42, 0x8a, - 0xf3, 0xb3, 0xc8, 0x50, 0x59, 0x08, 0xa2, 0xfc, 0x2a, 0xd1, 0x82, 0x13, 0xa5, 0xd4, 0xe6, 0xc2, - 0xaf, 0x56, 0x9b, 0xd5, 0x1d, 0xa8, 0xc9, 0x0a, 0x0c, 0x53, 0x20, 0x67, 0x9b, 0x17, 0xa2, 0xe5, - 0xf8, 0xa9, 0xfe, 0xbd, 0x0c, 0x91, 0xbc, 0x94, 0x33, 0x2c, 0xd5, 0x84, 0xec, 0x0b, 0x34, 0xf7, - 0x1d, 0x0a, 0x47, 0xe8, 0x14, 0xcd, 0x9b, 0x78, 0xd1, 0x85, 0x16, 0x38, 0x35, 0x82, 0xd6, 0x22, - 0xf4, 0xda, 0x9e, 0x83, 0x03, 0x67, 0x07, 0xd1, 0xf1, 0xa8, 0x7c, 0x64, 0xf6, 0x8a, 0xf3, 0x4f, - 0x1d, 0xd8, 0x5a, 0x11, 0xd4, 0xd8, 0x8d, 0xd0, 0x38, 0x89, 0xae, 0xd9, 0x84, 0xc6, 0x49, 0xec, - 0xf1, 0xcf, 0x5e, 0x11, 0x83, 0xb8, 0x03, 0xc5, 0x6e, 0x2c, 0xcc, 0xe3, 0x5b, 0x25, 0x39, 0x71, - 0x93, 0xc4, 0x83, 0x4a, 0x9b, 0x6e, 0xa5, 0x1c, 0x1a, 0x73, 0x76, 0x1f, 0x72, 0x33, 0x63, 0x2e, - 0xc2, 0x0d, 0xcd, 0x38, 0xdc, 0xc0, 0xb1, 0x0f, 0x0e, 0x8d, 0x39, 0xf7, 0x51, 0x22, 0xd1, 0xed, - 0x4f, 0xa1, 0x1c, 0x01, 0x5e, 0x2a, 0x52, 0xf8, 0xdf, 0xb3, 0x50, 0xd9, 0x97, 0xd5, 0xfe, 0x89, - 0xe1, 0xea, 0xa1, 0xbf, 0x70, 0x51, 0x3b, 0x13, 0xa6, 0x7f, 0x75, 0x62, 0xb8, 0x23, 0x01, 0x8a, - 0x66, 0x25, 0xfb, 0x2b, 0x66, 0xe5, 0x0e, 0xa0, 0x7d, 0xa2, 0xdb, 0x26, 0x79, 0x96, 0xf8, 0xad, - 0x9a, 0xb2, 0xef, 0x9d, 0x77, 0xcd, 0xae, 0x79, 0xb1, 0xde, 0x05, 0x97, 0xff, 0xf5, 0x5d, 0x70, - 0x85, 0xb5, 0x2e, 0xb8, 0xff, 0x5b, 0x9c, 0x66, 0xec, 0xed, 0x84, 0xf1, 0x9d, 0x59, 0x97, 0x44, - 0x56, 0xe1, 0x71, 0xcd, 0x79, 0x7c, 0x54, 0xa1, 0x6b, 0x5e, 0xa8, 0x7f, 0x9e, 0x85, 0xc2, 0xcf, - 0x17, 0x96, 0x7f, 0xc9, 0x3e, 0x85, 0x4a, 0x10, 0xce, 0x42, 0xd9, 0x01, 0x72, 0x8b, 0x8f, 0x2b, - 0xe1, 0xc9, 0x7f, 0x61, 0xcd, 0x2c, 0x37, 0xe4, 0xde, 0x04, 0xa4, 0xa5, 0xfd, 0xb7, 0x0d, 0x05, - 0xb4, 0x24, 0x02, 0xe1, 0x03, 0xe7, 0x09, 0x34, 0x89, 0x5d, 0xcf, 0xb4, 0x02, 0xe1, 0xee, 0x86, - 0xc4, 0x23, 0xa1, 0x71, 0x04, 0x9a, 0xc4, 0x14, 0xea, 0x8d, 0x8e, 0x7c, 0xa4, 0x4c, 0x62, 0x8e, - 0xa1, 0x88, 0xae, 0x65, 0xa0, 0xad, 0x17, 0x1d, 0x24, 0x8d, 0xd3, 0xc8, 0x78, 0x1c, 0xcf, 0x30, - 0x47, 0xc6, 0x49, 0x74, 0x68, 0x5a, 0x24, 0x55, 0x13, 0xea, 0xa9, 0xc6, 0xa6, 0xb5, 0x3e, 0x14, - 0xb8, 0x9d, 0x1e, 0x6a, 0x0f, 0x19, 0x49, 0xfd, 0xc8, 0xca, 0x2a, 0x47, 0x4e, 0xd2, 0x45, 0xe8, - 0x36, 0xc6, 0xf1, 0xd1, 0x7e, 0x6b, 0xd4, 0x51, 0x0a, 0xa4, 0x5b, 0x74, 0xb4, 0xc7, 0x1d, 0xa5, - 0xa8, 0xfe, 0xfd, 0x2c, 0x6c, 0x8d, 0x7c, 0xc3, 0x0d, 0x0c, 0x7e, 0xb2, 0xc8, 0x0d, 0x7d, 0xcf, - 0x61, 0x5f, 0x42, 0x39, 0x9c, 0x38, 0xf2, 0x20, 0xbe, 0x26, 0x38, 0xc1, 0x32, 0xe9, 0x83, 0xd1, - 0xc4, 0xa1, 0xa1, 0x2c, 0x85, 0xfc, 0x83, 0xfd, 0x08, 0x0a, 0x63, 0xeb, 0xc4, 0x76, 0xc5, 0xaa, - 0xbe, 0xbe, 0x9c, 0x71, 0x0f, 0x91, 0x07, 0x1b, 0x1a, 0xa7, 0x62, 0x1f, 0x40, 0x71, 0xe2, 0xcd, - 0x66, 0x76, 0x28, 0x38, 0xe8, 0x8d, 0xd5, 0x8a, 0x10, 0x7b, 0xb0, 0xa1, 0x09, 0x3a, 0xf6, 0x29, - 0x94, 0x7d, 0xcf, 0x71, 0xc6, 0xc6, 0xe4, 0x4c, 0x30, 0xd4, 0xe6, 0x72, 0x1e, 0x4d, 0xe0, 0x0f, - 0x36, 0xb4, 0x98, 0x56, 0x7d, 0x00, 0x25, 0xd1, 0x58, 0x1c, 0x80, 0xbd, 0xce, 0xe3, 0xae, 0x18, - 0xc8, 0xf6, 0xe0, 0xf0, 0xb0, 0x3b, 0xe2, 0xa7, 0x2d, 0xb5, 0x41, 0xaf, 0xb7, 0xd7, 0x6a, 0x3f, - 0x51, 0xb2, 0x7b, 0x65, 0x28, 0x1a, 0x14, 0xf0, 0x57, 0xff, 0xff, 0x0c, 0x6c, 0x2e, 0x75, 0x80, - 0x7d, 0x0e, 0xf9, 0x19, 0x0a, 0x1a, 0x3e, 0x3c, 0x6f, 0xae, 0xed, 0xa5, 0x94, 0xe6, 0xe2, 0x07, - 0x73, 0xa8, 0x5f, 0x40, 0x23, 0x0d, 0x97, 0xee, 0xd6, 0xd4, 0xa1, 0xa2, 0x75, 0x5a, 0xfb, 0xfa, - 0xa0, 0xdf, 0xfb, 0x86, 0xeb, 0xf2, 0x94, 0x7c, 0xa6, 0x75, 0x47, 0x1d, 0x25, 0xab, 0xfe, 0x3e, - 0x28, 0xcb, 0x03, 0xc3, 0x1e, 0xc3, 0xe6, 0xc4, 0x9b, 0xcd, 0x1d, 0x8b, 0xef, 0xbe, 0x64, 0xca, - 0xee, 0xae, 0x19, 0x49, 0x41, 0x46, 0x33, 0xd6, 0x98, 0xa4, 0xd2, 0xea, 0xff, 0x07, 0x6c, 0x75, - 0x04, 0x7f, 0x7b, 0xc5, 0xff, 0x75, 0x06, 0xf2, 0x47, 0x8e, 0x81, 0x42, 0xb3, 0x40, 0xf7, 0x4f, - 0x84, 0x30, 0xaa, 0x4a, 0xdb, 0x13, 0x97, 0x05, 0xe1, 0xd8, 0x7b, 0x90, 0x0b, 0x27, 0xd1, 0xc9, - 0xd2, 0x9b, 0x57, 0x2c, 0xbe, 0x83, 0x0d, 0x0d, 0xa9, 0xd8, 0x3d, 0xc8, 0x99, 0x66, 0x14, 0x68, - 0x13, 0xf6, 0xd4, 0xbe, 0x11, 0x1a, 0xfb, 0xd6, 0xd4, 0x76, 0x6d, 0x71, 0x5f, 0x06, 0x49, 0xd8, - 0x5b, 0x90, 0x33, 0x27, 0x4e, 0x3a, 0xb2, 0x89, 0x94, 0x52, 0x81, 0xe6, 0xc4, 0x61, 0x2a, 0xd4, - 0x43, 0xff, 0x52, 0xf7, 0x17, 0x2e, 0x79, 0xb6, 0x03, 0xa1, 0x02, 0x55, 0x51, 0x42, 0x2c, 0xc8, - 0x0d, 0xcc, 0x1d, 0xf0, 0x81, 0x3e, 0xf7, 0xad, 0xb9, 0xe1, 0xc7, 0xca, 0x8f, 0x1d, 0x1c, 0x71, - 0xc0, 0x5e, 0x11, 0xe8, 0xb2, 0xb8, 0xfa, 0x3e, 0xdd, 0xce, 0x40, 0x65, 0x41, 0x8d, 0xbe, 0xd6, - 0x1c, 0x00, 0x14, 0x18, 0xf5, 0x7f, 0x64, 0xa1, 0x2a, 0xb5, 0x87, 0x7d, 0x0c, 0x65, 0x33, 0xbd, - 0x11, 0x6f, 0xad, 0x34, 0xfa, 0xc1, 0x7e, 0xb4, 0x05, 0x4d, 0xb1, 0xbc, 0xbf, 0x80, 0x7a, 0x60, - 0x85, 0xfa, 0x73, 0xc3, 0xb7, 0x91, 0xe1, 0x06, 0x62, 0x18, 0x85, 0x07, 0x63, 0x68, 0x85, 0x4f, - 0x23, 0xcc, 0xc1, 0x86, 0x56, 0x0b, 0xa4, 0x34, 0x7b, 0x17, 0x4a, 0x51, 0x97, 0x72, 0xa9, 0x5b, - 0x73, 0x1c, 0x78, 0xb0, 0xa1, 0x45, 0x78, 0x24, 0xb5, 0x2e, 0xac, 0xc9, 0x22, 0x8c, 0xf4, 0x9a, - 0x7a, 0xd4, 0x21, 0x02, 0xd2, 0x4d, 0x5c, 0xfe, 0xc9, 0x76, 0x01, 0x4c, 0xcb, 0x70, 0x1c, 0x8f, - 0x04, 0x61, 0x41, 0x36, 0x97, 0xf7, 0x63, 0x38, 0xbf, 0xf9, 0x1b, 0xa5, 0xd4, 0x13, 0x28, 0x89, - 0x8e, 0xa1, 0xed, 0x32, 0xec, 0x8c, 0xf4, 0xa7, 0x2d, 0xad, 0x8b, 0x96, 0xad, 0x88, 0xe1, 0x3e, - 0xd6, 0x5a, 0x7d, 0xc1, 0xfe, 0xb4, 0xce, 0xd3, 0xc1, 0x93, 0x8e, 0x92, 0xe5, 0xb1, 0xf8, 0xfe, - 0x37, 0x4a, 0x8e, 0x1b, 0xab, 0x9d, 0xa3, 0x96, 0x86, 0xcc, 0xaf, 0x0a, 0xa5, 0xce, 0xd7, 0x9d, - 0xf6, 0x31, 0x71, 0xbf, 0x06, 0xc0, 0x7e, 0xa7, 0xd5, 0xeb, 0x0d, 0xd0, 0x7a, 0x52, 0x8a, 0x7b, - 0x15, 0xd4, 0xfd, 0x68, 0x24, 0xd5, 0x7f, 0x56, 0x87, 0x46, 0x7a, 0xe1, 0xb0, 0xcf, 0xa0, 0x6c, - 0x9a, 0xa9, 0x19, 0xb8, 0xb3, 0x6e, 0x81, 0x3d, 0xd8, 0x37, 0xa3, 0x49, 0xe0, 0x1f, 0xec, 0xf5, - 0x68, 0x99, 0x67, 0x57, 0x96, 0x79, 0xb4, 0xc8, 0x7f, 0x0a, 0x9b, 0xe2, 0x86, 0x04, 0x9a, 0x30, - 0x63, 0x23, 0xb0, 0xd2, 0x6b, 0xb8, 0x4d, 0xc8, 0x7d, 0x81, 0x3b, 0xd8, 0xd0, 0x1a, 0x93, 0x14, - 0x84, 0xfd, 0x18, 0x1a, 0x06, 0x69, 0xec, 0x71, 0xfe, 0xbc, 0x7c, 0x3c, 0xaa, 0x85, 0x38, 0x29, - 0x7b, 0xdd, 0x90, 0x01, 0xb8, 0x4c, 0x4c, 0xdf, 0x9b, 0x27, 0x99, 0x0b, 0xf2, 0x32, 0xd9, 0xf7, - 0xbd, 0xb9, 0x94, 0xb7, 0x66, 0x4a, 0x69, 0xf6, 0x29, 0xd4, 0x44, 0xcb, 0x13, 0xdd, 0x3f, 0xde, - 0x50, 0xbc, 0xd9, 0x24, 0xeb, 0x0f, 0x36, 0xb4, 0xea, 0x24, 0x49, 0xb2, 0x8f, 0xa0, 0xca, 0x1b, - 0x9c, 0xd8, 0x02, 0xf1, 0x4a, 0xa0, 0xd6, 0x46, 0xb9, 0xc0, 0x88, 0x53, 0xec, 0x03, 0x00, 0x6a, - 0x27, 0xcf, 0x53, 0x4e, 0xf9, 0x5b, 0x7d, 0x6f, 0x1e, 0x65, 0xa9, 0x98, 0x51, 0x42, 0x6a, 0x1e, - 0x3f, 0x29, 0x57, 0x59, 0x6d, 0x1e, 0x1d, 0x06, 0x4b, 0x9a, 0xc7, 0x4f, 0xc6, 0xc5, 0xcd, 0xe3, - 0xd9, 0x60, 0xa5, 0x79, 0x51, 0x2e, 0xde, 0x3c, 0x9e, 0x29, 0x6a, 0x1e, 0xcf, 0x53, 0x5d, 0x6e, - 0x5e, 0x94, 0x85, 0x9a, 0xc7, 0x73, 0xfc, 0x18, 0x1a, 0x91, 0x56, 0x28, 0x3a, 0x55, 0x4b, 0x1d, - 0xe6, 0x14, 0xb8, 0xa8, 0x63, 0xf5, 0x50, 0x06, 0x60, 0xee, 0xe0, 0xd4, 0x3b, 0x97, 0xb6, 0x77, - 0x5d, 0xce, 0x3d, 0x3c, 0xf5, 0xce, 0xe5, 0xfd, 0x5d, 0x0f, 0x64, 0x00, 0xb6, 0x96, 0x77, 0x91, - 0xce, 0xc2, 0x36, 0xe4, 0xd6, 0x52, 0x0f, 0x9f, 0xda, 0xd6, 0x39, 0xb6, 0xd6, 0x88, 0x12, 0x38, - 0x28, 0x89, 0x95, 0x17, 0x88, 0xe8, 0x40, 0xca, 0x77, 0x28, 0x6a, 0x82, 0xd8, 0xf4, 0x0b, 0x70, - 0x6d, 0x2d, 0x5c, 0x39, 0x9b, 0x22, 0xaf, 0xad, 0x63, 0x37, 0x95, 0xb1, 0xc6, 0x49, 0x45, 0xd6, - 0x64, 0x57, 0x04, 0xd6, 0x77, 0x0b, 0xcb, 0x9d, 0x58, 0xe2, 0x29, 0x83, 0xd4, 0xae, 0x18, 0x0a, - 0x5c, 0xb2, 0x2b, 0x22, 0x48, 0xbc, 0xae, 0xe3, 0xec, 0x6c, 0x79, 0x5d, 0x4b, 0x99, 0x69, 0x5d, - 0xc7, 0x59, 0xe3, 0x0d, 0x15, 0xe7, 0xbd, 0xb6, 0xb2, 0xa1, 0xa4, 0xcc, 0x7c, 0x43, 0x45, 0x00, - 0xf5, 0xaf, 0xf3, 0x50, 0x12, 0x7c, 0x80, 0x5d, 0x83, 0xcd, 0xb6, 0xd6, 0x69, 0x8d, 0x3a, 0xfa, - 0x7e, 0x6b, 0xd4, 0xda, 0x6b, 0x0d, 0x51, 0xbc, 0x33, 0x68, 0xb4, 0x7a, 0xa3, 0x8e, 0x96, 0xc0, - 0x32, 0xc8, 0xdc, 0xf6, 0xb5, 0xc1, 0x51, 0x02, 0xca, 0x32, 0x05, 0x6a, 0x22, 0x2f, 0xbf, 0x59, - 0x9b, 0x63, 0x9b, 0x50, 0xe5, 0x19, 0x39, 0x80, 0x4e, 0x16, 0x51, 0x2e, 0x9e, 0x2e, 0x48, 0x59, - 0xba, 0xfd, 0xfd, 0xce, 0xd7, 0x4a, 0x31, 0xc9, 0xc2, 0x01, 0xa5, 0x38, 0x0b, 0x4f, 0x97, 0xb1, - 0x31, 0x23, 0xed, 0xb8, 0xdf, 0x4e, 0xea, 0xa9, 0xd0, 0x49, 0x13, 0x5e, 0xcc, 0xd3, 0x6e, 0xe7, - 0x99, 0x02, 0x98, 0x89, 0x97, 0x42, 0xe9, 0x2a, 0x2a, 0x28, 0x54, 0x08, 0x25, 0x6b, 0xec, 0x26, - 0x5c, 0x1b, 0x1e, 0x0c, 0x9e, 0xe9, 0x3c, 0x53, 0xdc, 0x85, 0x3a, 0xdb, 0x06, 0x45, 0x42, 0xf0, - 0xe2, 0x1b, 0x58, 0x25, 0x41, 0x23, 0xc2, 0xa1, 0xb2, 0x49, 0x6e, 0x46, 0x84, 0x8d, 0x38, 0x6b, - 0x57, 0xb0, 0x2b, 0x3c, 0xeb, 0xa0, 0x77, 0x7c, 0xd8, 0x1f, 0x2a, 0x5b, 0xd8, 0x08, 0x82, 0xf0, - 0x96, 0xb3, 0xb8, 0x98, 0x44, 0x20, 0x5c, 0x23, 0x19, 0x81, 0xb0, 0x67, 0x2d, 0xad, 0xdf, 0xed, - 0x3f, 0x1e, 0x2a, 0xdb, 0x71, 0xc9, 0x1d, 0x4d, 0x1b, 0x68, 0x43, 0xe5, 0x7a, 0x0c, 0x18, 0x8e, - 0x5a, 0xa3, 0xe3, 0xa1, 0x72, 0x23, 0x6e, 0xe5, 0x91, 0x36, 0x68, 0x77, 0x86, 0xc3, 0x5e, 0x77, - 0x38, 0x52, 0x6e, 0xb2, 0xeb, 0xb0, 0x95, 0xb4, 0x28, 0x22, 0x6e, 0x4a, 0x0d, 0xd5, 0x1e, 0x77, - 0x46, 0xca, 0xad, 0xb8, 0x19, 0xed, 0x41, 0xaf, 0xd7, 0x22, 0xff, 0xe7, 0x6d, 0x24, 0x22, 0x2f, - 0x9f, 0xe8, 0xcd, 0x2b, 0xd8, 0xae, 0xe3, 0xbe, 0x0c, 0xba, 0x23, 0x2d, 0x8d, 0x61, 0xe7, 0xe7, - 0xc7, 0x9d, 0x7e, 0xbb, 0xa3, 0xbc, 0x9a, 0x2c, 0x8d, 0x18, 0x76, 0x37, 0x5e, 0x1a, 0x31, 0xe8, - 0xb5, 0xb8, 0xce, 0x08, 0x34, 0x54, 0x76, 0xf6, 0x6a, 0xf4, 0x8a, 0x86, 0x10, 0x44, 0xea, 0x57, - 0xc0, 0xe4, 0x5b, 0xea, 0xe2, 0x32, 0x1e, 0x83, 0xfc, 0xd4, 0xf7, 0x66, 0xd1, 0x99, 0x55, 0xfc, - 0x66, 0x3b, 0x50, 0x9d, 0x2f, 0xc6, 0x14, 0x3b, 0x48, 0x4e, 0xcc, 0xc9, 0x20, 0xf5, 0xef, 0x66, - 0xa0, 0x91, 0x16, 0x42, 0xa8, 0x1a, 0xd9, 0x53, 0xdd, 0xf5, 0x42, 0x7e, 0x61, 0x2c, 0x88, 0xcc, - 0x5a, 0x7b, 0xda, 0xf7, 0x42, 0xba, 0x31, 0x46, 0x06, 0x4f, 0x2c, 0x53, 0x78, 0xa9, 0x71, 0x9a, - 0x75, 0xe1, 0x5a, 0xea, 0x12, 0x7f, 0xea, 0xba, 0x5e, 0x33, 0xbe, 0xa1, 0xbc, 0xd4, 0x7e, 0x8d, - 0x05, 0x2b, 0x30, 0xf5, 0x00, 0xea, 0x29, 0x09, 0x47, 0x2e, 0x87, 0x69, 0xba, 0x5d, 0x65, 0x7b, - 0xfa, 0xe2, 0x46, 0xa9, 0xa7, 0x50, 0x93, 0xc5, 0xdd, 0x0f, 0x2e, 0x88, 0xce, 0xa3, 0x88, 0x6f, - 0xdd, 0x36, 0xa3, 0x3b, 0x69, 0x11, 0xa8, 0x6b, 0xaa, 0xaf, 0x41, 0xe5, 0xd1, 0x59, 0x74, 0xbd, - 0x50, 0xbe, 0xe1, 0x58, 0x11, 0x87, 0x1e, 0xff, 0x67, 0x16, 0xaa, 0x92, 0x00, 0xfd, 0xb5, 0xc6, - 0xfb, 0x0e, 0x54, 0x92, 0x63, 0xd7, 0xe2, 0x18, 0x5a, 0x0c, 0x48, 0xb5, 0x37, 0xb7, 0xd4, 0xde, - 0x26, 0x94, 0x44, 0x54, 0x4d, 0x78, 0x0d, 0xa2, 0xe4, 0x4b, 0x39, 0xa4, 0xd8, 0x87, 0x50, 0x93, - 0xae, 0x1b, 0x46, 0x77, 0x38, 0x56, 0xc2, 0xb8, 0xc9, 0xd5, 0xc3, 0x80, 0x5d, 0x87, 0xe2, 0xf4, - 0x4c, 0x37, 0xc7, 0x91, 0x93, 0xa0, 0x30, 0x3d, 0xdb, 0x1f, 0x93, 0xbb, 0x6d, 0x1a, 0xcb, 0x8c, - 0x32, 0x37, 0x96, 0xa7, 0x91, 0x64, 0xb8, 0x07, 0xa5, 0xe9, 0x19, 0xbf, 0xcb, 0xc7, 0xa3, 0xf4, - 0x42, 0x70, 0xc5, 0x23, 0xaa, 0x15, 0xa7, 0x67, 0x74, 0xaf, 0xef, 0x0b, 0x50, 0x96, 0x3c, 0x12, - 0x81, 0x08, 0xd7, 0x2f, 0x37, 0x6a, 0x33, 0xed, 0x9c, 0x08, 0xd4, 0x7f, 0x9e, 0x81, 0x46, 0xa2, - 0x8a, 0xe0, 0xb2, 0x60, 0xf7, 0xe5, 0x47, 0x43, 0x9a, 0xcb, 0xda, 0x0a, 0x92, 0x3c, 0x18, 0x5d, - 0xce, 0xf9, 0x35, 0xe8, 0x75, 0xb7, 0x45, 0xd6, 0xdd, 0xc6, 0xcc, 0xad, 0xbb, 0x8d, 0xa9, 0x3e, - 0x86, 0xdc, 0xe8, 0x72, 0xce, 0x8d, 0x52, 0xe4, 0x7e, 0x5c, 0xd3, 0xe5, 0x7c, 0x8f, 0x7c, 0xe4, - 0x4f, 0x3a, 0xdf, 0xf0, 0x83, 0xa6, 0x47, 0x5a, 0xf7, 0xb0, 0xa5, 0x7d, 0x43, 0xde, 0x7f, 0x92, - 0x0f, 0x8f, 0x06, 0x5a, 0xa7, 0xfb, 0xb8, 0x4f, 0x80, 0x3c, 0x99, 0xac, 0x49, 0x13, 0x5b, 0xa6, - 0xf9, 0xe8, 0x4c, 0x7e, 0x78, 0x22, 0x93, 0x7a, 0x78, 0x22, 0xbe, 0x93, 0x22, 0x5f, 0x3d, 0x0d, - 0xe3, 0x2b, 0xa2, 0xd1, 0x32, 0xcd, 0x25, 0xcb, 0x94, 0xbd, 0x03, 0xf9, 0xe9, 0x99, 0x75, 0x99, - 0xd6, 0x37, 0xd3, 0x77, 0x3d, 0x88, 0x40, 0xfd, 0x65, 0x06, 0x58, 0xaa, 0x21, 0x5c, 0x05, 0xfa, - 0xa1, 0x6d, 0xf9, 0x0c, 0x9a, 0xe2, 0x22, 0x32, 0xa7, 0x92, 0xdc, 0x43, 0x62, 0x48, 0xaf, 0x73, - 0x3c, 0x55, 0x97, 0x5c, 0x68, 0x61, 0x0f, 0x81, 0x5f, 0xa6, 0xed, 0xba, 0x53, 0x2f, 0x6d, 0xff, - 0x49, 0xbb, 0x4d, 0x4b, 0x68, 0xd8, 0x7d, 0xd8, 0x92, 0x27, 0x8d, 0x5f, 0x8f, 0xe5, 0xfe, 0xb2, - 0xcd, 0x64, 0xd6, 0x68, 0x07, 0xaa, 0x7f, 0x94, 0x81, 0x6b, 0xe9, 0x05, 0xf1, 0x9b, 0xf5, 0x32, - 0x7d, 0x17, 0x38, 0xb7, 0x7c, 0x17, 0x78, 0xdd, 0x7a, 0xca, 0xaf, 0x5d, 0x4f, 0x7f, 0x98, 0x81, - 0x6d, 0x69, 0xf4, 0x13, 0xa5, 0xf5, 0x7f, 0x53, 0xcb, 0xa4, 0x2b, 0xc1, 0xf9, 0xd4, 0x95, 0x60, - 0xf5, 0x63, 0xd8, 0x4a, 0x1a, 0xd2, 0x16, 0x37, 0xc4, 0x5e, 0x83, 0xaa, 0x6b, 0x9d, 0xeb, 0xd1, - 0xfd, 0x31, 0xde, 0x12, 0x70, 0xad, 0x73, 0x41, 0xa0, 0x3e, 0x92, 0xf7, 0x62, 0xfc, 0x3e, 0x8c, - 0x63, 0xca, 0x2d, 0x2f, 0x79, 0x8e, 0x19, 0xa1, 0xb0, 0x34, 0xa9, 0xe1, 0x25, 0xd7, 0x3a, 0xa7, - 0x71, 0x70, 0xa1, 0x4a, 0xe5, 0xb4, 0x4c, 0xb3, 0xed, 0x39, 0x6b, 0x6f, 0x70, 0xdc, 0x82, 0xf2, - 0xdc, 0x4f, 0x75, 0x1b, 0x2d, 0x5d, 0x2a, 0xf8, 0xae, 0x88, 0x41, 0xad, 0xfa, 0xf8, 0x79, 0x3c, - 0x4a, 0x1c, 0x9e, 0xcf, 0x27, 0xef, 0x43, 0xed, 0x42, 0x8d, 0x8b, 0x26, 0xdf, 0x9b, 0x63, 0x85, - 0xb1, 0x87, 0x3e, 0x73, 0xaf, 0x4e, 0x1e, 0x7a, 0x84, 0x04, 0xd6, 0x77, 0xe2, 0xda, 0x1d, 0x7e, - 0xaa, 0x7f, 0xb3, 0x02, 0x90, 0x74, 0x36, 0xc5, 0xb6, 0x33, 0x4b, 0x6c, 0xfb, 0xa5, 0x5c, 0xf5, - 0x1f, 0x43, 0x63, 0xe2, 0xcd, 0x2f, 0xf5, 0x24, 0x47, 0x6e, 0x6d, 0x8e, 0x1a, 0x52, 0x8d, 0xa4, - 0xf3, 0xc1, 0x2b, 0xde, 0xe2, 0xfc, 0x5a, 0x6f, 0xf1, 0x87, 0x50, 0xe2, 0x7e, 0xb2, 0x40, 0x1c, - 0xf2, 0xba, 0xb9, 0xcc, 0x21, 0x1f, 0x88, 0xfb, 0xcf, 0x11, 0x1d, 0xeb, 0xa0, 0x9a, 0x2d, 0x2e, - 0x7f, 0xca, 0x47, 0xbe, 0xee, 0xae, 0xe6, 0x8c, 0xc8, 0x78, 0x8c, 0xcb, 0x90, 0x93, 0xec, 0x21, - 0x6c, 0x47, 0x56, 0xe8, 0x4c, 0x98, 0x87, 0x74, 0xe9, 0x8a, 0x5f, 0x07, 0xdc, 0x12, 0x86, 0xe7, - 0x8c, 0x1b, 0x85, 0xc3, 0xef, 0x1c, 0xf6, 0x23, 0xb8, 0x26, 0x4e, 0x67, 0x60, 0x06, 0x1c, 0x4e, - 0xa2, 0xe7, 0x6f, 0x4d, 0x28, 0xe2, 0x10, 0xdf, 0x8c, 0xf4, 0x00, 0x24, 0xbf, 0x07, 0x8a, 0x6c, - 0xe5, 0x12, 0x2d, 0xbf, 0x6f, 0xda, 0x90, 0x8c, 0x5a, 0xa4, 0x7c, 0x1b, 0x36, 0x45, 0xc1, 0x71, - 0xa1, 0xc0, 0x6f, 0x5e, 0x72, 0x70, 0x54, 0xe2, 0xd7, 0xb0, 0x3d, 0x39, 0x35, 0xdc, 0x13, 0x4b, - 0x0f, 0xc7, 0x8e, 0x4e, 0x0f, 0x75, 0xe8, 0x33, 0x63, 0x2e, 0xce, 0x87, 0xbd, 0xb3, 0xd2, 0xfd, - 0x36, 0x11, 0x8f, 0xc6, 0x0e, 0x85, 0xdd, 0xe2, 0x28, 0xc5, 0xd6, 0x64, 0x19, 0x7e, 0xfb, 0x2f, - 0x72, 0x50, 0x14, 0xf7, 0xc9, 0xef, 0x43, 0x1e, 0x8d, 0x1a, 0xe1, 0x5f, 0xdb, 0x5e, 0x27, 0xaf, - 0xe8, 0x49, 0x3b, 0x14, 0x6d, 0x0f, 0xa0, 0x68, 0x98, 0xa6, 0x3e, 0x3d, 0x4b, 0xbb, 0x6b, 0x97, - 0x44, 0xc7, 0xc1, 0x86, 0x56, 0x30, 0x48, 0x86, 0x7c, 0x06, 0x15, 0xa4, 0xe7, 0xb6, 0x6e, 0x4a, - 0x69, 0x5b, 0x65, 0xf2, 0x07, 0x1b, 0x5a, 0xd9, 0x88, 0x18, 0xfe, 0x4f, 0xd2, 0xa6, 0x35, 0xe7, - 0xc0, 0xb7, 0x57, 0xb2, 0x5e, 0x65, 0x64, 0xff, 0x2e, 0x70, 0x5b, 0x2b, 0xe6, 0x15, 0x05, 0xd9, - 0x33, 0xb8, 0xc2, 0x59, 0xd0, 0xb0, 0x33, 0x78, 0xb8, 0x92, 0x73, 0x9a, 0x4f, 0x22, 0xb3, 0x37, - 0x7e, 0x93, 0x6a, 0xcd, 0xc8, 0xe0, 0x66, 0x8f, 0x6d, 0x5f, 0xda, 0xf9, 0xef, 0x43, 0x09, 0xbb, - 0x3b, 0xf1, 0x1c, 0xe1, 0xab, 0xd8, 0x92, 0xf2, 0x70, 0x66, 0x72, 0xb0, 0xa1, 0xe1, 0x10, 0xe2, - 0x2e, 0x7f, 0x08, 0x65, 0x32, 0x3c, 0x91, 0xbc, 0x2c, 0xdb, 0x9c, 0x32, 0x2f, 0xa0, 0x27, 0xff, - 0xf8, 0x67, 0xe2, 0x62, 0xbe, 0xad, 0xc1, 0x8d, 0xf5, 0x73, 0x2d, 0x07, 0xa0, 0xf2, 0x3c, 0x00, - 0xa5, 0xa6, 0x0f, 0xc3, 0xa7, 0x6f, 0x99, 0x4a, 0xe1, 0xa8, 0x9f, 0xa1, 0x7e, 0x2c, 0xef, 0x97, - 0x2a, 0x94, 0xa2, 0xb7, 0x03, 0x28, 0xcc, 0xdf, 0x1e, 0x1c, 0x7d, 0xa3, 0x64, 0x10, 0xdc, 0xed, - 0x0f, 0x47, 0xad, 0xbe, 0x08, 0x20, 0x74, 0xfb, 0x22, 0x80, 0xa0, 0xfe, 0x75, 0x16, 0x2a, 0xb1, - 0x8b, 0xe5, 0x87, 0x6b, 0xc5, 0xf1, 0x8b, 0x93, 0x39, 0xf9, 0xc5, 0xc9, 0x25, 0x01, 0xcb, 0x23, - 0x46, 0x79, 0xd2, 0x31, 0x36, 0xd3, 0x62, 0x2c, 0x58, 0x3d, 0xb0, 0x56, 0xf8, 0x35, 0x0f, 0xac, - 0xc9, 0x91, 0xf8, 0x62, 0x3a, 0x12, 0xbf, 0xf4, 0x7e, 0x44, 0x89, 0xa2, 0x5b, 0xf2, 0xfb, 0x11, - 0x57, 0x86, 0xb5, 0xca, 0x57, 0x87, 0xb5, 0xe8, 0x71, 0xcc, 0xa7, 0xb6, 0x75, 0x2e, 0xc2, 0xd2, - 0x22, 0x95, 0xe6, 0xd8, 0xf0, 0x82, 0xf8, 0xee, 0x77, 0x50, 0x89, 0x7d, 0x31, 0x3f, 0x7c, 0xd4, - 0x5f, 0xe6, 0x20, 0xbd, 0xfa, 0x07, 0x91, 0xa1, 0x17, 0xbb, 0x42, 0x7e, 0x53, 0x43, 0x2f, 0x55, - 0x7d, 0xee, 0x05, 0xd5, 0x5f, 0x70, 0x03, 0x2c, 0xae, 0xfc, 0xb7, 0xbc, 0xd4, 0xe4, 0x55, 0x90, - 0x4f, 0xad, 0x02, 0x75, 0x21, 0x8c, 0xc8, 0xdf, 0xbc, 0xea, 0x97, 0xea, 0xf0, 0x7f, 0xcb, 0x44, - 0x66, 0x5e, 0x7c, 0x27, 0xf7, 0x4a, 0x69, 0x1f, 0xf7, 0x29, 0x2b, 0xf7, 0xe9, 0x65, 0xaa, 0xfb, - 0x95, 0x6a, 0x73, 0xfe, 0x57, 0xa9, 0xcd, 0xef, 0x40, 0x81, 0x33, 0xec, 0xc2, 0x55, 0x2a, 0x33, - 0xc7, 0xbf, 0xf0, 0x1d, 0x19, 0x55, 0x15, 0xda, 0x0d, 0xef, 0xef, 0x76, 0x54, 0x6e, 0xf4, 0x06, - 0x0e, 0x26, 0xd0, 0x6a, 0xa9, 0x24, 0xda, 0xf3, 0xcb, 0x8f, 0xc9, 0x6f, 0x4d, 0x6f, 0xfe, 0xa3, - 0x2c, 0xd4, 0x53, 0x6e, 0xd8, 0x1f, 0xd0, 0x98, 0xb5, 0xfc, 0x2d, 0xb7, 0x9e, 0xbf, 0x5d, 0xc9, - 0x6a, 0xf2, 0x57, 0xb3, 0x9a, 0xff, 0x13, 0x3c, 0x51, 0xfd, 0x5b, 0x99, 0xf8, 0x85, 0x18, 0x5e, - 0xd8, 0x3a, 0x3d, 0x31, 0xb3, 0x56, 0x4f, 0xbc, 0x1b, 0x3f, 0x8b, 0xd8, 0xdd, 0xe7, 0x71, 0xf6, - 0xba, 0x26, 0x41, 0xd8, 0x17, 0x70, 0x8b, 0x47, 0xc1, 0xb8, 0x8a, 0xa0, 0x7b, 0x53, 0x3d, 0x7e, - 0x34, 0x51, 0x1c, 0x7c, 0xb8, 0xc1, 0x09, 0xf8, 0x3b, 0x42, 0xd3, 0x56, 0x84, 0x55, 0xbb, 0x50, - 0x4f, 0xb9, 0xbd, 0xa5, 0x97, 0x56, 0x33, 0xf2, 0x4b, 0xab, 0x6c, 0x07, 0x0a, 0xe7, 0xa7, 0x96, - 0x6f, 0xad, 0xb9, 0x31, 0xc9, 0x11, 0xea, 0x8f, 0xa1, 0x26, 0x07, 0xc8, 0xd8, 0xfb, 0x50, 0xb0, - 0x43, 0x6b, 0x16, 0x5d, 0x54, 0xbd, 0xb1, 0x1a, 0x43, 0xa3, 0x5b, 0x19, 0x9c, 0x48, 0xfd, 0x93, - 0x0c, 0x28, 0xcb, 0x38, 0xe9, 0x39, 0xd8, 0xcc, 0x15, 0xcf, 0xc1, 0x66, 0x53, 0x8d, 0x5c, 0xf3, - 0xa4, 0x6b, 0x72, 0x01, 0x2e, 0x7f, 0xc5, 0x05, 0x38, 0xf6, 0x36, 0x94, 0x7d, 0x8b, 0x9e, 0xe0, - 0x34, 0xd3, 0x4f, 0xb4, 0xf1, 0x37, 0x34, 0x22, 0x9c, 0xfa, 0x37, 0x32, 0x50, 0x12, 0xd1, 0xbc, - 0xb5, 0x76, 0xd0, 0xbb, 0x50, 0xe2, 0xcf, 0x71, 0x46, 0xb7, 0x50, 0x56, 0xce, 0xa5, 0x44, 0x78, - 0xb4, 0x8b, 0x10, 0x95, 0xb6, 0x8b, 0x8e, 0x1c, 0xc3, 0xd5, 0x08, 0x8e, 0xab, 0x89, 0x8e, 0x40, - 0x90, 0x8a, 0x1f, 0x88, 0x2b, 0x22, 0x40, 0x20, 0xd4, 0x47, 0x02, 0xf5, 0x27, 0x50, 0x12, 0xd1, - 0xc2, 0xb5, 0x4d, 0x79, 0xd1, 0x03, 0x95, 0x3b, 0x00, 0x49, 0xf8, 0x70, 0x5d, 0x09, 0xaa, 0x23, - 0xee, 0xee, 0xf7, 0xbc, 0xc9, 0x19, 0x59, 0xf5, 0x0f, 0xa1, 0xec, 0x44, 0x4f, 0x1b, 0x64, 0xae, - 0x7e, 0xda, 0x20, 0x26, 0x62, 0xf7, 0x21, 0xe6, 0xa2, 0x2f, 0xb2, 0xb4, 0xd4, 0x56, 0x74, 0x08, - 0x90, 0x56, 0xce, 0x47, 0xc2, 0x92, 0x46, 0x50, 0xb4, 0x7c, 0x96, 0x2b, 0xa3, 0x33, 0xfd, 0x12, - 0x99, 0xda, 0x80, 0x9a, 0x1c, 0x1c, 0x51, 0xff, 0x24, 0x0f, 0xca, 0xa1, 0x15, 0x1a, 0xc8, 0x6b, - 0x86, 0x13, 0xc3, 0xa5, 0x4e, 0xdc, 0x82, 0x72, 0xfc, 0x6a, 0x59, 0x26, 0x7a, 0x73, 0xc5, 0x89, - 0x9e, 0xf3, 0xf2, 0x68, 0xa2, 0x64, 0x43, 0x16, 0x38, 0x88, 0x08, 0xf8, 0xb1, 0xac, 0xd4, 0xe3, - 0x25, 0x65, 0x3b, 0x38, 0xe0, 0xcf, 0x97, 0xdc, 0xe4, 0x77, 0x2b, 0x1c, 0x6f, 0x42, 0xeb, 0xac, - 0x46, 0x57, 0x29, 0x7a, 0xde, 0x04, 0x73, 0x45, 0x96, 0x50, 0x20, 0x8e, 0x47, 0x96, 0x85, 0x09, - 0x44, 0x3e, 0x3b, 0x71, 0xce, 0x3e, 0x0c, 0x88, 0xa1, 0xd4, 0xb4, 0x32, 0x07, 0x8c, 0x82, 0xe8, - 0xc6, 0xf9, 0x44, 0x3c, 0x1f, 0x96, 0xa3, 0x1b, 0xe7, 0x6d, 0x97, 0xce, 0x48, 0xd2, 0x0b, 0x75, - 0x13, 0xf1, 0xd8, 0x5f, 0x4e, 0x2b, 0x61, 0x1a, 0x51, 0x6f, 0xf0, 0x07, 0xd6, 0x7c, 0x2b, 0x08, - 0xf8, 0xc5, 0x33, 0x7e, 0x27, 0xac, 0x16, 0x01, 0xe3, 0x1b, 0x6e, 0xe2, 0x49, 0x3a, 0x24, 0x01, - 0x71, 0xc3, 0x8d, 0x3f, 0x48, 0x87, 0x04, 0xb7, 0xa0, 0xfc, 0xbd, 0xe7, 0x5a, 0xc2, 0xbe, 0xc2, - 0x56, 0x95, 0x30, 0x7d, 0x68, 0xcc, 0xd5, 0x7f, 0x99, 0x81, 0xed, 0xe5, 0x51, 0xa5, 0xd9, 0xae, - 0x41, 0xb9, 0x3d, 0xe8, 0xe9, 0xfd, 0xd6, 0x61, 0x47, 0xd9, 0x60, 0x9b, 0x50, 0x1d, 0xec, 0x7d, - 0xd5, 0x69, 0x8f, 0x38, 0x20, 0x43, 0xc7, 0x76, 0x87, 0xfa, 0x41, 0x77, 0x7f, 0xbf, 0xd3, 0xe7, - 0xba, 0xf2, 0x60, 0xef, 0x2b, 0xbd, 0x37, 0x68, 0xf3, 0xb7, 0xb8, 0xa2, 0xa0, 0xcd, 0x50, 0xc9, - 0x53, 0xa0, 0x84, 0xce, 0xde, 0x60, 0xb2, 0xc0, 0x8f, 0x96, 0x3c, 0x1b, 0xea, 0xed, 0xfe, 0x48, - 0x29, 0x62, 0xaa, 0x7f, 0xdc, 0xeb, 0x51, 0xaa, 0xc4, 0xb6, 0xa0, 0xde, 0x1e, 0x1c, 0x1e, 0x69, - 0x9d, 0xe1, 0x50, 0x1f, 0x76, 0x7f, 0xaf, 0xa3, 0x94, 0xa9, 0x66, 0xad, 0xfb, 0xb8, 0xdb, 0xe7, - 0x80, 0x0a, 0x2b, 0x41, 0xee, 0xb0, 0xdb, 0x57, 0x80, 0x3e, 0x5a, 0x5f, 0x2b, 0x55, 0xfc, 0x18, - 0x1e, 0x1f, 0x2a, 0xb5, 0xfb, 0xaf, 0x43, 0x4d, 0x7e, 0xab, 0x91, 0x4e, 0x93, 0x78, 0xae, 0xc5, - 0xaf, 0xa8, 0xf7, 0xbe, 0xff, 0x58, 0xc9, 0xdc, 0xff, 0x03, 0xe9, 0xa1, 0x20, 0xa2, 0x11, 0x9e, - 0x44, 0x3a, 0x3d, 0xde, 0xeb, 0xf6, 0x3b, 0x2d, 0x8d, 0xfc, 0x86, 0x74, 0x99, 0xfd, 0xa0, 0x35, - 0x3c, 0xe0, 0x3e, 0x46, 0x81, 0x21, 0x40, 0x2e, 0xb9, 0x36, 0x4d, 0xa7, 0xc5, 0xe9, 0x33, 0x8e, - 0xd1, 0x14, 0xe8, 0xd4, 0x70, 0x77, 0x88, 0x9d, 0x53, 0xa0, 0x86, 0x5f, 0x31, 0xae, 0x74, 0x5f, - 0x85, 0xaa, 0xf4, 0x3c, 0x04, 0xd5, 0x61, 0x04, 0xa7, 0xe2, 0x26, 0x36, 0x1a, 0x3d, 0x4a, 0xe6, - 0xfe, 0x27, 0xc8, 0xc2, 0xa5, 0xc7, 0x19, 0xe8, 0x85, 0x63, 0xcf, 0x9f, 0x19, 0x8e, 0xa0, 0xb3, - 0x16, 0x81, 0xc5, 0xa7, 0x40, 0xb3, 0xc4, 0x33, 0x0e, 0x4a, 0xf6, 0xfe, 0x43, 0xb8, 0xbe, 0xf6, - 0xe5, 0x09, 0x3a, 0x20, 0x65, 0xcf, 0xe6, 0x8e, 0xc5, 0xcf, 0xf8, 0x1c, 0x5c, 0x8e, 0x7d, 0xdb, - 0x54, 0x32, 0xf7, 0x7f, 0x06, 0xcd, 0xab, 0x8e, 0xac, 0x60, 0x35, 0xed, 0x83, 0x16, 0x1d, 0x0b, - 0xc2, 0x19, 0x1a, 0xe8, 0x3c, 0x95, 0xe1, 0xa7, 0xaa, 0x7a, 0x1d, 0x8a, 0xce, 0xdd, 0xff, 0x45, - 0x46, 0x62, 0x2a, 0xd1, 0xf9, 0x84, 0x18, 0x20, 0x86, 0x5e, 0x06, 0x69, 0x96, 0x61, 0x2a, 0x19, - 0x76, 0x03, 0x58, 0x0a, 0xd4, 0xf3, 0x26, 0x86, 0xa3, 0x64, 0x29, 0x0e, 0x17, 0xc1, 0x9f, 0xf9, - 0x76, 0x68, 0x29, 0x39, 0xf6, 0x2a, 0xdc, 0x8a, 0x61, 0x3d, 0xef, 0xfc, 0xc8, 0xb7, 0xd1, 0x8c, - 0xbb, 0xe4, 0xe8, 0xfc, 0xde, 0x4f, 0xff, 0xc5, 0x2f, 0xef, 0x66, 0xfe, 0xf5, 0x2f, 0xef, 0x66, - 0xfe, 0xe3, 0x2f, 0xef, 0x6e, 0xfc, 0xc9, 0x7f, 0xbe, 0x9b, 0xf9, 0x3d, 0xf9, 0x37, 0x09, 0x66, - 0x46, 0xe8, 0xdb, 0x17, 0x7c, 0x27, 0x44, 0x09, 0xd7, 0x7a, 0x38, 0x3f, 0x3b, 0x79, 0x38, 0x1f, - 0x3f, 0x44, 0x06, 0x34, 0x2e, 0xd2, 0xcf, 0x11, 0x7c, 0xf4, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, - 0xf9, 0x7d, 0xff, 0xf7, 0xdd, 0x60, 0x00, 0x00, + 0x4c, 0x76, 0x66, 0xb2, 0x24, 0x35, 0xb0, 0xc0, 0x9c, 0xbe, 0x85, 0x6f, 0x06, 0x6c, 0x2c, 0x7c, + 0x58, 0x03, 0xbb, 0x3e, 0x2e, 0xec, 0x8b, 0x61, 0x63, 0x01, 0x63, 0x61, 0xc0, 0xf0, 0xc5, 0x6b, + 0xc0, 0x80, 0x0d, 0xdf, 0x6c, 0x1f, 0xec, 0x31, 0xe0, 0x9b, 0xe1, 0xc3, 0x2e, 0x7c, 0x32, 0x0c, + 0xe3, 0xbd, 0x88, 0xcc, 0x8c, 0x24, 0xa9, 0xa9, 0xa9, 0x9e, 0x31, 0x6c, 0x5f, 0xa4, 0x8c, 0xf7, + 0x5e, 0xfc, 0x47, 0xbc, 0xdf, 0x88, 0x20, 0xc0, 0xdc, 0x31, 0xdc, 0x07, 0x73, 0xdf, 0x0b, 0x3d, + 0x96, 0xc7, 0xef, 0xdb, 0x3f, 0x3a, 0xb1, 0xc3, 0xd3, 0xc5, 0xf8, 0xc1, 0xc4, 0x9b, 0x3d, 0x3c, + 0xf1, 0x4e, 0xbc, 0x87, 0x84, 0x1c, 0x2f, 0xa6, 0x94, 0xa2, 0x04, 0x7d, 0xf1, 0x4c, 0xb7, 0xc1, + 0xf1, 0x26, 0x67, 0xfc, 0x5b, 0xfd, 0xf3, 0x0c, 0xe4, 0x47, 0x97, 0x73, 0x8b, 0x35, 0x20, 0x6b, + 0x9b, 0xcd, 0xcc, 0x4e, 0xe6, 0x5e, 0x41, 0xcb, 0xda, 0x26, 0xdb, 0x81, 0xaa, 0xeb, 0x85, 0xfd, + 0x85, 0xe3, 0x18, 0x63, 0xc7, 0x6a, 0x66, 0x77, 0x32, 0xf7, 0xca, 0x9a, 0x0c, 0x62, 0xaf, 0x40, + 0xc5, 0x58, 0x84, 0x9e, 0x6e, 0xbb, 0x13, 0xbf, 0x99, 0x23, 0x7c, 0x19, 0x01, 0x5d, 0x77, 0xe2, + 0xb3, 0x6d, 0x28, 0x9c, 0xdb, 0x66, 0x78, 0xda, 0xcc, 0x53, 0x89, 0x3c, 0x81, 0xd0, 0x60, 0x62, + 0x38, 0x56, 0xb3, 0xc0, 0xa1, 0x94, 0x40, 0x68, 0x48, 0x95, 0x14, 0x77, 0x32, 0xf7, 0x2a, 0x1a, + 0x4f, 0xb0, 0xbb, 0x00, 0x96, 0xbb, 0x98, 0x3d, 0x37, 0x9c, 0x85, 0x15, 0x34, 0x4b, 0x84, 0x92, + 0x20, 0xea, 0x7f, 0x2d, 0x40, 0xa1, 0xed, 0xb9, 0x41, 0xc8, 0x6e, 0x40, 0xd1, 0x0e, 0xdc, 0x85, + 0xe3, 0x50, 0xf3, 0xcb, 0x9a, 0x48, 0xb1, 0x1b, 0x50, 0xb0, 0x3f, 0x7f, 0x6e, 0x38, 0xd4, 0xf8, + 0xc2, 0xc1, 0x86, 0xc6, 0x93, 0xac, 0x09, 0x45, 0xfb, 0xc3, 0x4f, 0x11, 0x91, 0x13, 0x08, 0x91, + 0x26, 0xcc, 0x47, 0xbb, 0x88, 0xc9, 0xc7, 0x18, 0x4a, 0x13, 0xe6, 0xd3, 0x8f, 0x11, 0x83, 0x4d, + 0xcf, 0x11, 0x86, 0xd2, 0x58, 0xcb, 0x82, 0x6a, 0xc1, 0xd6, 0xd7, 0xb1, 0x96, 0x45, 0x54, 0xcb, + 0x82, 0xd7, 0x52, 0x12, 0x08, 0x91, 0x26, 0x0c, 0xaf, 0xa5, 0x1c, 0x63, 0xe2, 0x5a, 0x16, 0xbc, + 0x96, 0xca, 0x4e, 0xe6, 0x5e, 0x9e, 0x30, 0xbc, 0x96, 0x6d, 0xc8, 0x9b, 0x08, 0x87, 0x9d, 0xcc, + 0xbd, 0xcc, 0xc1, 0x86, 0x46, 0x29, 0x84, 0x06, 0x08, 0xad, 0xe2, 0xe8, 0x20, 0x34, 0x10, 0xd0, + 0x31, 0x42, 0x6b, 0x38, 0x1a, 0x08, 0x1d, 0x0b, 0xe8, 0x14, 0xa1, 0xf5, 0x9d, 0xcc, 0xbd, 0x2c, + 0x42, 0x31, 0xc5, 0x6e, 0x43, 0xc9, 0x34, 0x42, 0x0b, 0x11, 0x0d, 0xd1, 0xe5, 0x08, 0x80, 0xb8, + 0xd0, 0x9e, 0x11, 0x6e, 0x53, 0x74, 0x3a, 0x02, 0x30, 0x15, 0xaa, 0x48, 0x16, 0xe1, 0x15, 0x81, + 0x97, 0x81, 0xec, 0x13, 0xa8, 0x99, 0xd6, 0xc4, 0x9e, 0x19, 0x0e, 0xef, 0xd3, 0xd6, 0x4e, 0xe6, + 0x5e, 0x75, 0x77, 0xf3, 0x01, 0xad, 0xdf, 0x18, 0x73, 0xb0, 0xa1, 0xa5, 0xc8, 0xd8, 0xe7, 0x50, + 0x17, 0xe9, 0x0f, 0x77, 0x69, 0x60, 0x19, 0xe5, 0x53, 0x52, 0xf9, 0x3e, 0xdc, 0xfd, 0xfc, 0x60, + 0x43, 0x4b, 0x13, 0xb2, 0x37, 0xa1, 0x86, 0x75, 0x07, 0xa1, 0x31, 0x9b, 0x63, 0xc6, 0x6b, 0xa2, + 0x55, 0x29, 0x28, 0x76, 0xeb, 0xdb, 0xc0, 0x73, 0x91, 0x60, 0x5b, 0x8c, 0x5b, 0x04, 0x60, 0x3b, + 0x00, 0xa6, 0x35, 0x35, 0x16, 0x4e, 0x88, 0xe8, 0xeb, 0x62, 0x00, 0x25, 0x18, 0xbb, 0x0b, 0x95, + 0xc5, 0x1c, 0x7b, 0xf9, 0xd4, 0x70, 0x9a, 0x37, 0x04, 0x41, 0x02, 0xc2, 0xd2, 0x71, 0x91, 0x22, + 0xf6, 0xa6, 0x98, 0xdd, 0x08, 0x80, 0x0b, 0xdd, 0x0e, 0xf6, 0x6c, 0xb7, 0xd9, 0xa4, 0x75, 0xca, + 0x13, 0xec, 0x0e, 0xe4, 0x02, 0x7f, 0xd2, 0xbc, 0x45, 0xbd, 0x04, 0xde, 0xcb, 0xce, 0xc5, 0xdc, + 0xd7, 0x10, 0xbc, 0x57, 0x82, 0x02, 0x2d, 0x78, 0xf5, 0x0e, 0x94, 0x8f, 0x0c, 0xdf, 0x98, 0x69, + 0xd6, 0x94, 0x29, 0x90, 0x9b, 0x7b, 0x81, 0xd8, 0xad, 0xf8, 0xa9, 0xf6, 0xa0, 0xf8, 0xd4, 0xf0, + 0x11, 0xc7, 0x20, 0xef, 0x1a, 0x33, 0x8b, 0x90, 0x15, 0x8d, 0xbe, 0x71, 0x87, 0x04, 0x97, 0x41, + 0x68, 0xcd, 0xc4, 0x3e, 0x16, 0x29, 0x84, 0x9f, 0x38, 0xde, 0x58, 0xec, 0x84, 0xb2, 0x26, 0x52, + 0x6a, 0x1f, 0x8a, 0x6d, 0xcf, 0xc1, 0xd2, 0x6e, 0x42, 0xc9, 0xb7, 0x1c, 0x3d, 0xa9, 0xad, 0xe8, + 0x5b, 0xce, 0x91, 0x17, 0x20, 0x62, 0xe2, 0x71, 0x44, 0x96, 0x23, 0x26, 0x1e, 0x21, 0xa2, 0xfa, + 0x73, 0x49, 0xfd, 0xea, 0x17, 0x50, 0xd1, 0x8c, 0x73, 0x51, 0xe4, 0x75, 0x28, 0x86, 0x63, 0x47, + 0x17, 0xdc, 0x26, 0xaf, 0x15, 0xc2, 0xb1, 0xd3, 0x35, 0x11, 0x8c, 0x05, 0xda, 0x26, 0x95, 0x97, + 0xd7, 0x0a, 0x13, 0xcf, 0xe9, 0x9a, 0xea, 0x08, 0xa0, 0xed, 0xf9, 0xfe, 0x0f, 0x6e, 0xce, 0x36, + 0x14, 0x4c, 0x6b, 0x1e, 0x9e, 0xf2, 0xbd, 0xae, 0xf1, 0x84, 0x7a, 0x1f, 0xca, 0x38, 0xc4, 0x3d, + 0x3b, 0x08, 0xd9, 0x5d, 0xc8, 0x3b, 0x76, 0x10, 0x36, 0x33, 0x3b, 0xb9, 0xa5, 0x09, 0x20, 0xb8, + 0xba, 0x03, 0xe5, 0x43, 0xe3, 0xe2, 0x29, 0x4e, 0x02, 0x96, 0x46, 0xb3, 0x21, 0x46, 0x57, 0x4c, + 0xcd, 0x7d, 0x80, 0x91, 0xe1, 0x9f, 0x58, 0x21, 0x71, 0xd2, 0x3b, 0x90, 0x0b, 0x2f, 0xe7, 0x44, + 0x11, 0x17, 0x87, 0x08, 0x0d, 0xc1, 0xea, 0x5f, 0x65, 0xa0, 0x3a, 0x5c, 0x8c, 0xbf, 0x5b, 0x58, + 0xfe, 0x25, 0xf6, 0xe8, 0x5e, 0x42, 0xdd, 0xd8, 0xbd, 0xc1, 0xa9, 0x25, 0x7c, 0x92, 0x13, 0xbb, + 0xe8, 0x7a, 0xa6, 0x15, 0x8d, 0x50, 0x41, 0x2b, 0x62, 0xb2, 0x6b, 0x22, 0xeb, 0xf6, 0xe6, 0x62, + 0xbc, 0xb3, 0xde, 0x9c, 0xed, 0x40, 0x61, 0x72, 0x6a, 0x3b, 0x26, 0x31, 0xb1, 0x74, 0x8f, 0x38, + 0x82, 0xdd, 0x82, 0xb2, 0xef, 0x9d, 0xeb, 0x81, 0xfd, 0x7d, 0xc4, 0x8a, 0x4b, 0xbe, 0x77, 0x3e, + 0xb4, 0xbf, 0xb7, 0xd4, 0x91, 0x90, 0x07, 0x00, 0xc5, 0x61, 0xbb, 0xd5, 0x6b, 0x69, 0xca, 0x06, + 0x7e, 0x77, 0xbe, 0xee, 0x0e, 0x47, 0x43, 0x25, 0xc3, 0x1a, 0x00, 0xfd, 0xc1, 0x48, 0x17, 0xe9, + 0x2c, 0x2b, 0x42, 0xb6, 0xdb, 0x57, 0x72, 0x48, 0x83, 0xf0, 0x6e, 0x5f, 0xc9, 0xb3, 0x12, 0xe4, + 0x5a, 0xfd, 0x6f, 0x94, 0x02, 0x7d, 0xf4, 0x7a, 0x4a, 0x51, 0xfd, 0xb3, 0x2c, 0x54, 0x06, 0xe3, + 0x6f, 0xad, 0x49, 0x88, 0x7d, 0xc6, 0xe5, 0x68, 0xf9, 0xcf, 0x2d, 0x9f, 0xba, 0x9d, 0xd3, 0x44, + 0x0a, 0x3b, 0x62, 0x8e, 0xa9, 0x73, 0x39, 0x2d, 0x6b, 0x8e, 0x89, 0x6e, 0x72, 0x6a, 0xcd, 0x0c, + 0xea, 0x1c, 0xd2, 0x51, 0x0a, 0x97, 0xbf, 0x37, 0xfe, 0x96, 0xba, 0x97, 0xd3, 0xf0, 0x93, 0xbd, + 0x06, 0x55, 0x5e, 0x86, 0x4e, 0x6b, 0xaf, 0xc0, 0xa5, 0x05, 0x07, 0xf5, 0x71, 0x07, 0xdc, 0x84, + 0x92, 0x39, 0xe6, 0x48, 0x2e, 0x65, 0x8a, 0xe6, 0x98, 0x10, 0x98, 0x93, 0x4a, 0xe5, 0x48, 0x21, + 0x67, 0x38, 0x88, 0x08, 0x6e, 0x41, 0xd9, 0x1b, 0x7f, 0xcb, 0xb1, 0x65, 0xc2, 0x96, 0xbc, 0xf1, + 0xb7, 0x84, 0x7a, 0x0f, 0xb6, 0x82, 0xc5, 0x38, 0x98, 0xf8, 0xf6, 0x3c, 0xb4, 0x3d, 0x97, 0xd3, + 0x54, 0x88, 0x46, 0x91, 0x11, 0x44, 0x7c, 0x0f, 0xca, 0xf3, 0xc5, 0x58, 0xb7, 0xdd, 0xa9, 0x47, + 0x5c, 0xbc, 0xba, 0x5b, 0xe7, 0x13, 0x73, 0xb4, 0x18, 0x77, 0xdd, 0xa9, 0xa7, 0x95, 0xe6, 0xfc, + 0x43, 0x7d, 0x1b, 0x4a, 0x02, 0x86, 0x32, 0x36, 0xb4, 0x5c, 0xc3, 0x0d, 0xf5, 0x58, 0x38, 0x97, + 0x39, 0xa0, 0x6b, 0xaa, 0x7f, 0x9c, 0x01, 0x65, 0x28, 0x55, 0x73, 0x68, 0x85, 0xc6, 0xda, 0xed, + 0xff, 0x2a, 0x80, 0x31, 0x99, 0x78, 0x0b, 0x5e, 0x0c, 0x5f, 0x3c, 0x15, 0x01, 0xe9, 0x9a, 0xf2, + 0xd8, 0xe4, 0x52, 0x63, 0xf3, 0x3a, 0xd4, 0xa2, 0x7c, 0x84, 0xcd, 0x13, 0xb6, 0x2a, 0x60, 0xd1, + 0xe8, 0x04, 0x8b, 0xb1, 0x3c, 0xea, 0xa5, 0x60, 0x41, 0xb9, 0xd5, 0x3f, 0xcc, 0x42, 0xf9, 0xd1, + 0xc2, 0x9d, 0x60, 0xd3, 0xd8, 0x1b, 0x90, 0x9f, 0x2e, 0xdc, 0x89, 0xd8, 0x15, 0x42, 0x06, 0xc4, + 0x2b, 0x42, 0x23, 0x24, 0xee, 0x44, 0xc3, 0x3f, 0xc1, 0x1d, 0xbc, 0xb2, 0x13, 0x11, 0xae, 0xfe, + 0xe3, 0x0c, 0x2f, 0xf1, 0x91, 0x63, 0x9c, 0xb0, 0x32, 0xe4, 0xfb, 0x83, 0x7e, 0x47, 0xd9, 0x60, + 0x35, 0x28, 0x77, 0xfb, 0xa3, 0x8e, 0xd6, 0x6f, 0xf5, 0x94, 0x0c, 0x2d, 0xdc, 0x51, 0x6b, 0xaf, + 0xd7, 0x51, 0xb2, 0x88, 0x79, 0x3a, 0xe8, 0xb5, 0x46, 0xdd, 0x5e, 0x47, 0xc9, 0x73, 0x8c, 0xd6, + 0x6d, 0x8f, 0x94, 0x32, 0x53, 0xa0, 0x76, 0xa4, 0x0d, 0xf6, 0x8f, 0xdb, 0x1d, 0xbd, 0x7f, 0xdc, + 0xeb, 0x29, 0x0a, 0xbb, 0x06, 0x9b, 0x31, 0x64, 0xc0, 0x81, 0x3b, 0x98, 0xe5, 0x69, 0x4b, 0x6b, + 0x69, 0x8f, 0x95, 0x9f, 0xb1, 0x32, 0xe4, 0x5a, 0x8f, 0x1f, 0x2b, 0xbf, 0xc0, 0x3d, 0x50, 0x79, + 0xd6, 0xed, 0xeb, 0x4f, 0x5b, 0xbd, 0xe3, 0x8e, 0xf2, 0x8b, 0x6c, 0x94, 0x1e, 0x68, 0xfb, 0x1d, + 0x4d, 0xf9, 0x45, 0x1e, 0xd3, 0x87, 0x83, 0xfe, 0x60, 0x34, 0xe8, 0x77, 0xdb, 0xca, 0x2f, 0xca, + 0xea, 0x5f, 0xe4, 0x21, 0x8f, 0xdd, 0xf8, 0xd5, 0xac, 0x81, 0xbd, 0x02, 0x99, 0x09, 0xcd, 0x4e, + 0x75, 0xb7, 0xca, 0x71, 0xa4, 0xdf, 0x1c, 0x6c, 0x68, 0x19, 0x1c, 0x9b, 0x0c, 0xdf, 0xe3, 0xd5, + 0xdd, 0x86, 0x58, 0x37, 0x42, 0x1a, 0x20, 0x7e, 0xce, 0xee, 0x40, 0xe6, 0xb9, 0xd8, 0xf0, 0x35, + 0x8e, 0xe7, 0xf2, 0x00, 0xb1, 0xcf, 0xd9, 0x0e, 0xe4, 0x26, 0x1e, 0xd7, 0x5d, 0x62, 0x3c, 0x67, + 0xa9, 0x07, 0x1b, 0x1a, 0xa2, 0xd8, 0x1b, 0x90, 0xf3, 0x8d, 0x73, 0xda, 0x1c, 0xf1, 0xfc, 0xc4, + 0x3c, 0x1b, 0x89, 0x7c, 0xe3, 0x1c, 0x1b, 0x31, 0xa5, 0x2d, 0x12, 0x37, 0x22, 0x9a, 0x60, 0xac, + 0x66, 0xca, 0x76, 0x20, 0x73, 0x4e, 0x9b, 0x24, 0x16, 0xd7, 0xcf, 0x6c, 0xd7, 0xf4, 0xce, 0x87, + 0x73, 0x6b, 0x82, 0x14, 0xe7, 0xec, 0x2d, 0xc8, 0x05, 0x8b, 0x31, 0x6d, 0x92, 0xea, 0xee, 0xd6, + 0x0a, 0xbb, 0xc3, 0x8a, 0x82, 0xc5, 0x98, 0xbd, 0x0d, 0xf9, 0x89, 0xe7, 0xfb, 0x62, 0xa3, 0x28, + 0x51, 0x83, 0x23, 0x39, 0x80, 0xea, 0x0b, 0xe2, 0xb1, 0xc2, 0x90, 0xb4, 0x9f, 0x98, 0x28, 0x61, + 0xc4, 0x58, 0x61, 0xc8, 0xde, 0x14, 0xdc, 0xbd, 0x26, 0xb7, 0x3a, 0xe2, 0xfd, 0x58, 0x0e, 0x62, + 0x99, 0x0a, 0xb9, 0x99, 0x71, 0x41, 0xba, 0x51, 0x4c, 0x14, 0x31, 0x7d, 0x6c, 0xd3, 0xcc, 0xb8, + 0x60, 0x6f, 0x42, 0x6e, 0x6c, 0xbb, 0xa4, 0x26, 0xc5, 0xb5, 0xed, 0xd9, 0xae, 0xe1, 0x5f, 0xee, + 0x1b, 0xa1, 0x81, 0x54, 0x63, 0xdb, 0x45, 0x31, 0x66, 0x2c, 0x2e, 0x70, 0x9f, 0x6d, 0x72, 0x81, + 0x63, 0x2c, 0x2e, 0xba, 0x26, 0xb2, 0x2c, 0xd7, 0x7c, 0x4e, 0x7a, 0x52, 0x46, 0xc3, 0x4f, 0x54, + 0xb0, 0x03, 0xcb, 0xb1, 0x26, 0xa1, 0xfd, 0xdc, 0x0e, 0x2f, 0x49, 0x39, 0xca, 0x68, 0x32, 0x68, + 0xaf, 0x08, 0x79, 0xeb, 0x62, 0xee, 0xab, 0x3b, 0x00, 0x49, 0x3d, 0xb8, 0xc1, 0x4d, 0x23, 0x34, + 0x68, 0x11, 0xd5, 0x34, 0xfa, 0x56, 0x6f, 0x41, 0x25, 0x56, 0xa1, 0x58, 0x0d, 0x32, 0x86, 0x60, + 0xac, 0x19, 0x43, 0xbd, 0x87, 0x1a, 0x4d, 0xa4, 0x24, 0xa5, 0x71, 0x98, 0x8a, 0xd8, 0x6d, 0x66, + 0xac, 0xfe, 0x18, 0x6a, 0x9a, 0x15, 0x2c, 0x9c, 0xb0, 0xed, 0x39, 0xfb, 0xd6, 0x94, 0xbd, 0x0f, + 0x10, 0xa7, 0x03, 0x21, 0x1d, 0x93, 0xa5, 0xb3, 0x6f, 0x4d, 0x35, 0x09, 0xaf, 0xfe, 0xab, 0x1c, + 0xe9, 0x0c, 0xfb, 0x5c, 0xc0, 0x0b, 0x49, 0x9e, 0x91, 0x24, 0x79, 0xcc, 0x99, 0xb2, 0x69, 0xc5, + 0xe4, 0xd4, 0x36, 0x4d, 0xcb, 0x8d, 0x14, 0x10, 0x9e, 0xc2, 0xb1, 0x36, 0x9c, 0x13, 0x5a, 0xcf, + 0x8d, 0x5d, 0x16, 0x55, 0x3a, 0x9b, 0xfb, 0x56, 0x10, 0xf0, 0x0d, 0x63, 0x38, 0x27, 0xd1, 0x76, + 0x2a, 0xac, 0xdf, 0x4e, 0xb7, 0xa0, 0xec, 0x7a, 0xa1, 0x4e, 0x86, 0x41, 0x91, 0x4a, 0x2f, 0x09, + 0xf3, 0x85, 0xbd, 0x03, 0x25, 0xa1, 0xd2, 0x89, 0xd5, 0x2c, 0x58, 0xf1, 0x3e, 0x07, 0x6a, 0x11, + 0x96, 0x35, 0x51, 0xad, 0x98, 0xcd, 0x2c, 0x37, 0x8c, 0x78, 0xbf, 0x48, 0xb2, 0xf7, 0xa0, 0xe2, + 0xb9, 0x3a, 0xd7, 0xfb, 0xc4, 0x72, 0x16, 0xeb, 0x66, 0xe0, 0x1e, 0x13, 0x54, 0x2b, 0x7b, 0xe2, + 0x0b, 0x9b, 0xe2, 0x78, 0xe7, 0xfa, 0xc4, 0xf0, 0x4d, 0x5a, 0xd2, 0x65, 0xad, 0xe4, 0x78, 0xe7, + 0x6d, 0xc3, 0x37, 0xb9, 0x2c, 0xfc, 0xce, 0x5d, 0xcc, 0x68, 0x19, 0xd7, 0x35, 0x91, 0x62, 0x77, + 0xa0, 0x32, 0x71, 0x16, 0x41, 0x68, 0xf9, 0x7b, 0x97, 0x5c, 0x93, 0xd7, 0x12, 0x00, 0xb6, 0x6b, + 0xee, 0xdb, 0x33, 0xc3, 0xbf, 0xa4, 0x35, 0x5b, 0xd6, 0xa2, 0x24, 0x6a, 0x28, 0xf3, 0x33, 0xdb, + 0xbc, 0xe0, 0xea, 0xbc, 0xc6, 0x13, 0x48, 0x7f, 0x6a, 0x19, 0xa6, 0xe5, 0x07, 0xb4, 0x2c, 0xcb, + 0x5a, 0x94, 0xa4, 0x19, 0xa0, 0x4f, 0x5a, 0x9b, 0x15, 0x4d, 0xa4, 0xd4, 0xef, 0xa0, 0x24, 0x46, + 0x03, 0xd9, 0x32, 0xae, 0xc3, 0x34, 0xdb, 0xe2, 0x6c, 0x19, 0xe1, 0xec, 0x0d, 0xa8, 0x7b, 0xbe, + 0x7d, 0x62, 0xbb, 0x7a, 0x10, 0xfa, 0xb6, 0x7b, 0x22, 0x66, 0xb8, 0xc6, 0x81, 0x43, 0x82, 0xa1, + 0x2c, 0xc1, 0x99, 0xd0, 0x8d, 0xb1, 0xed, 0xe0, 0x7a, 0xcf, 0x09, 0x83, 0x72, 0xe1, 0x38, 0x2d, + 0x0e, 0x52, 0x07, 0x50, 0x8e, 0xc6, 0xee, 0xb7, 0x52, 0xa7, 0xfa, 0x3b, 0x50, 0xed, 0xba, 0xa6, + 0x75, 0x31, 0x20, 0xf1, 0xc8, 0xde, 0x07, 0x36, 0xf1, 0x2d, 0x23, 0xb4, 0x74, 0xeb, 0x22, 0xf4, + 0x0d, 0x9d, 0x1b, 0x9d, 0xdc, 0x66, 0x54, 0x38, 0xa6, 0x83, 0x88, 0x11, 0xc2, 0xd5, 0x7f, 0x97, + 0x81, 0xfa, 0x11, 0x1f, 0xd4, 0x27, 0xd6, 0xe5, 0x3e, 0xd7, 0xac, 0x27, 0xd1, 0x56, 0xc8, 0x6b, + 0xf4, 0xcd, 0xee, 0x42, 0x75, 0x7e, 0x66, 0x5d, 0xea, 0x29, 0xd5, 0xb5, 0x82, 0xa0, 0x36, 0x2d, + 0xfa, 0x77, 0xa1, 0xe8, 0x51, 0xed, 0x82, 0x77, 0x0b, 0x96, 0x27, 0x35, 0x4b, 0x13, 0x04, 0x4c, + 0x85, 0x7a, 0x5c, 0x94, 0x2c, 0x6e, 0x45, 0x61, 0x24, 0x6e, 0xb7, 0xa1, 0x80, 0xa8, 0xa0, 0x59, + 0xd8, 0xc9, 0xa1, 0xfe, 0x49, 0x09, 0xf6, 0x01, 0xd4, 0x27, 0xde, 0x6c, 0xae, 0x47, 0xd9, 0x05, + 0x17, 0x4f, 0x6f, 0xd6, 0x2a, 0x92, 0x1c, 0xf1, 0xb2, 0xd4, 0xbf, 0x93, 0x85, 0x32, 0xb5, 0x41, + 0xec, 0x57, 0xdb, 0xbc, 0x88, 0xf6, 0x6b, 0x45, 0x2b, 0xd8, 0x26, 0xb2, 0xac, 0x57, 0x01, 0x6c, + 0x24, 0xd1, 0xa5, 0x5d, 0x5b, 0x21, 0x48, 0xd4, 0x94, 0xb9, 0xe1, 0x87, 0x41, 0x33, 0xc7, 0x9b, + 0x42, 0x09, 0x5c, 0x4e, 0x0b, 0xd7, 0xfe, 0x6e, 0xc1, 0x5b, 0x5f, 0xd6, 0x44, 0x8a, 0xdd, 0x03, + 0x85, 0x17, 0x46, 0x83, 0x2e, 0xeb, 0x0b, 0x0d, 0x82, 0xd3, 0x98, 0x47, 0x0a, 0x19, 0xa7, 0xb1, + 0x2e, 0x90, 0x6f, 0xf3, 0x9d, 0x0b, 0x04, 0xea, 0x20, 0x44, 0xde, 0x93, 0xa5, 0xf4, 0x9e, 0x6c, + 0x42, 0xe9, 0xb9, 0x1d, 0xd8, 0x38, 0xab, 0x65, 0xbe, 0xca, 0x45, 0x52, 0x9a, 0x86, 0xca, 0x0b, + 0xa6, 0x41, 0xfd, 0xcb, 0x2c, 0xd4, 0x1f, 0x79, 0xbe, 0x65, 0x9f, 0xb8, 0xc9, 0xbc, 0xaf, 0xa8, + 0x54, 0xd1, 0x5a, 0xc8, 0x4a, 0x6b, 0xe1, 0x35, 0xa8, 0x4e, 0x79, 0x46, 0x3d, 0x1c, 0x73, 0x93, + 0x2a, 0xaf, 0x81, 0x00, 0x8d, 0xc6, 0x0e, 0xee, 0x81, 0x88, 0x80, 0x32, 0xe7, 0x29, 0x73, 0x94, + 0x09, 0xd9, 0x28, 0xfb, 0x92, 0xd8, 0x8a, 0x69, 0x39, 0x56, 0xc8, 0x07, 0xa8, 0xb1, 0xfb, 0xaa, + 0x90, 0xb4, 0x72, 0x9b, 0x1e, 0x68, 0xd6, 0xb4, 0x45, 0x82, 0x17, 0xb9, 0xcc, 0x3e, 0x91, 0x8b, + 0xbc, 0x82, 0x25, 0x15, 0x7f, 0xcd, 0xbc, 0x7c, 0xbf, 0xa9, 0x23, 0xa8, 0xc4, 0x60, 0x54, 0x9b, + 0xb4, 0x8e, 0x50, 0x95, 0x36, 0x58, 0x15, 0x4a, 0xed, 0xd6, 0xb0, 0xdd, 0xda, 0xef, 0x28, 0x19, + 0x44, 0x0d, 0x3b, 0x23, 0xae, 0x1e, 0x65, 0xd9, 0x26, 0x54, 0x31, 0xb5, 0xdf, 0x79, 0xd4, 0x3a, + 0xee, 0x8d, 0x94, 0x1c, 0xab, 0x43, 0xa5, 0x3f, 0xd0, 0x5b, 0xed, 0x51, 0x77, 0xd0, 0x57, 0xf2, + 0xea, 0xcf, 0xa0, 0xdc, 0x3e, 0xb5, 0x26, 0x67, 0x57, 0x8d, 0x22, 0x59, 0x2a, 0xd6, 0xe4, 0x4c, + 0x68, 0x3d, 0x4b, 0x96, 0x8a, 0x35, 0x39, 0x53, 0x9f, 0x42, 0xad, 0x1d, 0x71, 0xbd, 0xab, 0x4a, + 0xd9, 0x85, 0x06, 0x2d, 0xff, 0xc9, 0x38, 0x5a, 0xff, 0xd9, 0x35, 0xeb, 0xbf, 0x86, 0x34, 0xed, + 0xb1, 0xd8, 0x00, 0x9f, 0x40, 0xf5, 0xc8, 0xf7, 0xe6, 0x96, 0x1f, 0x52, 0xb1, 0x0a, 0xe4, 0xce, + 0xac, 0x4b, 0x51, 0x2a, 0x7e, 0x26, 0x96, 0x5e, 0x56, 0xb6, 0xf4, 0x76, 0xa1, 0x1c, 0x65, 0xfb, + 0xb5, 0xf3, 0xfc, 0x14, 0xf9, 0x08, 0xe5, 0xb1, 0xad, 0x00, 0x2b, 0x7b, 0x00, 0x30, 0x8f, 0x01, + 0x42, 0xb0, 0x46, 0x3a, 0x9d, 0x28, 0x5c, 0x93, 0x28, 0xd4, 0xbf, 0xca, 0x41, 0xe3, 0xc8, 0xf0, + 0x43, 0x1b, 0x27, 0x87, 0x0f, 0xc3, 0x3b, 0x90, 0x0f, 0x2f, 0xe7, 0x96, 0x30, 0x1b, 0xaf, 0xc5, + 0x0a, 0x21, 0xa7, 0x21, 0x19, 0x48, 0x04, 0xec, 0x4b, 0x68, 0xcc, 0x23, 0xb0, 0x4e, 0x1c, 0x95, + 0x8f, 0xcd, 0x72, 0x16, 0x1a, 0xf3, 0xfa, 0x5c, 0x4e, 0xb2, 0x9f, 0xc0, 0x76, 0x3a, 0xaf, 0x15, + 0x04, 0x09, 0x27, 0x93, 0x27, 0xeb, 0x5a, 0x2a, 0x23, 0x27, 0x63, 0x6d, 0xd8, 0x4a, 0xb2, 0x4f, + 0x3c, 0x67, 0x31, 0x73, 0x03, 0xa1, 0xa1, 0xde, 0x58, 0xaa, 0xbd, 0xcd, 0xb1, 0x9a, 0x32, 0x5f, + 0x82, 0x30, 0x15, 0x6a, 0x31, 0xac, 0xbf, 0x98, 0xd1, 0x96, 0xc8, 0x6b, 0x29, 0x18, 0xfb, 0x08, + 0x20, 0x4e, 0x07, 0xcd, 0x22, 0x8d, 0xe7, 0x72, 0xff, 0xba, 0xa1, 0x35, 0xd3, 0x24, 0x32, 0x94, + 0xaf, 0x86, 0x73, 0xe2, 0xf9, 0x76, 0x78, 0x3a, 0x23, 0x3e, 0x92, 0xd3, 0x12, 0x00, 0xb1, 0xab, + 0x40, 0x47, 0xcb, 0x26, 0xce, 0x22, 0x58, 0x4a, 0xc3, 0x0e, 0x86, 0x8b, 0x71, 0x5c, 0x2e, 0x0a, + 0xa2, 0xa4, 0x97, 0xb3, 0xe0, 0x44, 0xd8, 0x7f, 0x49, 0x0b, 0x0f, 0x83, 0x13, 0xb6, 0x0b, 0xd7, + 0x13, 0xa2, 0x84, 0x03, 0x06, 0x4d, 0x20, 0xde, 0x99, 0x0c, 0x5f, 0xcc, 0x06, 0x03, 0xf5, 0x2b, + 0xa8, 0xa7, 0x66, 0xe7, 0x85, 0x22, 0xf1, 0x16, 0x94, 0xf1, 0x3f, 0x0a, 0x44, 0xb1, 0x00, 0x4b, + 0x98, 0x1e, 0x86, 0xbe, 0x6a, 0x81, 0xb2, 0x3c, 0xd6, 0xec, 0x4d, 0xf2, 0x98, 0xd0, 0xa4, 0xac, + 0x7a, 0x3e, 0x22, 0x14, 0x9a, 0xb8, 0xab, 0x93, 0x98, 0xa5, 0x56, 0xaf, 0x4c, 0x96, 0xfa, 0xa7, + 0x59, 0xa9, 0xcd, 0x38, 0xe2, 0xec, 0x2d, 0x79, 0xf9, 0x49, 0x1b, 0x37, 0x19, 0x33, 0xe2, 0xf9, + 0xef, 0x82, 0xe2, 0xf9, 0xa6, 0xed, 0x1a, 0xe4, 0xc1, 0xe1, 0xc3, 0x9d, 0x25, 0x75, 0x68, 0x53, + 0xc0, 0x8f, 0x04, 0x18, 0xd5, 0x66, 0xd3, 0x8a, 0x4d, 0x5e, 0x61, 0xb0, 0xca, 0x20, 0x59, 0x3e, + 0xe4, 0xd3, 0xf2, 0xe1, 0x1d, 0xa8, 0x38, 0x56, 0x10, 0xe8, 0xe1, 0xa9, 0xe1, 0x92, 0x04, 0x4d, + 0x77, 0xba, 0x8c, 0xc8, 0xd1, 0xa9, 0xe1, 0x22, 0xa1, 0xed, 0xea, 0xc2, 0xf5, 0x5c, 0x5c, 0x25, + 0xb4, 0x5d, 0xb2, 0x0c, 0x50, 0xf2, 0x6e, 0xaf, 0x9b, 0x58, 0x21, 0x98, 0xd8, 0xea, 0xbc, 0xaa, + 0xaf, 0x42, 0xe9, 0xa9, 0x6d, 0x9d, 0x0b, 0x5e, 0xf6, 0xdc, 0xb6, 0xce, 0x23, 0x5e, 0x86, 0xdf, + 0xea, 0x9f, 0x96, 0xa1, 0x4c, 0xc4, 0xfb, 0x57, 0x7b, 0xca, 0x5e, 0x46, 0x91, 0xde, 0x11, 0x72, + 0x2a, 0xbf, 0x46, 0x7d, 0xe7, 0x52, 0xeb, 0x55, 0xe0, 0xc2, 0x55, 0x27, 0x86, 0xc2, 0x65, 0x72, + 0x85, 0x20, 0xc2, 0x9b, 0x55, 0xe1, 0xaa, 0x51, 0xf0, 0x9d, 0x23, 0x5c, 0x27, 0x09, 0x80, 0x3d, + 0x80, 0x32, 0xb6, 0x90, 0x4c, 0xfb, 0x92, 0xcc, 0x58, 0xa8, 0x0f, 0x91, 0x71, 0xa8, 0x95, 0xc2, + 0xb1, 0x83, 0x09, 0x92, 0xd0, 0x96, 0x1f, 0x44, 0xdb, 0xa9, 0xae, 0x45, 0x49, 0xe4, 0x68, 0xa8, + 0xbe, 0x08, 0x63, 0x2e, 0xda, 0xbe, 0xb2, 0xfe, 0xa5, 0x11, 0x01, 0xbb, 0x07, 0x25, 0xd2, 0x18, + 0xac, 0xa0, 0x59, 0x93, 0x59, 0x67, 0xa4, 0xce, 0x68, 0x11, 0x9a, 0xbd, 0x0b, 0x85, 0xe9, 0x99, + 0x75, 0x19, 0x34, 0xeb, 0x32, 0x4b, 0x48, 0xc9, 0x42, 0x8d, 0x53, 0xb0, 0x37, 0xa1, 0xe1, 0x5b, + 0x53, 0x9d, 0xbc, 0x63, 0x28, 0xbc, 0x83, 0x66, 0x83, 0x64, 0x73, 0xcd, 0xb7, 0xa6, 0x6d, 0x04, + 0x8e, 0xc6, 0x4e, 0xc0, 0xde, 0x86, 0x22, 0x49, 0x25, 0x54, 0xa2, 0xa5, 0x9a, 0x23, 0x11, 0xa7, + 0x09, 0x2c, 0xdb, 0x85, 0x4a, 0xc2, 0x36, 0xae, 0x53, 0x87, 0xb6, 0x97, 0xf8, 0x11, 0xb1, 0x71, + 0x2d, 0x21, 0x63, 0x1f, 0x02, 0x08, 0xf5, 0x5e, 0x1f, 0x5f, 0x92, 0x63, 0xb9, 0x1a, 0x1b, 0x3e, + 0x92, 0x00, 0x94, 0x8d, 0x80, 0x77, 0xa0, 0x80, 0x52, 0x22, 0x68, 0xde, 0xa4, 0xd6, 0x6c, 0xa5, + 0x45, 0x08, 0xf5, 0x8e, 0xf0, 0xec, 0x1e, 0x94, 0x71, 0x71, 0xe9, 0x38, 0x85, 0x4d, 0xd9, 0xde, + 0x11, 0x2b, 0x11, 0xf5, 0x24, 0xeb, 0x7c, 0xf8, 0x9d, 0xc3, 0xee, 0x43, 0xde, 0xb4, 0xa6, 0x41, + 0xf3, 0x16, 0x95, 0x78, 0x43, 0x9a, 0x4b, 0x54, 0x1c, 0xf6, 0xad, 0x29, 0x17, 0x2d, 0x48, 0xc3, + 0x0e, 0xa0, 0x81, 0x4b, 0x6f, 0x97, 0x54, 0x5f, 0x1c, 0xf2, 0xe6, 0x6d, 0xca, 0xf5, 0xfa, 0x52, + 0xae, 0xbe, 0x20, 0xa2, 0x09, 0xea, 0xb8, 0xa1, 0x7f, 0xa9, 0xd5, 0x5d, 0x19, 0xc6, 0x6e, 0x43, + 0xd9, 0x0e, 0x7a, 0xde, 0xe4, 0xcc, 0x32, 0x9b, 0xaf, 0xf0, 0x40, 0x52, 0x94, 0x66, 0x5f, 0x40, + 0x9d, 0x16, 0x23, 0x26, 0xb1, 0xf2, 0xe6, 0x1d, 0x59, 0xe4, 0x8d, 0x64, 0x94, 0x96, 0xa6, 0x44, + 0x75, 0xcb, 0x0e, 0xf4, 0xd0, 0x9a, 0xcd, 0x3d, 0x1f, 0x2d, 0xa5, 0x57, 0xb9, 0xc9, 0x61, 0x07, + 0xa3, 0x08, 0x84, 0x7c, 0x3e, 0x8e, 0x61, 0xe9, 0xde, 0x74, 0x1a, 0x58, 0x61, 0xf3, 0x2e, 0xed, + 0xb5, 0x46, 0x14, 0xca, 0x1a, 0x10, 0xf4, 0xf6, 0x63, 0xb2, 0x87, 0xa8, 0xdc, 0x4f, 0x96, 0xe4, + 0x77, 0x6a, 0xc1, 0x4a, 0x82, 0xfe, 0x60, 0x43, 0x16, 0xe3, 0x7b, 0x05, 0xc8, 0x99, 0xd6, 0xf4, + 0xf6, 0xcf, 0x80, 0xad, 0x8e, 0xc8, 0x8b, 0x94, 0x89, 0x82, 0x50, 0x26, 0xbe, 0xcc, 0x7e, 0x9e, + 0x51, 0xbf, 0x80, 0x7a, 0x6a, 0x7b, 0xad, 0x55, 0x8a, 0xb8, 0x7a, 0x6e, 0x70, 0x8f, 0x7f, 0x4d, + 0xe3, 0x09, 0xf5, 0x8f, 0x73, 0x50, 0x3b, 0x30, 0x82, 0xd3, 0x43, 0x63, 0x3e, 0x0c, 0x8d, 0x30, + 0xc0, 0x31, 0x3a, 0x35, 0x82, 0xd3, 0x99, 0x31, 0xe7, 0xde, 0xe0, 0x0c, 0x77, 0x43, 0x08, 0xd8, + 0xd0, 0xfe, 0xde, 0xc2, 0xd9, 0xc1, 0xe4, 0xc0, 0x3d, 0x7a, 0x22, 0xc2, 0x07, 0x71, 0x1a, 0xf7, + 0x73, 0x70, 0xba, 0x98, 0x4e, 0x1d, 0x4b, 0xf0, 0x9d, 0x28, 0xc9, 0xde, 0x84, 0xba, 0xf8, 0x24, + 0x43, 0xe8, 0x42, 0x04, 0x02, 0xd3, 0x40, 0xf6, 0x11, 0x54, 0x05, 0x60, 0x14, 0x71, 0x9f, 0x46, + 0xec, 0x16, 0x4a, 0x10, 0x9a, 0x4c, 0xc5, 0x7e, 0x0e, 0xd7, 0xa5, 0xe4, 0x23, 0xcf, 0x3f, 0x5c, + 0x38, 0xa1, 0xdd, 0xee, 0x0b, 0x9d, 0xf7, 0x95, 0x95, 0xec, 0x09, 0x89, 0xb6, 0x3e, 0x67, 0xba, + 0xb5, 0x87, 0xb6, 0x2b, 0x34, 0x82, 0x34, 0x70, 0x89, 0xca, 0xb8, 0x20, 0x1e, 0x96, 0xa6, 0x32, + 0x2e, 0x70, 0xc5, 0x0a, 0xc0, 0xa1, 0x15, 0x9e, 0x7a, 0x26, 0x69, 0x04, 0xf1, 0x8a, 0x1d, 0xca, + 0x28, 0x2d, 0x4d, 0xa9, 0xfe, 0xa7, 0x0c, 0x14, 0xf8, 0xbc, 0xbc, 0x02, 0x95, 0xb1, 0xe3, 0x4d, + 0xce, 0x74, 0x77, 0x31, 0x8b, 0x1c, 0xbf, 0x04, 0x40, 0x85, 0x87, 0x8c, 0x8f, 0x20, 0xa4, 0xd9, + 0xc8, 0x68, 0xf4, 0x8d, 0x02, 0xc0, 0x5b, 0x84, 0x13, 0x37, 0xa4, 0x89, 0xc8, 0x68, 0x22, 0x85, + 0x33, 0xe4, 0x7b, 0xe7, 0x34, 0xb7, 0x79, 0x42, 0x44, 0x49, 0xf2, 0x2d, 0x13, 0xe3, 0xc7, 0x4c, + 0x05, 0xc2, 0x95, 0x09, 0xd0, 0x76, 0xc3, 0x65, 0xef, 0x54, 0x71, 0xc5, 0x3b, 0xc5, 0x3e, 0x8d, + 0x57, 0x0e, 0xb5, 0x58, 0xb0, 0x7f, 0xc1, 0xb2, 0xe4, 0x35, 0xa6, 0xa5, 0xe8, 0xd4, 0x67, 0x00, + 0x9a, 0x77, 0x1e, 0x58, 0x21, 0x29, 0x35, 0x37, 0xa9, 0x79, 0xa9, 0x80, 0x8e, 0x77, 0x7e, 0xe4, + 0x05, 0x51, 0x88, 0x2b, 0x1b, 0x87, 0xb8, 0x62, 0xfd, 0x27, 0xb7, 0x5e, 0xff, 0x51, 0x1f, 0x42, + 0x09, 0x05, 0x9b, 0x11, 0x1a, 0xec, 0xcd, 0xd8, 0x47, 0x96, 0x4b, 0x7c, 0x75, 0x49, 0xad, 0xc2, + 0x6b, 0xf6, 0x30, 0x6a, 0x09, 0xe5, 0x79, 0x5d, 0xb2, 0xee, 0x63, 0x06, 0x29, 0x0a, 0xe4, 0xa2, + 0x52, 0xfd, 0xf7, 0x19, 0xa8, 0x0e, 0x7c, 0x13, 0x99, 0xef, 0x70, 0x6e, 0x4d, 0x5e, 0xa8, 0x91, + 0xa1, 0xec, 0xf4, 0x1c, 0xc7, 0x88, 0xf5, 0x19, 0x94, 0x9d, 0x11, 0x80, 0x7d, 0x08, 0xf9, 0xa9, + 0x63, 0x9c, 0x50, 0x7f, 0x62, 0x4b, 0x4d, 0x2a, 0x3e, 0xfa, 0x7e, 0xe4, 0x18, 0x27, 0x1a, 0x91, + 0xaa, 0xbf, 0x1f, 0xd7, 0x4f, 0x2e, 0x70, 0xd9, 0xf1, 0xbd, 0x41, 0xc1, 0x96, 0x61, 0x5b, 0xc9, + 0xb0, 0x32, 0xe4, 0xf7, 0x3b, 0xc3, 0x36, 0xb7, 0xcf, 0xd0, 0x52, 0x1b, 0xea, 0x8f, 0xba, 0xda, + 0x70, 0xa4, 0xe4, 0x29, 0x7a, 0x43, 0x80, 0x5e, 0x6b, 0x38, 0x52, 0xca, 0x0c, 0xa0, 0x78, 0xdc, + 0xef, 0xfe, 0xfc, 0xb8, 0xa3, 0x28, 0xea, 0xbf, 0xcd, 0x00, 0x24, 0xee, 0x5a, 0xf6, 0x1e, 0x54, + 0xcf, 0x29, 0xa5, 0x4b, 0x8e, 0x7b, 0xb9, 0x8f, 0xc0, 0xd1, 0x24, 0xd7, 0x7f, 0x24, 0xa9, 0xe9, + 0x28, 0xbf, 0x56, 0x3d, 0xf8, 0xd5, 0x79, 0x22, 0xfa, 0xd8, 0xfb, 0x50, 0xf6, 0xb0, 0x1f, 0x48, + 0x9a, 0x93, 0x85, 0x97, 0xd4, 0x7d, 0xad, 0xe4, 0xf1, 0x04, 0xca, 0xb9, 0xa9, 0x1f, 0x39, 0x44, + 0x62, 0xd2, 0x47, 0x08, 0x6a, 0x3b, 0xc6, 0x22, 0xb0, 0x34, 0x8e, 0x8f, 0xf9, 0x60, 0x41, 0x0a, + 0x3d, 0xfe, 0xfd, 0x0c, 0x54, 0x25, 0x52, 0xf6, 0x30, 0x65, 0x39, 0xbd, 0xb2, 0x52, 0x16, 0xff, + 0x96, 0x2c, 0xa8, 0xb7, 0xa1, 0x10, 0x84, 0x86, 0x1f, 0x0a, 0xc3, 0x49, 0x91, 0x72, 0xec, 0x79, + 0x0b, 0xd7, 0xd4, 0x38, 0x9a, 0xa9, 0x90, 0xb3, 0x5c, 0x53, 0xac, 0xce, 0x55, 0x2a, 0x44, 0xaa, + 0x3b, 0x50, 0x89, 0x8b, 0xc7, 0x69, 0xd2, 0x06, 0xcf, 0x86, 0xca, 0x06, 0xab, 0x40, 0x41, 0x6b, + 0xf5, 0x1f, 0x77, 0x94, 0x8c, 0xfa, 0x8f, 0x32, 0x00, 0x49, 0x2e, 0xf6, 0x20, 0xd5, 0xda, 0xdb, + 0xcb, 0xa5, 0x3e, 0xa0, 0xbf, 0x52, 0x63, 0xef, 0x40, 0x65, 0xe1, 0x12, 0xd0, 0x32, 0x05, 0xb3, + 0x4e, 0x00, 0xec, 0x0e, 0xe4, 0xa2, 0x53, 0x0f, 0x4b, 0x91, 0xe6, 0xe7, 0x86, 0xa3, 0x7e, 0x09, + 0x95, 0xb8, 0x38, 0x34, 0xe4, 0x1f, 0x0d, 0x7a, 0xbd, 0xc1, 0xb3, 0x6e, 0xff, 0xb1, 0xb2, 0x81, + 0xc9, 0x23, 0xad, 0xd3, 0xee, 0xec, 0x63, 0x32, 0x83, 0xeb, 0xaa, 0x7d, 0xac, 0x69, 0x9d, 0xfe, + 0x48, 0xd7, 0x06, 0xcf, 0x94, 0xac, 0xfa, 0xb7, 0xb3, 0xb0, 0x35, 0x70, 0xf7, 0x17, 0x73, 0xc7, + 0x9e, 0x18, 0xa1, 0xf5, 0xc4, 0xba, 0x6c, 0x87, 0x17, 0xec, 0xbd, 0x88, 0xc3, 0x98, 0xd6, 0x54, + 0x2c, 0xa0, 0x46, 0x5a, 0x39, 0x10, 0x1c, 0x67, 0x9f, 0x02, 0xa1, 0x8a, 0xe7, 0xea, 0x66, 0x54, + 0x84, 0x6e, 0x9b, 0x17, 0xb4, 0x8c, 0x0a, 0x5a, 0xc3, 0x4b, 0x4a, 0x46, 0xa1, 0xf1, 0x35, 0x6c, + 0xa5, 0x28, 0x05, 0x57, 0xc0, 0x65, 0xf4, 0x7e, 0xe4, 0x82, 0x5d, 0x6a, 0x8a, 0x0c, 0xc1, 0x1e, + 0x73, 0x35, 0x64, 0xd3, 0x4b, 0x43, 0x6f, 0xf7, 0x61, 0x7b, 0x1d, 0xe1, 0x1a, 0xe9, 0xbc, 0x23, + 0x4b, 0xe7, 0x25, 0xcf, 0x45, 0x22, 0xa9, 0xff, 0x49, 0x16, 0x2a, 0x5d, 0x37, 0xb0, 0xfc, 0x10, + 0x87, 0xe3, 0x75, 0xc8, 0xf9, 0xf1, 0x40, 0xac, 0x84, 0xc0, 0x10, 0xc7, 0xee, 0xc3, 0x96, 0x61, + 0x9a, 0xba, 0x31, 0x9d, 0x5a, 0x93, 0xd0, 0x32, 0x75, 0xe4, 0xd5, 0x62, 0x1e, 0x37, 0x0d, 0xd3, + 0x6c, 0x09, 0x38, 0xb2, 0x2d, 0x61, 0xa3, 0x46, 0x4a, 0x23, 0x77, 0x66, 0xe6, 0x22, 0x1b, 0x55, + 0xe8, 0x8c, 0x34, 0xce, 0xe9, 0x79, 0xc8, 0xbf, 0x60, 0x1e, 0x1e, 0xc0, 0xb5, 0x65, 0x93, 0xc6, + 0x36, 0xb9, 0xc3, 0x31, 0xaf, 0x6d, 0xa5, 0x2d, 0x9a, 0xae, 0x19, 0x5c, 0x6d, 0xdb, 0x16, 0xaf, + 0xb4, 0x6d, 0xd3, 0x46, 0x33, 0x4e, 0x74, 0x89, 0xd8, 0x7c, 0xc2, 0x43, 0xba, 0xe6, 0x85, 0xfa, + 0x1f, 0xb2, 0x00, 0x9a, 0x35, 0x77, 0x8c, 0x89, 0xf5, 0xff, 0xce, 0xe8, 0xbd, 0x86, 0xe6, 0xa9, + 0x63, 0x85, 0x96, 0x3e, 0xf1, 0x5c, 0x33, 0x0a, 0x44, 0x73, 0x50, 0xdb, 0xa3, 0x1d, 0xbd, 0x76, + 0x78, 0x8b, 0x2f, 0x3d, 0xbc, 0xa5, 0x97, 0x18, 0xde, 0xf2, 0x9a, 0xe1, 0xfd, 0x2f, 0x39, 0xa8, + 0xb6, 0x5c, 0xc3, 0xb9, 0xfc, 0xde, 0xa2, 0x50, 0x33, 0xb9, 0x7b, 0xe7, 0x8b, 0x90, 0x8f, 0x1a, + 0x8f, 0x11, 0x55, 0x08, 0x42, 0xe3, 0xf5, 0x1a, 0x54, 0xbd, 0x45, 0x18, 0xe3, 0x79, 0xd4, 0x08, + 0x38, 0x88, 0x08, 0xe2, 0xfc, 0xa4, 0x6b, 0xe4, 0xa4, 0xfc, 0xa4, 0x45, 0x26, 0xf9, 0x63, 0x5d, + 0x24, 0xce, 0x4f, 0x04, 0x6f, 0x40, 0x3d, 0xb4, 0x67, 0x34, 0x6e, 0xc1, 0x62, 0x66, 0xf1, 0xb1, + 0xcb, 0xf1, 0xb3, 0x3b, 0x6d, 0x01, 0xc3, 0x52, 0x66, 0xd6, 0xcc, 0xf3, 0x2f, 0x79, 0x29, 0x45, + 0x5e, 0x0a, 0x07, 0x51, 0x29, 0xef, 0x03, 0x3b, 0x37, 0xec, 0x50, 0x4f, 0x17, 0xc5, 0xb5, 0x39, + 0x05, 0x31, 0x23, 0xb9, 0xb8, 0x1b, 0x50, 0x34, 0xed, 0xe0, 0xac, 0x3b, 0x10, 0x9a, 0x9c, 0x48, + 0xa1, 0x6a, 0x14, 0x7c, 0xd4, 0x1d, 0xe8, 0xe3, 0x4b, 0x11, 0xdc, 0xc9, 0x69, 0x65, 0x04, 0xec, + 0x5d, 0x86, 0xe4, 0xca, 0x26, 0x24, 0xef, 0x2d, 0x85, 0xc2, 0x29, 0xa8, 0x93, 0xd3, 0x1a, 0x08, + 0xef, 0x22, 0xb8, 0x8d, 0x50, 0x5c, 0x8f, 0x44, 0x29, 0x3a, 0xce, 0x49, 0xab, 0x44, 0xba, 0x89, + 0x88, 0x01, 0xc1, 0x39, 0xed, 0x1d, 0xa8, 0xb8, 0x56, 0x78, 0xee, 0xf9, 0xd8, 0x9a, 0x1a, 0x1f, + 0xbd, 0x18, 0x80, 0x3a, 0x78, 0x30, 0x31, 0x5c, 0x6c, 0x3c, 0x05, 0x7c, 0xb0, 0x3d, 0x22, 0xcd, + 0xee, 0xe2, 0xc0, 0x23, 0x8f, 0x21, 0x6c, 0x83, 0x0f, 0x49, 0x02, 0x51, 0x7d, 0xc9, 0x7b, 0x78, + 0xe4, 0x2f, 0x5c, 0x8b, 0xdb, 0x5b, 0xf4, 0x69, 0x8a, 0xf0, 0x47, 0x9c, 0x66, 0xfb, 0x70, 0x8d, + 0x6b, 0x79, 0x96, 0xa9, 0x4b, 0x5e, 0xb5, 0xec, 0xd5, 0x5e, 0x35, 0x16, 0xd1, 0xc7, 0xe0, 0x40, + 0xfd, 0xcb, 0xeb, 0x90, 0xef, 0x7b, 0xa6, 0xc5, 0x3e, 0x80, 0x0a, 0x1d, 0x5a, 0x59, 0xf5, 0x56, + 0x22, 0x9a, 0xfe, 0x90, 0xf8, 0x2a, 0xbb, 0xe2, 0xeb, 0xea, 0x63, 0x2e, 0xaf, 0x93, 0x20, 0xa6, + 0x80, 0x83, 0x14, 0x22, 0xe7, 0x2a, 0x26, 0xc7, 0x60, 0xc7, 0xc8, 0x84, 0xf7, 0x2d, 0x97, 0x3c, + 0x1e, 0x05, 0x2d, 0x4e, 0x93, 0x8a, 0xe2, 0x7b, 0xc8, 0x2f, 0x74, 0x0a, 0x08, 0x17, 0xd6, 0xa8, + 0x28, 0x1c, 0x4f, 0xa7, 0x82, 0x3e, 0x80, 0xca, 0xb7, 0x9e, 0xed, 0xf2, 0x86, 0x17, 0x57, 0x1a, + 0xfe, 0x95, 0x67, 0x73, 0x37, 0x6b, 0xf9, 0x5b, 0xf1, 0xc5, 0xde, 0x80, 0x92, 0xe7, 0xf2, 0xb2, + 0x4b, 0x2b, 0x65, 0x17, 0x3d, 0xb7, 0xc7, 0x03, 0xcd, 0xf5, 0xf1, 0xc2, 0x76, 0x4c, 0x1d, 0x49, + 0xad, 0x69, 0x28, 0xbc, 0x8a, 0x55, 0x02, 0x0e, 0xdc, 0x9e, 0x35, 0x0d, 0x51, 0xf3, 0x9a, 0xda, + 0x0e, 0xb2, 0x25, 0x2a, 0xac, 0xb2, 0x52, 0x18, 0x70, 0x34, 0x15, 0xf8, 0x16, 0x94, 0x4f, 0x7c, + 0x6f, 0x31, 0x47, 0x55, 0x0a, 0x56, 0xfd, 0x78, 0x84, 0xdb, 0xbb, 0xc4, 0xde, 0xd3, 0xa7, 0xed, + 0x9e, 0xe8, 0x68, 0xe4, 0x56, 0x57, 0x7b, 0x1f, 0xe1, 0x87, 0x16, 0x95, 0x6a, 0x9c, 0x9c, 0xe8, + 0x22, 0x72, 0xbe, 0x52, 0xaa, 0x71, 0x72, 0x42, 0x95, 0x3f, 0x80, 0xfa, 0xb9, 0xed, 0xea, 0xc1, + 0xdc, 0x9a, 0x70, 0xda, 0xfa, 0x6a, 0xb1, 0xe7, 0xb6, 0x8b, 0xea, 0x1c, 0xd1, 0xcb, 0x7a, 0x5f, + 0xe3, 0x85, 0x7a, 0xdf, 0x0e, 0x14, 0x1c, 0x7b, 0x66, 0x87, 0x14, 0xb2, 0x5c, 0x92, 0xb1, 0x84, + 0x60, 0x2a, 0x14, 0x85, 0xd1, 0xae, 0xac, 0x90, 0x08, 0x4c, 0x9a, 0x7d, 0xb3, 0x17, 0xb0, 0xef, + 0x5d, 0xe1, 0x6d, 0x40, 0x62, 0xfd, 0xb9, 0x35, 0x69, 0x5e, 0x93, 0x1d, 0x3d, 0x71, 0x86, 0x6a, + 0x94, 0xe1, 0xa9, 0x35, 0x61, 0xf7, 0xa0, 0xe4, 0x8d, 0xbf, 0xd5, 0x51, 0x38, 0x6d, 0xaf, 0x17, + 0x4e, 0x45, 0x6f, 0xfc, 0xad, 0x66, 0x4d, 0xd9, 0x87, 0x50, 0xf5, 0xc9, 0xe0, 0xd0, 0xc9, 0x3a, + 0xb9, 0x2e, 0xab, 0x8a, 0x89, 0x25, 0xa2, 0x81, 0x9f, 0x58, 0x25, 0x6f, 0x40, 0x9d, 0x07, 0x2b, + 0x79, 0x74, 0x2a, 0x20, 0xcf, 0x50, 0x45, 0xab, 0x11, 0x90, 0x47, 0xae, 0x02, 0xf6, 0x00, 0x20, + 0x12, 0x3a, 0xe1, 0x05, 0x1d, 0x3b, 0x8c, 0x1b, 0xc1, 0x43, 0x43, 0xed, 0xf0, 0x42, 0xab, 0x98, + 0xd1, 0x27, 0x1a, 0xfd, 0x63, 0xdb, 0x35, 0x71, 0x2d, 0x84, 0xc6, 0x49, 0xd0, 0x6c, 0xd2, 0x56, + 0xa9, 0x0a, 0xd8, 0xc8, 0x38, 0x09, 0xd8, 0xc7, 0x50, 0x33, 0xb8, 0x70, 0xe0, 0x27, 0x96, 0x6e, + 0xc9, 0xaa, 0xb7, 0x24, 0x36, 0xb4, 0xaa, 0x21, 0xc9, 0x90, 0xcf, 0x80, 0x45, 0xee, 0x40, 0xd2, + 0xca, 0xf8, 0xa2, 0xb8, 0xbd, 0xb2, 0x28, 0x36, 0x85, 0x3f, 0x30, 0x3e, 0x83, 0xf7, 0x19, 0xd4, + 0xd3, 0xa2, 0xf8, 0xce, 0x1a, 0x07, 0x18, 0x0d, 0xbf, 0x56, 0x9b, 0xc8, 0xc2, 0xf9, 0x0d, 0xa8, + 0xbb, 0x5e, 0xa8, 0x4f, 0x8c, 0xc9, 0xa9, 0x45, 0x19, 0xb9, 0x93, 0xa7, 0xe6, 0x7a, 0x61, 0x3b, + 0x82, 0xe1, 0xf8, 0x70, 0x7e, 0x48, 0xe3, 0x73, 0x57, 0x1e, 0x9f, 0x58, 0x3b, 0x43, 0x59, 0x15, + 0x29, 0x6a, 0x38, 0x4f, 0x5c, 0xf1, 0xa0, 0x0c, 0xaf, 0xa5, 0xe6, 0x29, 0xd6, 0x48, 0x34, 0xf0, + 0x13, 0xed, 0xe4, 0x35, 0xa8, 0x06, 0xde, 0xc2, 0x9f, 0x58, 0x7a, 0x10, 0x5a, 0xf3, 0xe6, 0x0e, + 0x8d, 0x28, 0x70, 0xd0, 0x30, 0xb4, 0xe6, 0xec, 0x73, 0x68, 0xcc, 0x7d, 0x4b, 0x97, 0xe6, 0xe9, + 0x75, 0xb9, 0x8b, 0x47, 0xbe, 0x95, 0x4c, 0x55, 0x6d, 0x2e, 0xa5, 0xa2, 0x9c, 0x52, 0x0f, 0xd4, + 0xa5, 0x9c, 0x49, 0x27, 0x30, 0x67, 0xa2, 0x70, 0xfe, 0x14, 0xb6, 0xa4, 0x9c, 0x8b, 0x33, 0xca, + 0xfc, 0x46, 0xca, 0x1f, 0x19, 0x91, 0x1f, 0x9f, 0x61, 0xf6, 0xc6, 0x3c, 0x95, 0x66, 0xad, 0x25, + 0x9d, 0x1c, 0x95, 0xe0, 0x37, 0x29, 0xff, 0xcd, 0x2b, 0x14, 0xed, 0x94, 0xb2, 0xfe, 0x84, 0xbb, + 0xb1, 0xba, 0x41, 0xc7, 0x35, 0x9b, 0x6f, 0xf1, 0x33, 0xaf, 0x94, 0x60, 0x1f, 0x41, 0x8d, 0xbc, + 0x1b, 0x21, 0x9d, 0xd6, 0x09, 0x9a, 0x6f, 0xcb, 0x86, 0x3a, 0x39, 0xf0, 0x08, 0xa1, 0x55, 0x9d, + 0xf8, 0x3b, 0x60, 0x9f, 0xc2, 0x16, 0xf7, 0x89, 0xc8, 0xdc, 0xf1, 0x9d, 0xd5, 0xc5, 0x45, 0x44, + 0x8f, 0x12, 0x16, 0xa9, 0xc1, 0x2d, 0x7f, 0xe1, 0x92, 0x46, 0x20, 0x72, 0xce, 0x7d, 0x6f, 0x6c, + 0xf1, 0xfc, 0xf7, 0x28, 0xbf, 0xe8, 0x8e, 0xc6, 0xc9, 0x78, 0x5e, 0x62, 0x46, 0x37, 0x7c, 0x19, + 0x74, 0x84, 0xf9, 0xae, 0x28, 0x93, 0xb3, 0x75, 0x2a, 0xf3, 0xdd, 0x97, 0x29, 0x73, 0x0f, 0xf3, + 0x51, 0x99, 0x0c, 0xf2, 0x8b, 0x85, 0x6d, 0x36, 0xef, 0xf3, 0x93, 0x3d, 0xf8, 0xcd, 0xde, 0x82, + 0x86, 0x6f, 0x4d, 0x16, 0x7e, 0x60, 0x3f, 0xb7, 0xf4, 0xc0, 0x76, 0xcf, 0x9a, 0xef, 0xd1, 0x38, + 0xd6, 0x63, 0xe8, 0xd0, 0x76, 0xcf, 0x70, 0xc5, 0x5a, 0x17, 0xa1, 0xe5, 0xbb, 0x3a, 0xaa, 0x05, + 0xcd, 0xf7, 0xe5, 0x15, 0xdb, 0x21, 0xc4, 0x70, 0x62, 0xb8, 0x1a, 0x58, 0xf1, 0x37, 0xfb, 0x09, + 0x6c, 0x26, 0x4a, 0xe2, 0x1c, 0x85, 0x7f, 0xf3, 0x47, 0x6b, 0x5d, 0xd5, 0xa4, 0x18, 0x68, 0x49, + 0x1c, 0x87, 0xd2, 0xea, 0xbf, 0xc9, 0x43, 0x39, 0x92, 0xde, 0xac, 0x0a, 0xa5, 0xe3, 0xfe, 0x93, + 0xfe, 0xe0, 0x59, 0x5f, 0xd9, 0x60, 0x0d, 0x00, 0x3a, 0x19, 0xa7, 0x0f, 0xdb, 0xad, 0x3e, 0x3f, + 0x31, 0x4a, 0xe7, 0xf1, 0x78, 0x3a, 0xcb, 0xb6, 0xa0, 0xfe, 0xe8, 0xb8, 0x4f, 0x21, 0x62, 0x0e, + 0xca, 0x21, 0xa8, 0xf3, 0x35, 0x77, 0x64, 0x70, 0x50, 0x1e, 0x41, 0x87, 0xad, 0x51, 0x47, 0xeb, + 0x46, 0xa0, 0x02, 0x45, 0x9b, 0x47, 0x5a, 0xa7, 0x75, 0xc8, 0x01, 0x45, 0xac, 0xf6, 0x48, 0x1b, + 0x7c, 0xd5, 0x69, 0x8f, 0x14, 0x60, 0xd7, 0x61, 0x2b, 0x2e, 0x23, 0x2a, 0x5f, 0xa9, 0xb2, 0x1a, + 0x94, 0xa3, 0x72, 0x94, 0x6d, 0x2c, 0x55, 0xeb, 0xb4, 0x8f, 0xb5, 0x61, 0xf7, 0x69, 0x47, 0x6f, + 0x8f, 0x3a, 0xca, 0x75, 0x34, 0xc3, 0x87, 0xdd, 0xfe, 0x13, 0xe5, 0x06, 0x1a, 0xb9, 0xf8, 0xc5, + 0x4b, 0xbf, 0xc9, 0x18, 0x34, 0x12, 0x5a, 0x82, 0x35, 0xc9, 0xc7, 0xf2, 0xf8, 0xb1, 0x72, 0x17, + 0x8b, 0xdd, 0xef, 0x0e, 0x47, 0xdd, 0x7e, 0x7b, 0xa4, 0xbc, 0xc6, 0x00, 0x8a, 0x8f, 0xba, 0xbd, + 0x51, 0x47, 0x53, 0x76, 0xb0, 0xbc, 0xaf, 0x06, 0xdd, 0xbe, 0xf2, 0x3a, 0x9d, 0x37, 0x6c, 0x1d, + 0x1e, 0xf5, 0x3a, 0x8a, 0x4a, 0xb5, 0x0c, 0xb4, 0x91, 0xf2, 0x06, 0x1a, 0xfb, 0xc7, 0x7d, 0x6c, + 0xdb, 0x9b, 0x58, 0x21, 0x7d, 0xea, 0xad, 0x5e, 0x4f, 0x79, 0x4b, 0x72, 0xc6, 0xbc, 0x8d, 0xdf, + 0xcf, 0xba, 0xfd, 0xfd, 0xc1, 0x33, 0xe5, 0x1d, 0x24, 0xdb, 0xd3, 0x06, 0xad, 0xfd, 0x76, 0x6b, + 0x38, 0x52, 0xee, 0x61, 0x01, 0xc3, 0xa3, 0x5e, 0x77, 0xa4, 0xbc, 0x8b, 0x54, 0x8f, 0x5b, 0xa3, + 0x83, 0x8e, 0xa6, 0xdc, 0xc7, 0xef, 0xd6, 0x70, 0xd8, 0xd1, 0x46, 0xca, 0x2e, 0x7e, 0x77, 0xfb, + 0xf4, 0xfd, 0x11, 0x7e, 0xef, 0x77, 0x7a, 0x9d, 0x51, 0x47, 0xf9, 0x18, 0x07, 0x4c, 0xeb, 0x1c, + 0xf5, 0x5a, 0xed, 0x8e, 0xf2, 0x09, 0x26, 0x7a, 0x83, 0xf6, 0x13, 0x7d, 0x70, 0xa4, 0x7c, 0x8a, + 0x75, 0x90, 0x2b, 0x69, 0x88, 0x83, 0xf9, 0x19, 0x8e, 0x53, 0x9c, 0xa4, 0xd6, 0x7d, 0x8e, 0xd5, + 0x1e, 0x76, 0xfb, 0xc7, 0x43, 0xe5, 0x0b, 0x24, 0xa6, 0x4f, 0xc2, 0x7c, 0xc9, 0xb6, 0x41, 0x19, + 0xf4, 0xf5, 0xfd, 0xe3, 0xa3, 0x5e, 0xb7, 0xdd, 0x1a, 0x75, 0xf4, 0x27, 0x9d, 0x6f, 0x94, 0xdf, + 0xc1, 0x69, 0x3f, 0xd2, 0x3a, 0xba, 0x68, 0xc7, 0x8f, 0xa3, 0xb4, 0x68, 0xcb, 0x4f, 0xb0, 0x8a, + 0x04, 0xaf, 0x1f, 0x3f, 0x51, 0x7e, 0x57, 0xfd, 0x16, 0xca, 0x91, 0x5e, 0x85, 0xd5, 0x75, 0xfb, + 0xfd, 0x8e, 0xa6, 0x6c, 0xe0, 0xd8, 0xf5, 0x3a, 0x8f, 0x46, 0x4a, 0x86, 0x1c, 0x25, 0xdd, 0xc7, + 0x07, 0x23, 0x25, 0x8b, 0x9f, 0x83, 0x63, 0x1c, 0xf1, 0x1c, 0x8d, 0x6d, 0xe7, 0xb0, 0xab, 0xe4, + 0xf1, 0xab, 0xd5, 0x1f, 0x75, 0x95, 0x02, 0x8d, 0x7d, 0xb7, 0xff, 0xb8, 0xd7, 0x51, 0x8a, 0x08, + 0x3d, 0x6c, 0x69, 0x4f, 0x94, 0x12, 0x66, 0x6a, 0x1d, 0x1d, 0xf5, 0xbe, 0x51, 0xca, 0xea, 0x3d, + 0x28, 0xb5, 0x4e, 0x4e, 0x0e, 0x51, 0x47, 0x2d, 0x43, 0xfe, 0xd1, 0x71, 0xaf, 0xc7, 0x0f, 0x3a, + 0xef, 0x0d, 0x46, 0xa3, 0xc1, 0xa1, 0x92, 0xc1, 0xa9, 0x1e, 0x0d, 0x8e, 0x94, 0xac, 0xfa, 0x0f, + 0x33, 0x00, 0xc9, 0x1e, 0xc2, 0x5d, 0x1a, 0x2b, 0xb3, 0x05, 0xe1, 0x76, 0x89, 0xce, 0xe4, 0x89, + 0x88, 0x1c, 0x7e, 0xa3, 0x6d, 0x31, 0xf5, 0xfc, 0x99, 0x11, 0x46, 0x87, 0x6a, 0x79, 0x0a, 0x25, + 0x96, 0x7d, 0xe2, 0x7a, 0xbe, 0x85, 0xcc, 0xc2, 0xb5, 0x78, 0x48, 0x3c, 0xaf, 0xd5, 0x04, 0xb0, + 0x87, 0x30, 0x14, 0x27, 0x96, 0x3b, 0x71, 0xbc, 0xc0, 0x32, 0x51, 0x57, 0x2a, 0x10, 0x47, 0x80, + 0x08, 0xb4, 0x77, 0x89, 0x4a, 0x7f, 0x68, 0xf9, 0x33, 0xdb, 0x35, 0x42, 0xcb, 0x14, 0x71, 0x39, + 0x09, 0xa2, 0xfe, 0x59, 0x0e, 0x20, 0xe1, 0xa3, 0xec, 0x16, 0x94, 0x23, 0x5b, 0x53, 0xc4, 0x12, + 0x4b, 0x21, 0xb7, 0x30, 0xd9, 0x2e, 0xdc, 0x10, 0x67, 0xc7, 0xc4, 0x21, 0xa6, 0x0b, 0xdd, 0x76, + 0xf5, 0xb1, 0x11, 0x0a, 0xf5, 0x9b, 0x09, 0x2c, 0xf7, 0xd8, 0x77, 0xdd, 0x3d, 0x23, 0x64, 0xbb, + 0xb0, 0x29, 0xe7, 0x09, 0x2f, 0xe7, 0x69, 0xa7, 0x12, 0x8f, 0xc6, 0x24, 0x19, 0x47, 0x97, 0x73, + 0xf6, 0x01, 0x5c, 0xf7, 0xad, 0xa9, 0x6f, 0x05, 0xa7, 0x7a, 0x18, 0xc8, 0xd5, 0xf0, 0xc0, 0xc0, + 0x96, 0x40, 0x8e, 0x82, 0xb8, 0x96, 0x0f, 0xe0, 0xba, 0xe0, 0xad, 0x4b, 0x0d, 0xe3, 0x47, 0xd6, + 0xb7, 0x38, 0x52, 0x6e, 0xd7, 0xab, 0x00, 0x42, 0xac, 0x44, 0xd7, 0x89, 0xca, 0x5a, 0x85, 0x8b, + 0x10, 0xd4, 0x03, 0xde, 0x07, 0x66, 0x07, 0xfa, 0x92, 0x39, 0x4d, 0xc6, 0x61, 0x59, 0x53, 0xec, + 0xe0, 0x28, 0x65, 0x4a, 0x5f, 0x65, 0xa9, 0x97, 0xaf, 0xb2, 0xd4, 0xb7, 0xa1, 0x40, 0x92, 0x87, + 0x0c, 0xc6, 0xb2, 0xc6, 0x13, 0x4c, 0x85, 0x3c, 0x2e, 0x32, 0xb2, 0x10, 0x1b, 0xbb, 0x8d, 0x07, + 0x74, 0xf7, 0x0a, 0x67, 0x06, 0xa1, 0x1a, 0xe1, 0xd4, 0x7f, 0x9a, 0x81, 0x46, 0x5a, 0x12, 0xf3, + 0x20, 0x76, 0x12, 0x9d, 0x2f, 0x24, 0x11, 0xf9, 0x57, 0xa0, 0x32, 0x3f, 0x13, 0xa1, 0x78, 0x31, + 0x45, 0xe5, 0xf9, 0x19, 0x0f, 0xc1, 0xa3, 0x0d, 0x32, 0x3f, 0xe3, 0x36, 0xcb, 0xea, 0x84, 0x14, + 0xe7, 0x67, 0x91, 0xa1, 0xb2, 0x10, 0x44, 0xf9, 0x55, 0xa2, 0x05, 0x27, 0x4a, 0xa9, 0xcd, 0x85, + 0x5f, 0xad, 0x36, 0xab, 0x3b, 0x50, 0x93, 0x15, 0x18, 0xa6, 0x40, 0xce, 0x36, 0x2f, 0x44, 0xcb, + 0xf1, 0x53, 0xfd, 0xbb, 0x19, 0x22, 0x79, 0x29, 0x67, 0x58, 0xaa, 0x09, 0xd9, 0x17, 0x68, 0xee, + 0x3b, 0x14, 0x8e, 0xd0, 0x29, 0x9a, 0x37, 0xf1, 0xa2, 0x0b, 0x2d, 0x70, 0x6a, 0x04, 0xad, 0x45, + 0xe8, 0xb5, 0x3d, 0x07, 0x07, 0xce, 0x0e, 0xa2, 0xe3, 0x51, 0xf9, 0xc8, 0xec, 0x15, 0xe7, 0x9f, + 0x3a, 0xb0, 0xb5, 0x22, 0xa8, 0xb1, 0x1b, 0xa1, 0x71, 0x12, 0x5d, 0xb3, 0x09, 0x8d, 0x93, 0xd8, + 0xe3, 0x9f, 0xbd, 0x22, 0x06, 0x71, 0x07, 0x8a, 0xdd, 0x58, 0x98, 0xc7, 0xb7, 0x4a, 0x72, 0xe2, + 0x26, 0x89, 0x07, 0x95, 0x36, 0xdd, 0x4a, 0x39, 0x34, 0xe6, 0xec, 0x3e, 0xe4, 0x66, 0xc6, 0x5c, + 0x84, 0x1b, 0x9a, 0x71, 0xb8, 0x81, 0x63, 0x1f, 0x1c, 0x1a, 0x73, 0xee, 0xa3, 0x44, 0xa2, 0xdb, + 0x9f, 0x42, 0x39, 0x02, 0xbc, 0x54, 0xa4, 0xf0, 0xbf, 0x67, 0xa1, 0xb2, 0x2f, 0xab, 0xfd, 0x13, + 0xc3, 0xd5, 0x43, 0x7f, 0xe1, 0xa2, 0x76, 0x26, 0x4c, 0xff, 0xea, 0xc4, 0x70, 0x47, 0x02, 0x14, + 0xcd, 0x4a, 0xf6, 0x57, 0xcc, 0xca, 0x1d, 0x40, 0xfb, 0x44, 0xb7, 0x4d, 0xf2, 0x2c, 0xf1, 0x5b, + 0x35, 0x65, 0xdf, 0x3b, 0xef, 0x9a, 0x5d, 0xf3, 0x62, 0xbd, 0x0b, 0x2e, 0xff, 0xeb, 0xbb, 0xe0, + 0x0a, 0x6b, 0x5d, 0x70, 0xff, 0xb7, 0x38, 0xcd, 0xd8, 0xdb, 0x09, 0xe3, 0x3b, 0xb3, 0x2e, 0x89, + 0xac, 0xc2, 0xe3, 0x9a, 0xf3, 0xf8, 0xa8, 0x42, 0xd7, 0xbc, 0x50, 0xff, 0x3c, 0x0b, 0x85, 0x9f, + 0x2f, 0x2c, 0xff, 0x92, 0x7d, 0x0a, 0x95, 0x20, 0x9c, 0x85, 0xb2, 0x03, 0xe4, 0x16, 0x1f, 0x57, + 0xc2, 0x93, 0xff, 0xc2, 0x9a, 0x59, 0x6e, 0xc8, 0xbd, 0x09, 0x48, 0x4b, 0xfb, 0x6f, 0x1b, 0x0a, + 0x68, 0x49, 0x04, 0xc2, 0x07, 0xce, 0x13, 0x68, 0x12, 0xbb, 0x9e, 0x69, 0x05, 0xc2, 0xdd, 0x0d, + 0x89, 0x47, 0x42, 0xe3, 0x08, 0x34, 0x89, 0x29, 0xd4, 0x1b, 0x1d, 0xf9, 0x48, 0x99, 0xc4, 0x1c, + 0x43, 0x11, 0x5d, 0xcb, 0x40, 0x5b, 0x2f, 0x3a, 0x48, 0x1a, 0xa7, 0x91, 0xf1, 0x38, 0x9e, 0x61, + 0x8e, 0x8c, 0x93, 0xe8, 0xd0, 0xb4, 0x48, 0xaa, 0x26, 0xd4, 0x53, 0x8d, 0x4d, 0x6b, 0x7d, 0x28, + 0x70, 0x3b, 0x3d, 0xd4, 0x1e, 0x32, 0x92, 0xfa, 0x91, 0x95, 0x55, 0x8e, 0x9c, 0xa4, 0x8b, 0xd0, + 0x6d, 0x8c, 0xe3, 0xa3, 0xfd, 0xd6, 0xa8, 0xa3, 0x14, 0x48, 0xb7, 0xe8, 0x68, 0x8f, 0x3b, 0x4a, + 0x51, 0xfd, 0x7b, 0x59, 0xd8, 0x1a, 0xf9, 0x86, 0x1b, 0x18, 0xfc, 0x64, 0x91, 0x1b, 0xfa, 0x9e, + 0xc3, 0xbe, 0x84, 0x72, 0x38, 0x71, 0xe4, 0x41, 0x7c, 0x4d, 0x70, 0x82, 0x65, 0xd2, 0x07, 0xa3, + 0x89, 0x43, 0x43, 0x59, 0x0a, 0xf9, 0x07, 0xfb, 0x11, 0x14, 0xc6, 0xd6, 0x89, 0xed, 0x8a, 0x55, + 0x7d, 0x7d, 0x39, 0xe3, 0x1e, 0x22, 0x0f, 0x36, 0x34, 0x4e, 0xc5, 0x3e, 0x80, 0xe2, 0xc4, 0x9b, + 0xcd, 0xec, 0x50, 0x70, 0xd0, 0x1b, 0xab, 0x15, 0x21, 0xf6, 0x60, 0x43, 0x13, 0x74, 0xec, 0x53, + 0x28, 0xfb, 0x9e, 0xe3, 0x8c, 0x8d, 0xc9, 0x99, 0x60, 0xa8, 0xcd, 0xe5, 0x3c, 0x9a, 0xc0, 0x1f, + 0x6c, 0x68, 0x31, 0xad, 0xfa, 0x00, 0x4a, 0xa2, 0xb1, 0x38, 0x00, 0x7b, 0x9d, 0xc7, 0x5d, 0x31, + 0x90, 0xed, 0xc1, 0xe1, 0x61, 0x77, 0xc4, 0x4f, 0x5b, 0x6a, 0x83, 0x5e, 0x6f, 0xaf, 0xd5, 0x7e, + 0xa2, 0x64, 0xf7, 0xca, 0x50, 0x34, 0x28, 0xe0, 0xaf, 0xfe, 0xff, 0x19, 0xd8, 0x5c, 0xea, 0x00, + 0xfb, 0x1c, 0xf2, 0x33, 0x14, 0x34, 0x7c, 0x78, 0xde, 0x5c, 0xdb, 0x4b, 0x29, 0xcd, 0xc5, 0x0f, + 0xe6, 0x50, 0xbf, 0x80, 0x46, 0x1a, 0x2e, 0xdd, 0xad, 0xa9, 0x43, 0x45, 0xeb, 0xb4, 0xf6, 0xf5, + 0x41, 0xbf, 0xf7, 0x0d, 0xd7, 0xe5, 0x29, 0xf9, 0x4c, 0xeb, 0x8e, 0x3a, 0x4a, 0x56, 0xfd, 0x7d, + 0x50, 0x96, 0x07, 0x86, 0x3d, 0x86, 0xcd, 0x89, 0x37, 0x9b, 0x3b, 0x16, 0xdf, 0x7d, 0xc9, 0x94, + 0xdd, 0x5d, 0x33, 0x92, 0x82, 0x8c, 0x66, 0xac, 0x31, 0x49, 0xa5, 0xd5, 0xff, 0x0f, 0xd8, 0xea, + 0x08, 0xfe, 0xf6, 0x8a, 0xff, 0xeb, 0x0c, 0xe4, 0x8f, 0x1c, 0x03, 0x85, 0x66, 0x81, 0xee, 0x9f, + 0x08, 0x61, 0x54, 0x95, 0xb6, 0x27, 0x2e, 0x0b, 0xc2, 0xb1, 0xf7, 0x20, 0x17, 0x4e, 0xa2, 0x93, + 0xa5, 0x37, 0xaf, 0x58, 0x7c, 0x07, 0x1b, 0x1a, 0x52, 0xb1, 0x7b, 0x90, 0x33, 0xcd, 0x28, 0xd0, + 0x26, 0xec, 0xa9, 0x7d, 0x23, 0x34, 0xf6, 0xad, 0xa9, 0xed, 0xda, 0xe2, 0xbe, 0x0c, 0x92, 0xb0, + 0xb7, 0x20, 0x67, 0x4e, 0x9c, 0x74, 0x64, 0x13, 0x29, 0xa5, 0x02, 0xcd, 0x89, 0xc3, 0x54, 0xa8, + 0x87, 0xfe, 0xa5, 0xee, 0x2f, 0x5c, 0xf2, 0x6c, 0x07, 0x42, 0x05, 0xaa, 0xa2, 0x84, 0x58, 0x90, + 0x1b, 0x98, 0x3b, 0xe0, 0x03, 0x7d, 0xee, 0x5b, 0x73, 0xc3, 0x8f, 0x95, 0x1f, 0x3b, 0x38, 0xe2, + 0x80, 0xbd, 0x22, 0xd0, 0x65, 0x71, 0xf5, 0x7d, 0xba, 0x9d, 0x81, 0xca, 0x82, 0x1a, 0x7d, 0xad, + 0x39, 0x00, 0x28, 0x30, 0xea, 0xff, 0xc8, 0x42, 0x55, 0x6a, 0x0f, 0xfb, 0x18, 0xca, 0x66, 0x7a, + 0x23, 0xde, 0x5a, 0x69, 0xf4, 0x83, 0xfd, 0x68, 0x0b, 0x9a, 0x62, 0x79, 0x7f, 0x01, 0xf5, 0xc0, + 0x0a, 0xf5, 0xe7, 0x86, 0x6f, 0x23, 0xc3, 0x0d, 0xc4, 0x30, 0x0a, 0x0f, 0xc6, 0xd0, 0x0a, 0x9f, + 0x46, 0x98, 0x83, 0x0d, 0xad, 0x16, 0x48, 0x69, 0xf6, 0x2e, 0x94, 0xa2, 0x2e, 0xe5, 0x52, 0xb7, + 0xe6, 0x38, 0xf0, 0x60, 0x43, 0x8b, 0xf0, 0x48, 0x6a, 0x5d, 0x58, 0x93, 0x45, 0x18, 0xe9, 0x35, + 0xf5, 0xa8, 0x43, 0x04, 0xa4, 0x9b, 0xb8, 0xfc, 0x93, 0xed, 0x02, 0x98, 0x96, 0xe1, 0x38, 0x1e, + 0x09, 0xc2, 0x82, 0x6c, 0x2e, 0xef, 0xc7, 0x70, 0x7e, 0xf3, 0x37, 0x4a, 0xa9, 0x27, 0x50, 0x12, + 0x1d, 0x43, 0xdb, 0x65, 0xd8, 0x19, 0xe9, 0x4f, 0x5b, 0x5a, 0x17, 0x2d, 0x5b, 0x11, 0xc3, 0x7d, + 0xac, 0xb5, 0xfa, 0x82, 0xfd, 0x69, 0x9d, 0xa7, 0x83, 0x27, 0x1d, 0x25, 0xcb, 0x63, 0xf1, 0xfd, + 0x6f, 0x94, 0x1c, 0x37, 0x56, 0x3b, 0x47, 0x2d, 0x0d, 0x99, 0x5f, 0x15, 0x4a, 0x9d, 0xaf, 0x3b, + 0xed, 0x63, 0xe2, 0x7e, 0x0d, 0x80, 0xfd, 0x4e, 0xab, 0xd7, 0x1b, 0xa0, 0xf5, 0xa4, 0x14, 0xf7, + 0x2a, 0xa8, 0xfb, 0xd1, 0x48, 0xaa, 0xff, 0xac, 0x0e, 0x8d, 0xf4, 0xc2, 0x61, 0x9f, 0x41, 0xd9, + 0x34, 0x53, 0x33, 0x70, 0x67, 0xdd, 0x02, 0x7b, 0xb0, 0x6f, 0x46, 0x93, 0xc0, 0x3f, 0xd8, 0xeb, + 0xd1, 0x32, 0xcf, 0xae, 0x2c, 0xf3, 0x68, 0x91, 0xff, 0x14, 0x36, 0xc5, 0x0d, 0x09, 0x34, 0x61, + 0xc6, 0x46, 0x60, 0xa5, 0xd7, 0x70, 0x9b, 0x90, 0xfb, 0x02, 0x77, 0xb0, 0xa1, 0x35, 0x26, 0x29, + 0x08, 0xfb, 0x31, 0x34, 0x0c, 0xd2, 0xd8, 0xe3, 0xfc, 0x79, 0xf9, 0x78, 0x54, 0x0b, 0x71, 0x52, + 0xf6, 0xba, 0x21, 0x03, 0x70, 0x99, 0x98, 0xbe, 0x37, 0x4f, 0x32, 0x17, 0xe4, 0x65, 0xb2, 0xef, + 0x7b, 0x73, 0x29, 0x6f, 0xcd, 0x94, 0xd2, 0xec, 0x53, 0xa8, 0x89, 0x96, 0x27, 0xba, 0x7f, 0xbc, + 0xa1, 0x78, 0xb3, 0x49, 0xd6, 0x1f, 0x6c, 0x68, 0xd5, 0x49, 0x92, 0x64, 0x1f, 0x41, 0x95, 0x37, + 0x38, 0xb1, 0x05, 0xe2, 0x95, 0x40, 0xad, 0x8d, 0x72, 0x81, 0x11, 0xa7, 0xd8, 0x07, 0x00, 0xd4, + 0x4e, 0x9e, 0xa7, 0x9c, 0xf2, 0xb7, 0xfa, 0xde, 0x3c, 0xca, 0x52, 0x31, 0xa3, 0x84, 0xd4, 0x3c, + 0x7e, 0x52, 0xae, 0xb2, 0xda, 0x3c, 0x3a, 0x0c, 0x96, 0x34, 0x8f, 0x9f, 0x8c, 0x8b, 0x9b, 0xc7, + 0xb3, 0xc1, 0x4a, 0xf3, 0xa2, 0x5c, 0xbc, 0x79, 0x3c, 0x53, 0xd4, 0x3c, 0x9e, 0xa7, 0xba, 0xdc, + 0xbc, 0x28, 0x0b, 0x35, 0x8f, 0xe7, 0xf8, 0x31, 0x34, 0x22, 0xad, 0x50, 0x74, 0xaa, 0x96, 0x3a, + 0xcc, 0x29, 0x70, 0x51, 0xc7, 0xea, 0xa1, 0x0c, 0xc0, 0xdc, 0xc1, 0xa9, 0x77, 0x2e, 0x6d, 0xef, + 0xba, 0x9c, 0x7b, 0x78, 0xea, 0x9d, 0xcb, 0xfb, 0xbb, 0x1e, 0xc8, 0x00, 0x6c, 0x2d, 0xef, 0x22, + 0x9d, 0x85, 0x6d, 0xc8, 0xad, 0xa5, 0x1e, 0x3e, 0xb5, 0xad, 0x73, 0x6c, 0xad, 0x11, 0x25, 0x70, + 0x50, 0x12, 0x2b, 0x2f, 0x10, 0xd1, 0x81, 0x94, 0xef, 0x50, 0xd4, 0x04, 0xb1, 0xe9, 0x17, 0xe0, + 0xda, 0x5a, 0xb8, 0x72, 0x36, 0x45, 0x5e, 0x5b, 0xc7, 0x6e, 0x2a, 0x63, 0x8d, 0x93, 0x8a, 0xac, + 0xc9, 0xae, 0x08, 0xac, 0xef, 0x16, 0x96, 0x3b, 0xb1, 0xc4, 0x53, 0x06, 0xa9, 0x5d, 0x31, 0x14, + 0xb8, 0x64, 0x57, 0x44, 0x90, 0x78, 0x5d, 0xc7, 0xd9, 0xd9, 0xf2, 0xba, 0x96, 0x32, 0xd3, 0xba, + 0x8e, 0xb3, 0xc6, 0x1b, 0x2a, 0xce, 0x7b, 0x6d, 0x65, 0x43, 0x49, 0x99, 0xf9, 0x86, 0x8a, 0x00, + 0xea, 0x5f, 0xe7, 0xa1, 0x24, 0xf8, 0x00, 0xbb, 0x06, 0x9b, 0x6d, 0xad, 0xd3, 0x1a, 0x75, 0xf4, + 0xfd, 0xd6, 0xa8, 0xb5, 0xd7, 0x1a, 0xa2, 0x78, 0x67, 0xd0, 0x68, 0xf5, 0x46, 0x1d, 0x2d, 0x81, + 0x65, 0x90, 0xb9, 0xed, 0x6b, 0x83, 0xa3, 0x04, 0x94, 0x65, 0x0a, 0xd4, 0x44, 0x5e, 0x7e, 0xb3, + 0x36, 0xc7, 0x36, 0xa1, 0xca, 0x33, 0x72, 0x00, 0x9d, 0x2c, 0xa2, 0x5c, 0x3c, 0x5d, 0x90, 0xb2, + 0x74, 0xfb, 0xfb, 0x9d, 0xaf, 0x95, 0x62, 0x92, 0x85, 0x03, 0x4a, 0x71, 0x16, 0x9e, 0x2e, 0x63, + 0x63, 0x46, 0xda, 0x71, 0xbf, 0x9d, 0xd4, 0x53, 0xa1, 0x93, 0x26, 0xbc, 0x98, 0xa7, 0xdd, 0xce, + 0x33, 0x05, 0x30, 0x13, 0x2f, 0x85, 0xd2, 0x55, 0x54, 0x50, 0xa8, 0x10, 0x4a, 0xd6, 0xd8, 0x4d, + 0xb8, 0x36, 0x3c, 0x18, 0x3c, 0xd3, 0x79, 0xa6, 0xb8, 0x0b, 0x75, 0xb6, 0x0d, 0x8a, 0x84, 0xe0, + 0xc5, 0x37, 0xb0, 0x4a, 0x82, 0x46, 0x84, 0x43, 0x65, 0x93, 0xdc, 0x8c, 0x08, 0x1b, 0x71, 0xd6, + 0xae, 0x60, 0x57, 0x78, 0xd6, 0x41, 0xef, 0xf8, 0xb0, 0x3f, 0x54, 0xb6, 0xb0, 0x11, 0x04, 0xe1, + 0x2d, 0x67, 0x71, 0x31, 0x89, 0x40, 0xb8, 0x46, 0x32, 0x02, 0x61, 0xcf, 0x5a, 0x5a, 0xbf, 0xdb, + 0x7f, 0x3c, 0x54, 0xb6, 0xe3, 0x92, 0x3b, 0x9a, 0x36, 0xd0, 0x86, 0xca, 0xf5, 0x18, 0x30, 0x1c, + 0xb5, 0x46, 0xc7, 0x43, 0xe5, 0x46, 0xdc, 0xca, 0x23, 0x6d, 0xd0, 0xee, 0x0c, 0x87, 0xbd, 0xee, + 0x70, 0xa4, 0xdc, 0x64, 0xd7, 0x61, 0x2b, 0x69, 0x51, 0x44, 0xdc, 0x94, 0x1a, 0xaa, 0x3d, 0xee, + 0x8c, 0x94, 0x5b, 0x71, 0x33, 0xda, 0x83, 0x5e, 0xaf, 0x45, 0xfe, 0xcf, 0xdb, 0x48, 0x44, 0x5e, + 0x3e, 0xd1, 0x9b, 0x57, 0xb0, 0x5d, 0xc7, 0x7d, 0x19, 0x74, 0x47, 0x5a, 0x1a, 0xc3, 0xce, 0xcf, + 0x8f, 0x3b, 0xfd, 0x76, 0x47, 0x79, 0x35, 0x59, 0x1a, 0x31, 0xec, 0x6e, 0xbc, 0x34, 0x62, 0xd0, + 0x6b, 0x71, 0x9d, 0x11, 0x68, 0xa8, 0xec, 0xec, 0xd5, 0xe8, 0x15, 0x0d, 0x21, 0x88, 0xd4, 0xaf, + 0x80, 0xc9, 0xb7, 0xd4, 0xc5, 0x65, 0x3c, 0x06, 0xf9, 0xa9, 0xef, 0xcd, 0xa2, 0x33, 0xab, 0xf8, + 0xcd, 0x76, 0xa0, 0x3a, 0x5f, 0x8c, 0x29, 0x76, 0x90, 0x9c, 0x98, 0x93, 0x41, 0xea, 0x3f, 0xc8, + 0x40, 0x23, 0x2d, 0x84, 0x50, 0x35, 0xb2, 0xa7, 0xba, 0xeb, 0x85, 0xfc, 0xc2, 0x58, 0x10, 0x99, + 0xb5, 0xf6, 0xb4, 0xef, 0x85, 0x74, 0x63, 0x8c, 0x0c, 0x9e, 0x58, 0xa6, 0xf0, 0x52, 0xe3, 0x34, + 0xeb, 0xc2, 0xb5, 0xd4, 0x25, 0xfe, 0xd4, 0x75, 0xbd, 0x66, 0x7c, 0x43, 0x79, 0xa9, 0xfd, 0x1a, + 0x0b, 0x56, 0xfb, 0xa4, 0x40, 0x2e, 0xf8, 0xce, 0x11, 0xb7, 0x0e, 0xf0, 0x53, 0x3d, 0x80, 0x7a, + 0x4a, 0xe6, 0x91, 0x13, 0x62, 0x9a, 0x6e, 0x69, 0xd9, 0x9e, 0xbe, 0xb8, 0x99, 0xea, 0x29, 0xd4, + 0x64, 0x01, 0xf8, 0x83, 0x0b, 0xa2, 0x13, 0x2a, 0xe2, 0x5b, 0xb7, 0xcd, 0xe8, 0x96, 0x5a, 0x04, + 0xea, 0x9a, 0xea, 0x6b, 0x50, 0x79, 0x74, 0x16, 0x5d, 0x38, 0x94, 0xef, 0x3c, 0x56, 0xc4, 0x31, + 0xc8, 0xff, 0x99, 0x85, 0xaa, 0x24, 0x52, 0x7f, 0xad, 0x19, 0xb8, 0x03, 0x95, 0xe4, 0x20, 0xb6, + 0x38, 0x98, 0x16, 0x03, 0x52, 0xed, 0xcd, 0x2d, 0xb5, 0xb7, 0x09, 0x25, 0x11, 0x67, 0x13, 0x7e, + 0x84, 0x28, 0xf9, 0x52, 0x2e, 0x2a, 0xf6, 0x21, 0xd4, 0xa4, 0x0b, 0x88, 0xd1, 0xad, 0x8e, 0x95, + 0xc0, 0x6e, 0x72, 0x19, 0x31, 0x60, 0xd7, 0xa1, 0x38, 0x3d, 0xd3, 0xcd, 0x71, 0xe4, 0x36, 0x28, + 0x4c, 0xcf, 0xf6, 0xc7, 0xe4, 0x80, 0x9b, 0xc6, 0x52, 0xa4, 0xcc, 0xcd, 0xe7, 0x69, 0x24, 0x2b, + 0xee, 0x41, 0x69, 0x7a, 0xc6, 0x6f, 0xf7, 0xf1, 0xb8, 0xbd, 0x10, 0x65, 0xf1, 0x88, 0x6a, 0xc5, + 0xe9, 0x19, 0xdd, 0xf4, 0xfb, 0x02, 0x94, 0x25, 0x1f, 0x45, 0x20, 0x02, 0xf8, 0xcb, 0x8d, 0xda, + 0x4c, 0xbb, 0x2b, 0x02, 0xf5, 0x9f, 0x67, 0xa0, 0x91, 0x28, 0x27, 0xb8, 0x2c, 0xd8, 0x7d, 0xf9, + 0x19, 0x91, 0xe6, 0xb2, 0xfe, 0x82, 0x24, 0x0f, 0x46, 0x97, 0x73, 0x7e, 0x31, 0x7a, 0xdd, 0xfd, + 0x91, 0x75, 0xf7, 0x33, 0x73, 0xeb, 0xee, 0x67, 0xaa, 0x8f, 0x21, 0x37, 0xba, 0x9c, 0x73, 0x33, + 0x15, 0xf9, 0x21, 0xd7, 0x7d, 0x39, 0x27, 0x24, 0xaf, 0xf9, 0x93, 0xce, 0x37, 0xfc, 0xe8, 0xe9, + 0x91, 0xd6, 0x3d, 0x6c, 0x69, 0xdf, 0x50, 0x3c, 0x80, 0x24, 0xc6, 0xa3, 0x81, 0xd6, 0xe9, 0x3e, + 0xee, 0x13, 0x20, 0x4f, 0x46, 0x6c, 0xd2, 0xc4, 0x96, 0x69, 0x3e, 0x3a, 0x93, 0x9f, 0xa2, 0xc8, + 0xa4, 0x9e, 0xa2, 0x88, 0x6f, 0xa9, 0xc8, 0x97, 0x51, 0xc3, 0xf8, 0xd2, 0x68, 0xb4, 0x4c, 0x73, + 0xc9, 0x32, 0x65, 0xef, 0x40, 0x7e, 0x7a, 0x66, 0x5d, 0xa6, 0x35, 0xd0, 0xf4, 0xed, 0x0f, 0x22, + 0x50, 0x7f, 0x99, 0x01, 0x96, 0x6a, 0x08, 0x57, 0x8a, 0x7e, 0x68, 0x5b, 0x3e, 0x83, 0xa6, 0xb8, + 0x9a, 0xcc, 0xa9, 0x24, 0x87, 0x91, 0x18, 0xd2, 0xeb, 0x1c, 0x4f, 0xd5, 0x25, 0x57, 0x5c, 0xd8, + 0x43, 0xe0, 0xd7, 0x6b, 0xbb, 0xee, 0xd4, 0x4b, 0x5b, 0x84, 0xd2, 0x6e, 0xd3, 0x12, 0x1a, 0x76, + 0x1f, 0xb6, 0xe4, 0x49, 0xe3, 0x17, 0x66, 0xb9, 0x07, 0x6d, 0x33, 0x99, 0x35, 0xda, 0x81, 0xea, + 0x1f, 0x65, 0xe0, 0x5a, 0x7a, 0x41, 0xfc, 0x66, 0xbd, 0x4c, 0xdf, 0x0e, 0xce, 0x2d, 0xdf, 0x0e, + 0x5e, 0xb7, 0x9e, 0xf2, 0x6b, 0xd7, 0xd3, 0x1f, 0x66, 0x60, 0x5b, 0x1a, 0xfd, 0x44, 0x8d, 0xfd, + 0xdf, 0xd4, 0x32, 0xe9, 0x92, 0x70, 0x3e, 0x75, 0x49, 0x58, 0xfd, 0x18, 0xb6, 0x92, 0x86, 0xb4, + 0xc5, 0x9d, 0xb1, 0xd7, 0xa0, 0xea, 0x5a, 0xe7, 0x7a, 0x74, 0xa3, 0x8c, 0xb7, 0x04, 0x5c, 0xeb, + 0x5c, 0x10, 0xa8, 0x8f, 0xe4, 0xbd, 0x18, 0xbf, 0x18, 0xe3, 0x98, 0x72, 0xcb, 0x4b, 0x9e, 0x63, + 0x46, 0x28, 0x2c, 0x4d, 0x6a, 0x78, 0xc9, 0xb5, 0xce, 0x69, 0x1c, 0x5c, 0xa8, 0x52, 0x39, 0x2d, + 0xd3, 0x6c, 0x7b, 0xce, 0xda, 0x3b, 0x1d, 0xb7, 0xa0, 0x3c, 0xf7, 0x53, 0xdd, 0x46, 0xdb, 0x97, + 0x0a, 0xbe, 0x2b, 0xa2, 0x52, 0xab, 0x5e, 0x7f, 0x1e, 0xa1, 0x12, 0xc7, 0xe9, 0xf3, 0xc9, 0x8b, + 0x51, 0xbb, 0x50, 0xe3, 0xa2, 0xc9, 0xf7, 0xe6, 0x58, 0x61, 0xec, 0xb3, 0xcf, 0xdc, 0xab, 0x93, + 0xcf, 0x9e, 0xc4, 0x99, 0xf5, 0x9d, 0xb8, 0x88, 0x87, 0x9f, 0xea, 0xdf, 0xac, 0x00, 0x24, 0x9d, + 0x4d, 0xb1, 0xed, 0xcc, 0x12, 0xdb, 0x7e, 0x29, 0xe7, 0xfd, 0xc7, 0xd0, 0x98, 0x78, 0xf3, 0x4b, + 0x3d, 0xc9, 0x91, 0x5b, 0x9b, 0xa3, 0x86, 0x54, 0x23, 0xe9, 0xc4, 0xf0, 0x8a, 0xff, 0x38, 0xbf, + 0xd6, 0x7f, 0xfc, 0x21, 0x94, 0xb8, 0xe7, 0x2c, 0x10, 0xc7, 0xbe, 0x6e, 0x2e, 0x73, 0xc8, 0x07, + 0xe2, 0x46, 0x74, 0x44, 0xc7, 0x3a, 0xa8, 0x78, 0x8b, 0xeb, 0xa0, 0xf2, 0x21, 0xb0, 0xbb, 0xab, + 0x39, 0x23, 0x32, 0x1e, 0xf5, 0x32, 0xe4, 0x24, 0x7b, 0x08, 0xdb, 0x91, 0x5d, 0x3a, 0x13, 0x06, + 0x23, 0x5d, 0xc3, 0xe2, 0x17, 0x04, 0xb7, 0x84, 0x29, 0x3a, 0xe3, 0x66, 0xe2, 0xf0, 0x3b, 0x87, + 0xfd, 0x08, 0xae, 0x89, 0xf3, 0x1a, 0x98, 0x01, 0x87, 0x93, 0xe8, 0xf9, 0xeb, 0x13, 0x8a, 0x38, + 0xd6, 0x37, 0x23, 0x3d, 0x00, 0xc9, 0xef, 0x81, 0x22, 0xdb, 0xbd, 0x44, 0xcb, 0x6f, 0xa0, 0x36, + 0x24, 0x33, 0x17, 0x29, 0xdf, 0x86, 0x4d, 0x51, 0x70, 0x5c, 0x28, 0xf0, 0xbb, 0x98, 0x1c, 0x1c, + 0x95, 0xf8, 0x35, 0x6c, 0x4f, 0x4e, 0x0d, 0xf7, 0xc4, 0xd2, 0xc3, 0xb1, 0xa3, 0xd3, 0xd3, 0x1d, + 0xfa, 0xcc, 0x98, 0x8b, 0x13, 0x63, 0xef, 0xac, 0x74, 0xbf, 0x4d, 0xc4, 0xa3, 0xb1, 0x43, 0x81, + 0xb8, 0x38, 0x6e, 0xb1, 0x35, 0x59, 0x86, 0xdf, 0xfe, 0x8b, 0x1c, 0x14, 0xc5, 0x0d, 0xf3, 0xfb, + 0x90, 0x47, 0x33, 0x47, 0x78, 0xdc, 0xb6, 0xd7, 0xc9, 0x2b, 0x7a, 0xe4, 0x0e, 0x45, 0xdb, 0x03, + 0x28, 0x1a, 0xa6, 0xa9, 0x4f, 0xcf, 0xd2, 0x0e, 0xdc, 0x25, 0xd1, 0x71, 0xb0, 0xa1, 0x15, 0x0c, + 0x92, 0x21, 0x9f, 0x41, 0x05, 0xe9, 0xb9, 0xf5, 0x9b, 0x52, 0xe3, 0x56, 0x99, 0xfc, 0xc1, 0x86, + 0x56, 0x36, 0x22, 0x86, 0xff, 0x93, 0xb4, 0xb1, 0xcd, 0x39, 0xf0, 0xed, 0x95, 0xac, 0x57, 0x99, + 0xdd, 0xbf, 0x0b, 0xdc, 0xfa, 0x8a, 0x79, 0x45, 0x41, 0xf6, 0x15, 0xae, 0x70, 0x16, 0x34, 0xf5, + 0x0c, 0x1e, 0xc0, 0xe4, 0x9c, 0xe6, 0x93, 0xc8, 0x10, 0x8e, 0x5f, 0xa9, 0x5a, 0x33, 0x32, 0xb8, + 0xd9, 0x63, 0x6b, 0x98, 0x76, 0xfe, 0xfb, 0x50, 0xc2, 0xee, 0x4e, 0x3c, 0x47, 0x78, 0x2f, 0xb6, + 0xa4, 0x3c, 0x9c, 0x99, 0x1c, 0x6c, 0x68, 0x38, 0x84, 0xb8, 0xcb, 0x1f, 0x42, 0x99, 0x4c, 0x51, + 0x24, 0x2f, 0xcb, 0x56, 0xa8, 0xcc, 0x0b, 0xe8, 0x11, 0x40, 0xfe, 0x99, 0x38, 0x9d, 0x6f, 0x6b, + 0x70, 0x63, 0xfd, 0x5c, 0xcb, 0x21, 0xa9, 0x3c, 0x0f, 0x49, 0xa9, 0xe9, 0xe3, 0xf1, 0xe9, 0x7b, + 0xa7, 0x52, 0x80, 0xea, 0x67, 0xa8, 0x1f, 0xcb, 0xfb, 0xa5, 0x0a, 0xa5, 0xe8, 0x35, 0x01, 0x0a, + 0xfc, 0xb7, 0x07, 0x47, 0xdf, 0x28, 0x19, 0x04, 0x77, 0xfb, 0xc3, 0x51, 0xab, 0x2f, 0x42, 0x0a, + 0xdd, 0xbe, 0x08, 0x29, 0xa8, 0x7f, 0x9d, 0x85, 0x4a, 0xec, 0x74, 0xf9, 0xe1, 0x5a, 0x71, 0xfc, + 0x06, 0x65, 0x4e, 0x7e, 0x83, 0x72, 0x49, 0xc0, 0xf2, 0x18, 0x52, 0x9e, 0x74, 0x8c, 0xcd, 0xb4, + 0x18, 0x0b, 0x56, 0x8f, 0xb0, 0x15, 0x7e, 0xcd, 0x23, 0x6c, 0x72, 0x6c, 0xbe, 0x98, 0x8e, 0xcd, + 0x2f, 0xbd, 0x28, 0x51, 0xa2, 0x78, 0x97, 0xfc, 0xa2, 0xc4, 0x95, 0x81, 0xae, 0xf2, 0xd5, 0x81, + 0x2e, 0x7a, 0x2e, 0xf3, 0xa9, 0x6d, 0x9d, 0x8b, 0x40, 0xb5, 0x48, 0xa5, 0x39, 0x36, 0xbc, 0x20, + 0xe2, 0xfb, 0x1d, 0x54, 0x62, 0xef, 0xcc, 0x0f, 0x1f, 0xf5, 0x97, 0x39, 0x5a, 0xaf, 0xfe, 0x41, + 0x64, 0xfa, 0xc5, 0xce, 0x91, 0xdf, 0xd4, 0xf4, 0x4b, 0x55, 0x9f, 0x7b, 0x41, 0xf5, 0x17, 0xdc, + 0x00, 0x8b, 0x2b, 0xff, 0x2d, 0x2f, 0x35, 0x79, 0x15, 0xe4, 0x53, 0xab, 0x40, 0x5d, 0x08, 0x23, + 0xf2, 0x37, 0xaf, 0xfa, 0xa5, 0x3a, 0xfc, 0xdf, 0x32, 0x91, 0x99, 0x17, 0xdf, 0xd2, 0xbd, 0x52, + 0xda, 0xc7, 0x7d, 0xca, 0xca, 0x7d, 0x7a, 0x99, 0xea, 0x7e, 0xa5, 0xda, 0x9c, 0xff, 0x55, 0x6a, + 0xf3, 0x3b, 0x50, 0xe0, 0x0c, 0xbb, 0x70, 0x95, 0xca, 0xcc, 0xf1, 0x2f, 0x7c, 0x59, 0x46, 0x55, + 0x85, 0x76, 0xc3, 0xfb, 0xbb, 0x1d, 0x95, 0x1b, 0xbd, 0x8a, 0x83, 0x09, 0xb4, 0x5a, 0x2a, 0x89, + 0xf6, 0xfc, 0xf2, 0x63, 0xf2, 0x5b, 0xd3, 0x9b, 0xff, 0x28, 0x0b, 0xf5, 0x94, 0x63, 0xf6, 0x07, + 0x34, 0x66, 0x2d, 0x7f, 0xcb, 0xad, 0xe7, 0x6f, 0x57, 0xb2, 0x9a, 0xfc, 0xd5, 0xac, 0xe6, 0xff, + 0x04, 0x4f, 0x54, 0xff, 0x56, 0x26, 0x7e, 0x33, 0x86, 0x17, 0xb6, 0x4e, 0x4f, 0xcc, 0xac, 0xd5, + 0x13, 0xef, 0xc6, 0x0f, 0x25, 0x76, 0xf7, 0x79, 0xe4, 0xbd, 0xae, 0x49, 0x10, 0xf6, 0x05, 0xdc, + 0xe2, 0x71, 0x31, 0xae, 0x22, 0xe8, 0xde, 0x54, 0x8f, 0x9f, 0x51, 0x14, 0x47, 0x21, 0x6e, 0x70, + 0x02, 0xfe, 0xb2, 0xd0, 0xb4, 0x15, 0x61, 0xd5, 0x2e, 0xd4, 0x53, 0x8e, 0x70, 0xe9, 0xed, 0xd5, + 0x8c, 0xfc, 0xf6, 0x2a, 0xdb, 0x81, 0xc2, 0xf9, 0xa9, 0xe5, 0x5b, 0x6b, 0xee, 0x50, 0x72, 0x84, + 0xfa, 0x63, 0xa8, 0xc9, 0x21, 0x33, 0xf6, 0x3e, 0x14, 0xec, 0xd0, 0x9a, 0x45, 0x57, 0x57, 0x6f, + 0xac, 0x46, 0xd5, 0xe8, 0x9e, 0x06, 0x27, 0x52, 0xff, 0x24, 0x03, 0xca, 0x32, 0x4e, 0x7a, 0x20, + 0x36, 0x73, 0xc5, 0x03, 0xb1, 0xd9, 0x54, 0x23, 0xd7, 0x3c, 0xf2, 0x9a, 0x5c, 0x89, 0xcb, 0x5f, + 0x71, 0x25, 0x8e, 0xbd, 0x0d, 0x65, 0xdf, 0xa2, 0x47, 0x39, 0xcd, 0xf4, 0xa3, 0x6d, 0xfc, 0x55, + 0x8d, 0x08, 0xa7, 0xfe, 0x8d, 0x0c, 0x94, 0x44, 0x7c, 0x6f, 0xad, 0x1d, 0xf4, 0x2e, 0x94, 0xf8, + 0x03, 0x9d, 0xd1, 0xbd, 0x94, 0x95, 0x93, 0x2a, 0x11, 0x1e, 0xed, 0x22, 0x44, 0xa5, 0xed, 0xa2, + 0x23, 0xc7, 0x70, 0x35, 0x82, 0xe3, 0x6a, 0xa2, 0x43, 0x11, 0xa4, 0xe2, 0x07, 0xe2, 0xd2, 0x08, + 0x10, 0x08, 0xf5, 0x91, 0x40, 0xfd, 0x09, 0x94, 0x44, 0xfc, 0x70, 0x6d, 0x53, 0x5e, 0xf4, 0x64, + 0xe5, 0x0e, 0x40, 0x12, 0x50, 0x5c, 0x57, 0x82, 0xea, 0x88, 0xdb, 0xfc, 0x3d, 0x6f, 0x72, 0x46, + 0x56, 0xfd, 0x43, 0x28, 0x3b, 0xd1, 0x63, 0x07, 0x99, 0xab, 0x1f, 0x3b, 0x88, 0x89, 0xd8, 0x7d, + 0x88, 0xb9, 0xe8, 0x8b, 0x2c, 0x2d, 0xb5, 0x15, 0x1d, 0x0b, 0xa4, 0x95, 0xf3, 0x91, 0xb0, 0xa4, + 0x11, 0x14, 0x2d, 0x9f, 0xe5, 0xca, 0xe8, 0x94, 0xbf, 0x44, 0xa6, 0x36, 0xa0, 0x26, 0x87, 0x4b, + 0xd4, 0x3f, 0xc9, 0x83, 0x72, 0x68, 0x85, 0x06, 0xf2, 0x9a, 0xe1, 0xc4, 0x70, 0xa9, 0x13, 0xb7, + 0xa0, 0x1c, 0xbf, 0x63, 0x96, 0x89, 0x5e, 0x61, 0x71, 0xa2, 0x07, 0xbe, 0x3c, 0x9a, 0x28, 0xd9, + 0x90, 0x05, 0x0e, 0x22, 0x02, 0x7e, 0x50, 0x2b, 0xf5, 0x9c, 0x49, 0xd9, 0x0e, 0x0e, 0xf8, 0x83, + 0x26, 0x37, 0xf9, 0x6d, 0x0b, 0xc7, 0x9b, 0xd0, 0x3a, 0xab, 0xd1, 0xe5, 0x8a, 0x9e, 0x37, 0xc1, + 0x5c, 0x91, 0x25, 0x14, 0x88, 0x03, 0x93, 0x65, 0x61, 0x02, 0x91, 0xcf, 0x4e, 0x9c, 0xbc, 0x0f, + 0x03, 0x62, 0x28, 0x35, 0xad, 0xcc, 0x01, 0xa3, 0x20, 0xba, 0x83, 0x3e, 0x11, 0x0f, 0x8a, 0xe5, + 0xe8, 0x0e, 0x7a, 0xdb, 0xa5, 0x53, 0x93, 0xf4, 0x66, 0xdd, 0x44, 0x3c, 0xff, 0x97, 0xd3, 0x4a, + 0x98, 0x46, 0xd4, 0x1b, 0xfc, 0xc9, 0x35, 0xdf, 0x0a, 0x02, 0x7e, 0x15, 0x8d, 0xdf, 0x12, 0xab, + 0x45, 0xc0, 0xf8, 0xce, 0x9b, 0x78, 0xa4, 0x0e, 0x49, 0x40, 0xdc, 0x79, 0xe3, 0x4f, 0xd4, 0x21, + 0xc1, 0x2d, 0x28, 0x7f, 0xef, 0xb9, 0x96, 0xb0, 0xaf, 0xb0, 0x55, 0x25, 0x4c, 0x1f, 0x1a, 0x73, + 0xf5, 0x5f, 0x66, 0x60, 0x7b, 0x79, 0x54, 0x69, 0xb6, 0x6b, 0x50, 0x6e, 0x0f, 0x7a, 0x7a, 0xbf, + 0x75, 0xd8, 0x51, 0x36, 0xd8, 0x26, 0x54, 0x07, 0x7b, 0x5f, 0x75, 0xda, 0x23, 0x0e, 0xc8, 0xd0, + 0x41, 0xde, 0xa1, 0x7e, 0xd0, 0xdd, 0xdf, 0xef, 0xf4, 0xb9, 0xae, 0x3c, 0xd8, 0xfb, 0x4a, 0xef, + 0x0d, 0xda, 0xfc, 0x75, 0xae, 0x28, 0x8c, 0x33, 0x54, 0xf2, 0x14, 0x3a, 0xa1, 0xd3, 0x38, 0x98, + 0x2c, 0xf0, 0xc3, 0x26, 0xcf, 0x86, 0x7a, 0xbb, 0x3f, 0x52, 0x8a, 0x98, 0xea, 0x1f, 0xf7, 0x7a, + 0x94, 0x2a, 0xb1, 0x2d, 0xa8, 0xb7, 0x07, 0x87, 0x47, 0x5a, 0x67, 0x38, 0xd4, 0x87, 0xdd, 0xdf, + 0xeb, 0x28, 0x65, 0xaa, 0x59, 0xeb, 0x3e, 0xee, 0xf6, 0x39, 0xa0, 0xc2, 0x4a, 0x90, 0x3b, 0xec, + 0xf6, 0x15, 0xa0, 0x8f, 0xd6, 0xd7, 0x4a, 0x15, 0x3f, 0x86, 0xc7, 0x87, 0x4a, 0xed, 0xfe, 0xeb, + 0x50, 0x93, 0x5f, 0x6f, 0xa4, 0xf3, 0x25, 0x9e, 0x6b, 0xf1, 0x4b, 0xeb, 0xbd, 0xef, 0x3f, 0x56, + 0x32, 0xf7, 0xff, 0x40, 0x7a, 0x3a, 0x88, 0x68, 0x84, 0x27, 0x91, 0xce, 0x93, 0xf7, 0xba, 0xfd, + 0x4e, 0x4b, 0x23, 0xbf, 0x21, 0x5d, 0x6f, 0x3f, 0x68, 0x0d, 0x0f, 0xb8, 0x8f, 0x51, 0x60, 0x08, + 0x90, 0x4b, 0x2e, 0x52, 0xd3, 0xf9, 0x71, 0xfa, 0x8c, 0xa3, 0x36, 0x05, 0x3a, 0x47, 0xdc, 0x1d, + 0x62, 0xe7, 0x14, 0xa8, 0xe1, 0x57, 0x8c, 0x2b, 0xdd, 0x57, 0xa1, 0x2a, 0x3d, 0x18, 0x41, 0x75, + 0x18, 0xc1, 0xa9, 0xb8, 0x9b, 0x8d, 0x46, 0x8f, 0x92, 0xb9, 0xff, 0x09, 0xb2, 0x70, 0xe9, 0xb9, + 0x06, 0x7a, 0xf3, 0xd8, 0xf3, 0x67, 0x86, 0x23, 0xe8, 0xac, 0x45, 0x60, 0xf1, 0x29, 0xd0, 0x2c, + 0xf1, 0xb0, 0x83, 0x92, 0xbd, 0xff, 0x10, 0xae, 0xaf, 0x7d, 0x8b, 0x82, 0x8e, 0x4c, 0xd9, 0xb3, + 0xb9, 0x63, 0xf1, 0x53, 0x3f, 0x07, 0x97, 0x63, 0xdf, 0x36, 0x95, 0xcc, 0xfd, 0x9f, 0x41, 0xf3, + 0xaa, 0x43, 0x2c, 0x58, 0x4d, 0xfb, 0xa0, 0x45, 0x07, 0x85, 0x70, 0x86, 0x06, 0x3a, 0x4f, 0x65, + 0xf8, 0x39, 0xab, 0x5e, 0x87, 0xe2, 0x75, 0xf7, 0x7f, 0x91, 0x91, 0x98, 0x4a, 0x74, 0x62, 0x21, + 0x06, 0x88, 0xa1, 0x97, 0x41, 0x9a, 0x65, 0x98, 0x4a, 0x86, 0xdd, 0x00, 0x96, 0x02, 0xf5, 0xbc, + 0x89, 0xe1, 0x28, 0x59, 0x8a, 0xcc, 0x45, 0xf0, 0x67, 0xbe, 0x1d, 0x5a, 0x4a, 0x8e, 0xbd, 0x0a, + 0xb7, 0x62, 0x58, 0xcf, 0x3b, 0x3f, 0xf2, 0x6d, 0x34, 0xe3, 0x2e, 0x39, 0x3a, 0xbf, 0xf7, 0xd3, + 0x7f, 0xf1, 0xcb, 0xbb, 0x99, 0x7f, 0xfd, 0xcb, 0xbb, 0x99, 0xff, 0xf8, 0xcb, 0xbb, 0x1b, 0x7f, + 0xf2, 0x9f, 0xef, 0x66, 0x7e, 0x4f, 0xfe, 0x95, 0x82, 0x99, 0x11, 0xfa, 0xf6, 0x05, 0xdf, 0x09, + 0x51, 0xc2, 0xb5, 0x1e, 0xce, 0xcf, 0x4e, 0x1e, 0xce, 0xc7, 0x0f, 0x91, 0x01, 0x8d, 0x8b, 0xf4, + 0x03, 0x05, 0x1f, 0xfd, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x25, 0xc9, 0xdd, 0x49, 0xef, 0x60, + 0x00, 0x00, } func (m *Type) Marshal() (dAtA []byte, err error) { @@ -17345,6 +17354,13 @@ func (m *CreateDatabase) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Sql) > 0 { + i -= len(m.Sql) + copy(dAtA[i:], m.Sql) + i = encodeVarintPlan(dAtA, i, uint64(len(m.Sql))) + i-- + dAtA[i] = 0x22 + } if m.SubscriptionOption != nil { { size, err := m.SubscriptionOption.MarshalToSizedBuffer(dAtA[:i]) @@ -22621,6 +22637,10 @@ func (m *CreateDatabase) ProtoSize() (n int) { l = m.SubscriptionOption.ProtoSize() n += 1 + l + sovPlan(uint64(l)) } + l = len(m.Sql) + if l > 0 { + n += 1 + l + sovPlan(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -39360,6 +39380,38 @@ func (m *CreateDatabase) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sql", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPlan + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPlan + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPlan + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sql = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipPlan(dAtA[iNdEx:]) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 1c473be5bbff1..3c20142b9237d 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -32,7 +32,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/pb/lock" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/sql/colexec/lockop" - "github.com/matrixorigin/matrixone/pkg/sql/parsers/dialect" "github.com/matrixorigin/matrixone/pkg/sql/parsers/tree" plan2 "github.com/matrixorigin/matrixone/pkg/sql/plan" "github.com/matrixorigin/matrixone/pkg/sql/plan/function" @@ -60,9 +59,7 @@ func (s *Scope) CreateDatabase(c *Compile) error { return err } - fmtCtx := tree.NewFmtCtx(dialect.MYSQL, tree.WithQuoteString(true)) - c.stmt.Format(fmtCtx) - ctx := context.WithValue(c.ctx, defines.SqlKey{}, fmtCtx.String()) + ctx := context.WithValue(c.ctx, defines.SqlKey{}, s.Plan.GetDdl().GetCreateDatabase().GetSql()) datType := "" if s.Plan.GetDdl().GetCreateDatabase().SubscriptionOption != nil { datType = catalog.SystemDBTypeSubscription diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index afa1ab8eb29ba..f7487c0950794 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -11362,7 +11362,7 @@ yydefault: //line mysql_sql.y:2997 { assignments := []*tree.VarAssignmentExpr{ - &tree.VarAssignmentExpr{ + { System: true, Global: true, Name: yyDollar[6].str, diff --git a/pkg/sql/parsers/tree/create.go b/pkg/sql/parsers/tree/create.go index 5c4c9f844353c..811c252e797b1 100644 --- a/pkg/sql/parsers/tree/create.go +++ b/pkg/sql/parsers/tree/create.go @@ -107,6 +107,7 @@ type CreateDatabase struct { Name Identifier CreateOptions []CreateOption SubscriptionOption *SubscriptionOption + Sql string } func (node *CreateDatabase) Format(ctx *FmtCtx) { diff --git a/pkg/sql/plan/build_ddl.go b/pkg/sql/plan/build_ddl.go index ce9e00a89b981..aa080fb59d31f 100644 --- a/pkg/sql/plan/build_ddl.go +++ b/pkg/sql/plan/build_ddl.go @@ -1600,6 +1600,7 @@ func buildCreateDatabase(stmt *tree.CreateDatabase, ctx CompilerContext) (*Plan, Publication: string(stmt.SubscriptionOption.Publication), } } + createDB.Sql = stmt.Sql return &Plan{ Plan: &plan.Plan_Ddl{ diff --git a/proto/plan.proto b/proto/plan.proto index 9cc078600a2f2..21d071647ed4f 100644 --- a/proto/plan.proto +++ b/proto/plan.proto @@ -1018,6 +1018,7 @@ message CreateDatabase { bool if_not_exists = 1; string database = 2; SubscriptionOption subscription_option = 3; + string sql = 4; } message AlterDatabase { diff --git a/test/distributed/cases/statement_query_type/statement_query_type.result b/test/distributed/cases/statement_query_type/statement_query_type.result index 7daae183a6ed0..4a820f704b7b6 100644 --- a/test/distributed/cases/statement_query_type/statement_query_type.result +++ b/test/distributed/cases/statement_query_type/statement_query_type.result @@ -433,7 +433,7 @@ show create table test_01 Other cloud_user_sql create table test_01(a int, b varchar) DDL cloud_user_sql drop table if exists test_01 DDL cloud_user_sql deallocate prepare s1 Other cloud_user_sql -execute s1 using @a Other cloud_user_sql +execute s1 using @a // prepare s1 from select * from test_table where col1=? ; set @a=2 Other cloud_user_sql set @a=2 Other cloud_user_sql prepare s1 from select * from test_table where col1=? Other cloud_user_sql select * from unnest('{"a":1}') as f DQL cloud_user_sql diff --git a/test/distributed/cases/tenant/pub_sub1.result b/test/distributed/cases/tenant/pub_sub1.result index e13692c7787d9..2243144baa99c 100644 --- a/test/distributed/cases/tenant/pub_sub1.result +++ b/test/distributed/cases/tenant/pub_sub1.result @@ -18,4 +18,18 @@ drop account test_tenant_2; drop publication pubname1; drop publication pubname2; drop database db1; -set global enable_privilege_cache = on; \ No newline at end of file +set global enable_privilege_cache = on; +create account `0b6d35cc_11ab_4da5_a5c5_c4cc09917c11` admin_name 'admin' identified by '111'; +create account `62915dd9_d454_4b02_be16_0741d94b62cc` admin_name 'admin' identified by '111'; +create database test; +use test; +create table tt(a int); +insert into tt values(1); +create publication mo_test_pub database test account `62915dd9_d454_4b02_be16_0741d94b62cc`; +create database mo_test_sub from `0b6d35cc_11ab_4da5_a5c5_c4cc09917c11` publication mo_test_pub; +show subscriptions; +Name From_Account +mo_test_sub 0b6d35cc_11ab_4da5_a5c5_c4cc09917c11 +drop publication mo_test_pub; +drop account `0b6d35cc_11ab_4da5_a5c5_c4cc09917c11`; +drop account `62915dd9_d454_4b02_be16_0741d94b62cc`; diff --git a/test/distributed/cases/tenant/pub_sub1.sql b/test/distributed/cases/tenant/pub_sub1.sql index cdbebf7c117f7..8381a7da1f6af 100644 --- a/test/distributed/cases/tenant/pub_sub1.sql +++ b/test/distributed/cases/tenant/pub_sub1.sql @@ -14,4 +14,24 @@ drop publication pubname1; drop publication pubname2; drop database db1; -set global enable_privilege_cache = on; \ No newline at end of file +set global enable_privilege_cache = on; + + +create account `0b6d35cc_11ab_4da5_a5c5_c4cc09917c11` admin_name 'admin' identified by '111'; +create account `62915dd9_d454_4b02_be16_0741d94b62cc` admin_name 'admin' identified by '111'; +-- @session:id=3&user=0b6d35cc_11ab_4da5_a5c5_c4cc09917c11:admin&password=111 +create database test; +use test; +create table tt(a int); +insert into tt values(1); +create publication mo_test_pub database test account `62915dd9_d454_4b02_be16_0741d94b62cc`; +-- @session +-- @session:id=5&user=62915dd9_d454_4b02_be16_0741d94b62cc:admin&password=111 +create database mo_test_sub from `0b6d35cc_11ab_4da5_a5c5_c4cc09917c11` publication mo_test_pub; +show subscriptions; +-- @session +-- @session:id=7&user=0b6d35cc_11ab_4da5_a5c5_c4cc09917c11:admin&password=111 +drop publication mo_test_pub; +-- @session +drop account `0b6d35cc_11ab_4da5_a5c5_c4cc09917c11`; +drop account `62915dd9_d454_4b02_be16_0741d94b62cc`; \ No newline at end of file