From 176d890c1cac25856f67fbed4cc39a396aa87a93 Mon Sep 17 00:00:00 2001 From: Arghya Sadhu Date: Mon, 16 Nov 2020 10:06:50 +0530 Subject: [PATCH] fix(controller): support float for param value (#4490) Signed-off-by: Arghya Sadhu --- pkg/apis/workflow/v1alpha1/anystring.go | 52 + .../{int64orstr_test.go => anystring_test.go} | 57 +- pkg/apis/workflow/v1alpha1/generated.pb.go | 925 +++++++++--------- pkg/apis/workflow/v1alpha1/int64orstr.go | 51 - pkg/apis/workflow/v1alpha1/workflow_types.go | 8 +- .../v1alpha1/zz_generated.deepcopy.go | 8 +- server/event/dispatch/operation.go | 2 +- server/event/dispatch/operation_test.go | 2 +- util/printer/workflow-printer_test.go | 2 +- workflow/controller/cache_test.go | 2 +- workflow/controller/operator.go | 2 +- workflow/controller/operator_test.go | 6 +- .../controller/operator_wfdefault_test.go | 2 +- .../operator_workflow_template_ref_test.go | 4 +- workflow/controller/workflowpod_test.go | 2 +- workflow/executor/executor.go | 8 +- workflow/executor/executor_test.go | 4 +- workflow/executor/resource.go | 4 +- workflow/util/util.go | 8 +- workflow/util/util_test.go | 2 +- workflow/validate/validate.go | 2 +- 21 files changed, 592 insertions(+), 561 deletions(-) create mode 100644 pkg/apis/workflow/v1alpha1/anystring.go rename pkg/apis/workflow/v1alpha1/{int64orstr_test.go => anystring_test.go} (51%) delete mode 100644 pkg/apis/workflow/v1alpha1/int64orstr.go diff --git a/pkg/apis/workflow/v1alpha1/anystring.go b/pkg/apis/workflow/v1alpha1/anystring.go new file mode 100644 index 000000000000..f3459f31f125 --- /dev/null +++ b/pkg/apis/workflow/v1alpha1/anystring.go @@ -0,0 +1,52 @@ +package v1alpha1 + +import ( + "encoding/json" + "fmt" + "strconv" +) + +// * It's JSON type is just string. +// * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string. +// * It will marshall back to string - marshalling is not symmetric. +type AnyString string + +func ParseAnyString(val interface{}) AnyString { + return AnyString(fmt.Sprintf("%v", val)) +} + +func AnyStringPtr(val interface{}) *AnyString { + i := ParseAnyString(val) + return &i +} + +func (i *AnyString) UnmarshalJSON(value []byte) error { + var v interface{} + err := json.Unmarshal(value, &v) + if err != nil { + return err + } + switch v := v.(type) { + case float64: + *i = AnyString(strconv.FormatFloat(v, 'f', -1, 64)) + case float32: + *i = AnyString(strconv.FormatFloat(float64(v), 'f', -1, 32)) + case int64: + *i = AnyString(strconv.FormatInt(v, 10)) + case int32: + *i = AnyString(strconv.FormatInt(int64(v), 10)) + case bool: + *i = AnyString(strconv.FormatBool(v)) + case string: + *i = AnyString(v) + } + return nil +} + +func (i AnyString) MarshalJSON() ([]byte, error) { + return json.Marshal(string(i)) +} + +func (i AnyString) String() string { + return string(i) +} diff --git a/pkg/apis/workflow/v1alpha1/int64orstr_test.go b/pkg/apis/workflow/v1alpha1/anystring_test.go similarity index 51% rename from pkg/apis/workflow/v1alpha1/int64orstr_test.go rename to pkg/apis/workflow/v1alpha1/anystring_test.go index 010dbe191266..91f7a703fbee 100644 --- a/pkg/apis/workflow/v1alpha1/int64orstr_test.go +++ b/pkg/apis/workflow/v1alpha1/anystring_test.go @@ -7,57 +7,88 @@ import ( "github.com/stretchr/testify/assert" ) -func TestInt64OrString(t *testing.T) { +func TestAnyString(t *testing.T) { t.Run("Empty", func(t *testing.T) { - x := Int64OrStringPtr("") + x := AnyStringPtr("") data, err := json.Marshal(x) if assert.NoError(t, err) { assert.Equal(t, `""`, string(data), "string value has quotes") } - i := Int64OrStringPtr("") + i := AnyStringPtr("") err = i.UnmarshalJSON([]byte(`""`)) if assert.NoError(t, err) { - assert.Equal(t, Int64OrStringPtr(""), i) + assert.Equal(t, AnyStringPtr(""), i) } assert.Equal(t, "", i.String(), "string value does not have quotes") }) t.Run("String", func(t *testing.T) { - x := Int64OrStringPtr("my-string") + x := AnyStringPtr("my-string") data, err := json.Marshal(x) if assert.NoError(t, err) { assert.Equal(t, `"my-string"`, string(data), "string value has quotes") } - i := Int64OrStringPtr("") + i := AnyStringPtr("") err = i.UnmarshalJSON([]byte(`"my-string"`)) if assert.NoError(t, err) { - assert.Equal(t, Int64OrStringPtr("my-string"), i) + assert.Equal(t, AnyStringPtr("my-string"), i) } assert.Equal(t, "my-string", i.String(), "string value does not have quotes") }) t.Run("StringNumber", func(t *testing.T) { - x := Int64OrStringPtr(1) + x := AnyStringPtr(1) data, err := json.Marshal(x) if assert.NoError(t, err) { assert.Equal(t, `"1"`, string(data), "number value has quotes") } - i := Int64OrStringPtr("") + i := AnyStringPtr("") err = i.UnmarshalJSON([]byte(`"1"`)) if assert.NoError(t, err) { - assert.Equal(t, Int64OrStringPtr("1"), i) + assert.Equal(t, AnyStringPtr("1"), i) } assert.Equal(t, "1", i.String(), "number value does not have quotes") }) t.Run("LargeNumber", func(t *testing.T) { - x := ParseInt64OrString(881217801864) + x := ParseAnyString(881217801864) data, err := json.Marshal(x) if assert.NoError(t, err) { assert.Equal(t, `"881217801864"`, string(data)) } - i := Int64OrStringPtr("") + i := AnyStringPtr("") err = i.UnmarshalJSON([]byte("881217801864")) if assert.NoError(t, err) { - assert.Equal(t, Int64OrStringPtr("881217801864"), i) + assert.Equal(t, AnyStringPtr("881217801864"), i) } assert.Equal(t, "881217801864", i.String()) }) + t.Run("FloatNumber", func(t *testing.T) { + x := ParseAnyString(0.2) + data, err := json.Marshal(x) + if assert.NoError(t, err) { + assert.Equal(t, `"0.2"`, string(data)) + } + i := AnyStringPtr("") + err = i.UnmarshalJSON([]byte("0.2")) + if assert.NoError(t, err) { + assert.Equal(t, AnyStringPtr("0.2"), i) + } + assert.Equal(t, "0.2", i.String()) + }) + t.Run("Boolean", func(t *testing.T) { + x := ParseAnyString(true) + data, err := json.Marshal(x) + if assert.NoError(t, err) { + assert.Equal(t, `"true"`, string(data)) + } + x = ParseAnyString(false) + data, err = json.Marshal(x) + if assert.NoError(t, err) { + assert.Equal(t, `"false"`, string(data)) + } + i := AnyStringPtr("") + err = i.UnmarshalJSON([]byte("true")) + if assert.NoError(t, err) { + assert.Equal(t, AnyStringPtr("true"), i) + } + assert.Equal(t, "true", i.String()) + }) } diff --git a/pkg/apis/workflow/v1alpha1/generated.pb.go b/pkg/apis/workflow/v1alpha1/generated.pb.go index e1e5b9155b26..d52d6cc015e0 100644 --- a/pkg/apis/workflow/v1alpha1/generated.pb.go +++ b/pkg/apis/workflow/v1alpha1/generated.pb.go @@ -2691,467 +2691,466 @@ func init() { } var fileDescriptor_c23edafa7e7ea072 = []byte{ - // 7350 bytes of a gzipped FileDescriptorProto + // 7343 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x6c, 0x24, 0xd7, 0x75, 0xa0, 0x9a, 0x64, 0x93, 0xdd, 0xa7, 0xc9, 0x21, 0x79, 0xe7, 0xd5, 0xa2, 0x46, 0xc3, 0x71, - 0xc9, 0x12, 0xa4, 0x5d, 0x99, 0xb4, 0x46, 0x92, 0x57, 0xb6, 0xac, 0x07, 0x9b, 0xaf, 0xa1, 0x66, - 0x38, 0xa4, 0x4e, 0x73, 0x66, 0xd6, 0x1a, 0x41, 0xda, 0x62, 0xf7, 0xed, 0xee, 0x1a, 0x76, 0x57, - 0x95, 0xaa, 0xaa, 0x49, 0x51, 0xda, 0xc5, 0xca, 0xc6, 0x1a, 0x5e, 0xaf, 0xd7, 0xd8, 0x5d, 0x2c, - 0xbc, 0xab, 0x85, 0xb1, 0xd8, 0xfd, 0x59, 0xec, 0x47, 0x1c, 0xe4, 0x23, 0x48, 0x7e, 0x02, 0xf8, - 0x23, 0x48, 0x02, 0xc7, 0x40, 0x00, 0xe7, 0x2b, 0xfe, 0x30, 0x68, 0x8b, 0xf9, 0x88, 0x8c, 0xc4, - 0xf1, 0x57, 0x10, 0x60, 0x10, 0x20, 0xc1, 0x7d, 0xd6, 0xa3, 0xab, 0x67, 0xc8, 0x6a, 0xce, 0xc0, - 0x88, 0xfd, 0xd7, 0x75, 0xce, 0xb9, 0xe7, 0xdc, 0xf7, 0x3d, 0xaf, 0x7b, 0x1b, 0x16, 0x9b, 0x56, - 0xd0, 0xea, 0x6e, 0xcf, 0xd5, 0x9c, 0xce, 0xbc, 0xe9, 0x35, 0x1d, 0xd7, 0x73, 0xee, 0xf0, 0x1f, - 0xf3, 0xee, 0x4e, 0x73, 0xde, 0x74, 0x2d, 0x7f, 0x7e, 0xcf, 0xf1, 0x76, 0x1a, 0x6d, 0x67, 0x6f, - 0x7e, 0xf7, 0x39, 0xb3, 0xed, 0xb6, 0xcc, 0xe7, 0xe6, 0x9b, 0xd4, 0xa6, 0x9e, 0x19, 0xd0, 0xfa, - 0x9c, 0xeb, 0x39, 0x81, 0x43, 0x9e, 0x0f, 0x99, 0xcc, 0x29, 0x26, 0xfc, 0xc7, 0x9c, 0xbb, 0xd3, - 0x9c, 0x63, 0x4c, 0xe6, 0x14, 0x93, 0x39, 0xc5, 0x64, 0xe6, 0x73, 0x11, 0xc9, 0x4d, 0x87, 0x09, - 0x64, 0xbc, 0xb6, 0xbb, 0x0d, 0xfe, 0xc5, 0x3f, 0xf8, 0x2f, 0x21, 0x63, 0xc6, 0xd8, 0x79, 0xc9, - 0x9f, 0xb3, 0x1c, 0x56, 0xa5, 0xf9, 0x9a, 0xe3, 0xd1, 0xf9, 0xdd, 0x9e, 0x7a, 0xcc, 0x3c, 0x13, - 0xa1, 0x71, 0x9d, 0xb6, 0x55, 0xdb, 0x9f, 0xdf, 0x7d, 0x6e, 0x9b, 0x06, 0xbd, 0x55, 0x9e, 0x79, - 0x21, 0x24, 0xed, 0x98, 0xb5, 0x96, 0x65, 0x53, 0x6f, 0x3f, 0x6c, 0x72, 0x87, 0x06, 0x66, 0x9a, - 0x80, 0xf9, 0x7e, 0xa5, 0xbc, 0xae, 0x1d, 0x58, 0x1d, 0xda, 0x53, 0xe0, 0x0b, 0xf7, 0x2b, 0xe0, - 0xd7, 0x5a, 0xb4, 0x63, 0xf6, 0x94, 0x7b, 0xbe, 0x5f, 0xb9, 0x6e, 0x60, 0xb5, 0xe7, 0x2d, 0x3b, - 0xf0, 0x03, 0x2f, 0x59, 0xc8, 0x58, 0x86, 0xd1, 0x85, 0x8e, 0xd3, 0xb5, 0x03, 0xf2, 0x32, 0xe4, - 0x77, 0xcd, 0x76, 0x97, 0x96, 0x73, 0x97, 0x72, 0x4f, 0x17, 0x2b, 0x4f, 0xfe, 0xe0, 0x60, 0xf6, - 0x91, 0xc3, 0x83, 0xd9, 0xfc, 0x4d, 0x06, 0xbc, 0x7b, 0x30, 0x7b, 0x86, 0xda, 0x35, 0xa7, 0x6e, - 0xd9, 0xcd, 0xf9, 0x3b, 0xbe, 0x63, 0xcf, 0x5d, 0xef, 0x76, 0xb6, 0xa9, 0x87, 0xa2, 0x8c, 0xf1, - 0xbd, 0x21, 0x98, 0x5c, 0xf0, 0x6a, 0x2d, 0x6b, 0x97, 0x56, 0x03, 0xc6, 0xbf, 0xb9, 0x4f, 0x6e, - 0xc3, 0x70, 0x60, 0x7a, 0x9c, 0x5d, 0xe9, 0xf2, 0xeb, 0x73, 0x19, 0xc6, 0x7b, 0x6e, 0xcb, 0xf4, - 0x14, 0xbb, 0xca, 0xd8, 0xe1, 0xc1, 0xec, 0xf0, 0x96, 0xe9, 0x21, 0xe3, 0x4a, 0xde, 0x85, 0x11, - 0xdb, 0xb1, 0x69, 0x79, 0x88, 0x73, 0x5f, 0xc8, 0xc4, 0xfd, 0xba, 0x63, 0xeb, 0xda, 0x56, 0x0a, - 0x87, 0x07, 0xb3, 0x23, 0x0c, 0x82, 0x9c, 0x31, 0xab, 0xfd, 0x07, 0x96, 0x5b, 0x1e, 0x1e, 0xa0, - 0xf6, 0x6f, 0x59, 0x6e, 0xbc, 0xf6, 0x6f, 0x59, 0x2e, 0x32, 0xae, 0xc6, 0x2f, 0x73, 0x50, 0x5c, - 0xf0, 0x9a, 0xdd, 0x0e, 0xb5, 0x03, 0x9f, 0x78, 0x00, 0xae, 0xe9, 0x99, 0x1d, 0x1a, 0x50, 0xcf, - 0x2f, 0xe7, 0x2e, 0x0d, 0x3f, 0x5d, 0xba, 0xfc, 0x6a, 0x26, 0x89, 0x9b, 0x8a, 0x4d, 0x85, 0xc8, - 0xe1, 0x03, 0x0d, 0xf2, 0x31, 0x22, 0x85, 0xd8, 0x50, 0x34, 0xbd, 0xc0, 0x6a, 0x98, 0xb5, 0xc0, - 0x2f, 0x0f, 0x71, 0x91, 0xaf, 0x64, 0x12, 0xb9, 0x20, 0xb9, 0x54, 0xa6, 0xa5, 0xc4, 0xa2, 0x82, - 0xf8, 0x18, 0x8a, 0x30, 0xfe, 0x6c, 0x04, 0x0a, 0x0a, 0x41, 0x2e, 0xc1, 0x88, 0x6d, 0x76, 0xd4, - 0x4c, 0x1b, 0x97, 0x05, 0x47, 0xae, 0x9b, 0x1d, 0xd6, 0xfb, 0x66, 0x87, 0x32, 0x0a, 0xd7, 0x0c, - 0x5a, 0x7c, 0x78, 0x23, 0x14, 0x9b, 0x66, 0xd0, 0x42, 0x8e, 0x21, 0x17, 0x60, 0xa4, 0xe3, 0xd4, - 0x29, 0x1f, 0xa0, 0xbc, 0x18, 0xbd, 0x75, 0xa7, 0x4e, 0x91, 0x43, 0x59, 0xf9, 0x86, 0xe7, 0x74, - 0xca, 0x23, 0xf1, 0xf2, 0x2b, 0x9e, 0xd3, 0x41, 0x8e, 0x21, 0xdf, 0xca, 0xc1, 0x94, 0xaa, 0xde, - 0x35, 0xa7, 0x66, 0x06, 0x96, 0x63, 0x97, 0xf3, 0x7c, 0xb4, 0x97, 0x07, 0xea, 0x08, 0xc5, 0xac, - 0x52, 0x96, 0x52, 0xa7, 0x92, 0x18, 0xec, 0x11, 0x4c, 0x2e, 0x03, 0x34, 0xdb, 0xce, 0xb6, 0xd9, - 0x66, 0x7d, 0x50, 0x1e, 0xe5, 0xb5, 0xd6, 0x43, 0xb8, 0xaa, 0x31, 0x18, 0xa1, 0x22, 0x3b, 0x30, - 0x66, 0x8a, 0x25, 0x57, 0x1e, 0xe3, 0xf5, 0x5e, 0xca, 0x58, 0xef, 0xd8, 0xb2, 0xad, 0x94, 0x0e, - 0x0f, 0x66, 0xc7, 0x24, 0x10, 0x95, 0x04, 0xf2, 0x2c, 0x14, 0x1c, 0x97, 0x55, 0xd5, 0x6c, 0x97, - 0x0b, 0x97, 0x72, 0x4f, 0x17, 0x2a, 0x53, 0xb2, 0x7a, 0x85, 0x0d, 0x09, 0x47, 0x4d, 0x41, 0x9e, - 0x81, 0x31, 0xbf, 0xbb, 0xcd, 0x46, 0xab, 0x5c, 0xe4, 0x6d, 0x99, 0x94, 0xc4, 0x63, 0x55, 0x01, - 0x46, 0x85, 0x27, 0x2f, 0x42, 0xc9, 0xa3, 0xb5, 0xae, 0xe7, 0x53, 0x36, 0x7c, 0x65, 0xe0, 0xbc, - 0x4f, 0x4b, 0xf2, 0x12, 0x86, 0x28, 0x8c, 0xd2, 0x19, 0x7f, 0x3e, 0x0a, 0x3d, 0xfd, 0x4a, 0x9e, - 0x83, 0x92, 0xac, 0xef, 0x35, 0xa7, 0xe9, 0xf3, 0xe9, 0x55, 0xa8, 0x4c, 0x32, 0x3e, 0x0b, 0x21, - 0x18, 0xa3, 0x34, 0xe4, 0x16, 0x0c, 0xf9, 0xcf, 0xcb, 0x5d, 0xe4, 0xb5, 0x4c, 0xfd, 0x57, 0x7d, - 0x5e, 0x2f, 0x81, 0xd1, 0xc3, 0x83, 0xd9, 0xa1, 0xea, 0xf3, 0x38, 0xe4, 0x3f, 0xcf, 0xf6, 0x8f, - 0xa6, 0x15, 0x0c, 0xb4, 0x7f, 0xac, 0x5a, 0x81, 0x66, 0xcd, 0xf7, 0x8f, 0x55, 0x2b, 0x40, 0xc6, - 0x95, 0xed, 0x7e, 0xad, 0x20, 0x70, 0xf9, 0xf4, 0xce, 0xba, 0xfb, 0x5d, 0xd9, 0xda, 0xda, 0xd4, - 0xec, 0xf9, 0xfa, 0x61, 0x10, 0xe4, 0x8c, 0xc9, 0x87, 0xac, 0x27, 0x05, 0xce, 0xf1, 0xf6, 0xe5, - 0xba, 0xb8, 0x32, 0xd0, 0xba, 0x70, 0xbc, 0x7d, 0x2d, 0x4e, 0x8e, 0x89, 0x46, 0x60, 0x54, 0x1a, - 0x6f, 0x5d, 0xbd, 0xe1, 0xf3, 0x65, 0x90, 0xb9, 0x75, 0x4b, 0x2b, 0xd5, 0x44, 0xeb, 0x96, 0x56, - 0xaa, 0xc8, 0x19, 0xb3, 0xb1, 0xf1, 0xcc, 0x3d, 0xb9, 0x6a, 0xb2, 0x8d, 0x0d, 0x9a, 0x7b, 0xf1, - 0xb1, 0x41, 0x73, 0x0f, 0x19, 0x57, 0xc6, 0xdc, 0xf1, 0x7d, 0xbe, 0x48, 0xb2, 0x32, 0xdf, 0xa8, - 0x56, 0xe3, 0xcc, 0x37, 0xaa, 0x55, 0x64, 0x5c, 0xf9, 0xac, 0xaa, 0xf9, 0x7c, 0x51, 0x65, 0x9e, - 0x55, 0x8b, 0x09, 0xe6, 0xab, 0x8b, 0x55, 0x64, 0x5c, 0x8d, 0x26, 0x9c, 0x55, 0x18, 0xa4, 0xae, - 0xe3, 0x5b, 0x7c, 0x68, 0x68, 0x83, 0xcc, 0x43, 0xb1, 0xe6, 0xd8, 0x0d, 0xab, 0xb9, 0x6e, 0xba, - 0x72, 0xd3, 0xd6, 0xbb, 0xfd, 0xa2, 0x42, 0x60, 0x48, 0x43, 0x1e, 0x87, 0xe1, 0x1d, 0xba, 0x2f, - 0x77, 0xef, 0x92, 0x24, 0x1d, 0xbe, 0x4a, 0xf7, 0x91, 0xc1, 0x8d, 0xef, 0xe7, 0xe0, 0x74, 0xca, - 0xb4, 0x60, 0xc5, 0xba, 0x5e, 0x5b, 0x4a, 0xd0, 0xc5, 0x6e, 0xe0, 0x35, 0x64, 0x70, 0xf2, 0x8d, - 0x1c, 0x4c, 0x46, 0xe6, 0xc9, 0x42, 0x57, 0x1e, 0x10, 0xd9, 0x77, 0xbe, 0x18, 0xaf, 0xca, 0x79, - 0x29, 0x71, 0x32, 0x81, 0xc0, 0xa4, 0x54, 0xe3, 0x2f, 0x72, 0x90, 0x24, 0x22, 0x26, 0x9c, 0xea, - 0xfa, 0xd4, 0x63, 0xc7, 0x57, 0x95, 0xd6, 0x3c, 0x1a, 0x48, 0xcd, 0xe7, 0xc9, 0x39, 0xa1, 0x97, - 0xb1, 0x5a, 0xcc, 0x31, 0x2d, 0x74, 0x6e, 0xf7, 0xb9, 0x39, 0x41, 0x71, 0x95, 0xee, 0x57, 0x69, - 0x9b, 0x32, 0x1e, 0x15, 0x72, 0x78, 0x30, 0x7b, 0xea, 0x46, 0x8c, 0x01, 0x26, 0x18, 0x32, 0x11, - 0xae, 0xe9, 0xfb, 0x7b, 0x8e, 0x57, 0x97, 0x22, 0x86, 0x8e, 0x2d, 0x62, 0x33, 0xc6, 0x00, 0x13, - 0x0c, 0x8d, 0x3f, 0xca, 0xc1, 0x58, 0xc5, 0xac, 0xed, 0x38, 0x8d, 0x06, 0xdb, 0xf3, 0xeb, 0x5d, - 0x4f, 0x9c, 0x8c, 0x62, 0x4c, 0xf4, 0x9e, 0xbf, 0x24, 0xe1, 0xa8, 0x29, 0xc8, 0x16, 0x8c, 0x8a, - 0xee, 0x90, 0x95, 0xfa, 0x7c, 0xa4, 0x52, 0x5a, 0x1f, 0xe5, 0xc3, 0xc1, 0xf4, 0xd1, 0x39, 0xa1, - 0x8f, 0xce, 0xad, 0xd9, 0xc1, 0x06, 0xd3, 0xf1, 0x2c, 0xbb, 0x59, 0x81, 0xc3, 0x83, 0xd9, 0xd1, - 0x15, 0xce, 0x03, 0x25, 0x2f, 0x76, 0x3c, 0x74, 0xcc, 0xf7, 0x95, 0x38, 0xbe, 0x9d, 0x16, 0xc3, - 0xe3, 0x61, 0x3d, 0x44, 0x61, 0x94, 0xce, 0x78, 0x07, 0xf2, 0x8b, 0x66, 0xad, 0x45, 0xc9, 0x8d, - 0xe4, 0xd4, 0x2d, 0x5d, 0x7e, 0x3a, 0xad, 0xb7, 0xf4, 0x34, 0x8e, 0x76, 0xd8, 0x44, 0xbf, 0x09, - 0x6e, 0x7c, 0x9a, 0x83, 0xf3, 0x8b, 0xed, 0xae, 0x1f, 0x50, 0xef, 0x96, 0x9c, 0x57, 0x5b, 0xb4, - 0xe3, 0xb6, 0xcd, 0x80, 0x92, 0x7f, 0x03, 0x05, 0x66, 0x0b, 0xd4, 0xcd, 0xc0, 0x94, 0x12, 0xfb, - 0x77, 0x05, 0x9f, 0x99, 0x8c, 0x9a, 0xd5, 0x61, 0x63, 0xfb, 0x0e, 0xad, 0x05, 0xeb, 0x34, 0x30, - 0xc3, 0xb3, 0x3f, 0x84, 0xa1, 0xe6, 0x4a, 0x76, 0x60, 0xc4, 0x77, 0x69, 0x4d, 0x76, 0xf4, 0x5a, - 0xa6, 0xc9, 0x9f, 0xac, 0x76, 0xd5, 0xa5, 0xb5, 0x50, 0x51, 0x62, 0x5f, 0xc8, 0x85, 0x18, 0x7f, - 0x9b, 0x83, 0xc7, 0xfa, 0x34, 0xf5, 0x9a, 0xe5, 0x07, 0xe4, 0xed, 0x9e, 0xe6, 0xce, 0x1d, 0xad, - 0xb9, 0xac, 0x34, 0x6f, 0xac, 0x9e, 0x55, 0x0a, 0x12, 0x69, 0xea, 0x7b, 0x90, 0xb7, 0x02, 0xda, - 0x51, 0x3a, 0xea, 0xb5, 0x4c, 0x6d, 0xed, 0x53, 0xfd, 0xca, 0x84, 0xb2, 0x71, 0xd6, 0x98, 0x08, - 0x14, 0x92, 0x8c, 0x3f, 0xcd, 0x01, 0x1b, 0xf4, 0xba, 0x25, 0x75, 0x8a, 0x91, 0x60, 0xdf, 0x55, - 0xba, 0xea, 0xe3, 0xaa, 0x83, 0xb6, 0xf6, 0x5d, 0x66, 0x14, 0x4d, 0x68, 0x42, 0x06, 0x40, 0x4e, - 0x4a, 0xde, 0x81, 0x51, 0x3f, 0x30, 0x83, 0xae, 0x2f, 0x37, 0xc0, 0x15, 0x59, 0x68, 0xb4, 0xca, - 0xa1, 0x77, 0x0f, 0x66, 0x8f, 0x64, 0x49, 0xce, 0x69, 0xde, 0xa2, 0x1c, 0x4a, 0xae, 0x4c, 0xbb, - 0xea, 0x50, 0xdf, 0x37, 0x9b, 0x54, 0xae, 0x07, 0xad, 0x5d, 0xad, 0x0b, 0x30, 0x2a, 0xbc, 0xf1, - 0x15, 0x80, 0x45, 0xc7, 0x0e, 0x2c, 0xbb, 0x4b, 0x37, 0x6c, 0xf2, 0x04, 0xe4, 0xa9, 0xe7, 0x39, - 0x9e, 0xd4, 0x8c, 0x74, 0xf3, 0x97, 0x19, 0x10, 0x05, 0x8e, 0x3c, 0xc5, 0xd6, 0xb1, 0xd5, 0xa6, - 0x75, 0x5e, 0xfb, 0x42, 0xe5, 0x94, 0xaa, 0xfd, 0x0a, 0x87, 0xa2, 0xc4, 0x1a, 0x73, 0x30, 0xb6, - 0xc8, 0x0c, 0x47, 0xea, 0x31, 0xbe, 0x51, 0xd3, 0x71, 0x22, 0x66, 0x3a, 0x2a, 0x13, 0xf1, 0x87, - 0x43, 0x30, 0xbe, 0xe8, 0x39, 0xb6, 0x1a, 0x85, 0x87, 0xb0, 0x4e, 0x9a, 0xb1, 0x75, 0x92, 0x4d, - 0xad, 0x8f, 0x56, 0xb9, 0xdf, 0x1a, 0x21, 0x8e, 0x1e, 0x71, 0xa1, 0xef, 0xad, 0x0e, 0x2e, 0x8a, - 0xb3, 0x0b, 0x3b, 0x3f, 0x3e, 0x05, 0x8c, 0x1f, 0xe7, 0x60, 0x2a, 0x4a, 0xfe, 0x10, 0x56, 0x62, - 0x23, 0xbe, 0x12, 0x17, 0x06, 0x6e, 0x62, 0x9f, 0xe5, 0xf7, 0x0f, 0xf9, 0x78, 0xd3, 0x58, 0x37, - 0x33, 0x6b, 0x6d, 0x7c, 0x2f, 0x02, 0x90, 0xed, 0x5b, 0x18, 0x68, 0xeb, 0xe3, 0xc3, 0xf9, 0x59, - 0x59, 0x89, 0xf1, 0x28, 0xf4, 0x6e, 0xe2, 0x1b, 0x63, 0xc2, 0xd9, 0xc1, 0xe8, 0xd7, 0x5a, 0xb4, - 0xde, 0x6d, 0x53, 0xb9, 0xc4, 0x75, 0xc7, 0x55, 0x25, 0x1c, 0x35, 0x05, 0x79, 0x1b, 0xa6, 0x6b, - 0x8e, 0x5d, 0xeb, 0x7a, 0x1e, 0xb5, 0x6b, 0xfb, 0x9b, 0xdc, 0xc7, 0x24, 0x17, 0xee, 0x9c, 0x2c, - 0x36, 0xbd, 0x98, 0x24, 0xb8, 0x9b, 0x06, 0xc4, 0x5e, 0x46, 0xc2, 0xd4, 0xf2, 0x5d, 0x6a, 0xd7, - 0xb9, 0x35, 0x50, 0x88, 0x9a, 0x5a, 0x1c, 0x8c, 0x0a, 0x4f, 0x6e, 0xc0, 0x79, 0x3f, 0x60, 0xaa, - 0x8c, 0xdd, 0x5c, 0xa2, 0x66, 0xbd, 0x6d, 0xd9, 0x4c, 0xb1, 0x70, 0xec, 0xba, 0xcf, 0x15, 0xfc, - 0xe1, 0xca, 0x63, 0x87, 0x07, 0xb3, 0xe7, 0xab, 0xe9, 0x24, 0xd8, 0xaf, 0x2c, 0x79, 0x07, 0x66, - 0xfc, 0x6e, 0xad, 0x46, 0x7d, 0xbf, 0xd1, 0x6d, 0xbf, 0xe1, 0x6c, 0xfb, 0x57, 0x2c, 0x9f, 0x69, - 0x45, 0xd7, 0xac, 0x8e, 0x15, 0x70, 0x25, 0x3e, 0x5f, 0xb9, 0x78, 0x78, 0x30, 0x3b, 0x53, 0xed, - 0x4b, 0x85, 0xf7, 0xe0, 0x40, 0x10, 0xce, 0x89, 0x2d, 0xa7, 0x87, 0xf7, 0x18, 0xe7, 0x3d, 0x73, - 0x78, 0x30, 0x7b, 0x6e, 0x25, 0x95, 0x02, 0xfb, 0x94, 0x64, 0x23, 0x18, 0x58, 0x1d, 0xfa, 0x81, - 0x63, 0x53, 0xae, 0xa9, 0x47, 0x46, 0x70, 0x4b, 0xc2, 0x51, 0x53, 0x90, 0x3b, 0xe1, 0xe4, 0x63, - 0x8b, 0x42, 0xaa, 0xdf, 0xc7, 0xdf, 0xad, 0xce, 0x1c, 0x1e, 0xcc, 0x4e, 0xdd, 0x8a, 0x70, 0x62, - 0x0b, 0x0b, 0x63, 0xbc, 0x8d, 0x3f, 0x19, 0x02, 0xd2, 0xbb, 0x11, 0x90, 0xab, 0x30, 0x6a, 0xd6, - 0x02, 0x66, 0xeb, 0x0b, 0xff, 0xd0, 0x13, 0x69, 0x4a, 0x8c, 0x10, 0x85, 0xb4, 0x41, 0xd9, 0x0c, - 0xa1, 0xe1, 0xee, 0xb1, 0xc0, 0x8b, 0xa2, 0x64, 0x41, 0x1c, 0x98, 0x6e, 0x9b, 0x7e, 0xa0, 0xe6, - 0x6a, 0x9d, 0x35, 0x59, 0x6e, 0x92, 0xff, 0xe2, 0x68, 0x8d, 0x62, 0x25, 0x2a, 0x67, 0xd9, 0xcc, - 0xbd, 0x96, 0x64, 0x84, 0xbd, 0xbc, 0x89, 0x07, 0x50, 0x53, 0x87, 0x19, 0xdb, 0x23, 0xb3, 0x7b, - 0xb8, 0xf4, 0x99, 0x18, 0x6e, 0xfd, 0x1a, 0xe4, 0x63, 0x44, 0x8a, 0xf1, 0x8b, 0x51, 0x18, 0x5b, - 0x5a, 0x58, 0xdd, 0x32, 0xfd, 0x9d, 0x23, 0x38, 0x9c, 0xd8, 0x84, 0x90, 0x6a, 0x41, 0x72, 0x49, - 0x2b, 0x75, 0x01, 0x35, 0x05, 0x71, 0xa0, 0x68, 0x2a, 0xf7, 0x9d, 0xdc, 0xf2, 0x5f, 0xcd, 0x68, - 0x82, 0x48, 0x2e, 0x51, 0xf7, 0x99, 0x04, 0x61, 0x28, 0x83, 0xf8, 0x50, 0x52, 0xc2, 0x91, 0x36, - 0xa4, 0xdd, 0x9f, 0xd1, 0xa7, 0x1a, 0xf2, 0x11, 0x76, 0x78, 0x04, 0x80, 0x51, 0x29, 0xe4, 0x05, - 0x18, 0xaf, 0x53, 0xb6, 0x73, 0x50, 0xbb, 0x66, 0x51, 0xb6, 0x49, 0x0c, 0xb3, 0x7e, 0x61, 0x9b, - 0xe5, 0x52, 0x04, 0x8e, 0x31, 0x2a, 0x72, 0x07, 0x8a, 0x7b, 0x56, 0xd0, 0xe2, 0x7b, 0x7a, 0x79, - 0x94, 0x0f, 0xf5, 0x17, 0x33, 0x55, 0x94, 0x71, 0x08, 0xbb, 0xe5, 0x96, 0xe2, 0x89, 0x21, 0x7b, - 0x66, 0x98, 0xb2, 0x0f, 0xee, 0xe3, 0xe4, 0xbb, 0x41, 0x31, 0x5e, 0x80, 0x23, 0x30, 0xa4, 0x21, - 0x3e, 0x8c, 0xb3, 0x8f, 0x2a, 0x7d, 0xaf, 0xcb, 0x56, 0x88, 0xb4, 0xd2, 0xb3, 0x79, 0x3e, 0x15, - 0x13, 0xd1, 0x23, 0xb7, 0x22, 0x6c, 0x31, 0x26, 0x84, 0xcd, 0xbe, 0xbd, 0x16, 0xb5, 0xa5, 0x2b, - 0x4c, 0xcf, 0xbe, 0x5b, 0x2d, 0x6a, 0x23, 0xc7, 0x10, 0x87, 0xaf, 0x0f, 0xa9, 0xa6, 0x71, 0x1f, - 0x58, 0x56, 0x6f, 0x54, 0xa8, 0xed, 0x55, 0x4e, 0xc9, 0xc5, 0x21, 0xbf, 0x31, 0x22, 0x82, 0x29, - 0x79, 0x8e, 0xbd, 0xfc, 0xbe, 0x15, 0x94, 0x4b, 0xbc, 0x52, 0x7a, 0xa7, 0xd8, 0xe0, 0x50, 0x94, - 0x58, 0x76, 0xba, 0x88, 0xc1, 0xf5, 0xcb, 0xe3, 0x71, 0x55, 0x53, 0xcc, 0x00, 0x1f, 0x15, 0xde, - 0xf8, 0xc3, 0x1c, 0x94, 0xd8, 0x7a, 0x53, 0x6b, 0xe4, 0x29, 0x18, 0x0d, 0x4c, 0xaf, 0x29, 0xed, - 0xe0, 0x88, 0x88, 0x2d, 0x0e, 0x45, 0x89, 0x25, 0x26, 0xe4, 0x03, 0xd3, 0xdf, 0x51, 0x7a, 0xc5, - 0x97, 0x33, 0x35, 0x5b, 0x2e, 0xf4, 0x50, 0xa5, 0x60, 0x5f, 0x3e, 0x0a, 0xce, 0xe4, 0x69, 0x28, - 0xb0, 0x73, 0x60, 0xc5, 0xf4, 0x85, 0x43, 0xae, 0x50, 0x19, 0x67, 0x0b, 0x7b, 0x45, 0xc2, 0x50, - 0x63, 0x8d, 0x17, 0x21, 0xbf, 0xbc, 0x4b, 0x6d, 0x7e, 0x40, 0xf8, 0xd2, 0x0c, 0x4c, 0xda, 0xbe, - 0xca, 0x3c, 0x44, 0x4d, 0x61, 0xbc, 0x0d, 0xa7, 0x96, 0xdf, 0xa7, 0xb5, 0x6e, 0xe0, 0x78, 0xc2, - 0x5c, 0x24, 0x6f, 0x00, 0xf1, 0xa9, 0xb7, 0x6b, 0xd5, 0xe8, 0x42, 0xad, 0xc6, 0xd4, 0xe4, 0xeb, - 0xe1, 0xfe, 0x33, 0x23, 0x39, 0x91, 0x6a, 0x0f, 0x05, 0xa6, 0x94, 0x32, 0xfe, 0x77, 0x0e, 0x4a, - 0x11, 0xaf, 0x0d, 0xdb, 0x7d, 0x9a, 0x8b, 0xd5, 0x4a, 0xb7, 0xb6, 0xa3, 0x9d, 0x0c, 0xaf, 0x66, - 0x75, 0x05, 0x09, 0x2e, 0xe1, 0xaa, 0xd1, 0x20, 0x0c, 0x65, 0xdc, 0xcf, 0x9d, 0xf3, 0xfb, 0x39, - 0x08, 0xcb, 0xb1, 0x71, 0xdf, 0x0e, 0xab, 0x16, 0x19, 0x77, 0xc9, 0x57, 0x62, 0xc9, 0x47, 0x39, - 0x38, 0x1f, 0x6f, 0x2c, 0x37, 0xbd, 0x8f, 0xef, 0xd6, 0x98, 0x95, 0x02, 0xce, 0x57, 0xd3, 0xb9, - 0x61, 0x3f, 0x31, 0xc6, 0x4d, 0xc8, 0xaf, 0x9a, 0xdd, 0x26, 0x3d, 0x92, 0x01, 0xc3, 0x66, 0x91, - 0x47, 0xcd, 0x76, 0xa0, 0x0e, 0x4b, 0x39, 0x8b, 0x50, 0xc2, 0x50, 0x63, 0x8d, 0xef, 0x8d, 0x40, - 0x29, 0xe2, 0xbc, 0x65, 0x1b, 0x80, 0x47, 0x5d, 0x27, 0x79, 0xfc, 0x20, 0x75, 0x1d, 0xe4, 0x18, - 0x36, 0xdd, 0x3c, 0xba, 0x6b, 0xf9, 0x96, 0x63, 0x27, 0x8f, 0x1f, 0x94, 0x70, 0xd4, 0x14, 0x64, - 0x16, 0xf2, 0x75, 0xea, 0x06, 0x2d, 0x3e, 0x99, 0x47, 0x2a, 0x45, 0x56, 0xd5, 0x25, 0x06, 0x40, - 0x01, 0x67, 0x04, 0x0d, 0x1a, 0xd4, 0x5a, 0xe5, 0x11, 0xbe, 0x65, 0x73, 0x82, 0x15, 0x06, 0x40, - 0x01, 0x4f, 0x71, 0x56, 0xe5, 0x1f, 0xbc, 0xb3, 0x6a, 0xf4, 0x84, 0x9d, 0x55, 0xc4, 0x85, 0xd3, - 0xbe, 0xdf, 0xda, 0xf4, 0xac, 0x5d, 0x33, 0xa0, 0xe1, 0xec, 0x19, 0x3b, 0x8e, 0x9c, 0xf3, 0x87, - 0x07, 0xb3, 0xa7, 0xab, 0xd5, 0x2b, 0x49, 0x2e, 0x98, 0xc6, 0x9a, 0x54, 0xe1, 0xac, 0x65, 0xfb, - 0xb4, 0xd6, 0xf5, 0xe8, 0x5a, 0xd3, 0x76, 0x3c, 0x7a, 0xc5, 0xf1, 0x19, 0x3b, 0x19, 0x13, 0x51, - 0xee, 0x81, 0xb3, 0x6b, 0x69, 0x44, 0x98, 0x5e, 0xd6, 0xf8, 0x61, 0x0e, 0xc6, 0xa3, 0xfe, 0x6a, - 0xe2, 0x03, 0xb4, 0x96, 0x56, 0xaa, 0x62, 0x2b, 0x91, 0x2b, 0xfc, 0xb5, 0xcc, 0x6e, 0x70, 0xc1, - 0x26, 0xd4, 0x97, 0x42, 0x18, 0x46, 0xc4, 0x1c, 0x21, 0xe4, 0xf6, 0x04, 0xe4, 0x1b, 0x8e, 0x57, - 0xa3, 0x72, 0x0f, 0xd5, 0xab, 0x64, 0x85, 0x01, 0x51, 0xe0, 0x8c, 0x4f, 0x73, 0x10, 0x91, 0x40, - 0xfe, 0x3d, 0x4c, 0x30, 0x19, 0x57, 0xbd, 0xed, 0x58, 0x6b, 0x2a, 0x99, 0x5b, 0xa3, 0x39, 0x55, - 0xce, 0x4a, 0xf9, 0x13, 0x31, 0x30, 0xc6, 0xe5, 0x91, 0x7f, 0x09, 0x45, 0xb3, 0x5e, 0xf7, 0xa8, - 0xef, 0x53, 0x71, 0xc4, 0x14, 0x85, 0x5b, 0x6f, 0x41, 0x01, 0x31, 0xc4, 0xb3, 0x65, 0xd8, 0xaa, - 0x37, 0x7c, 0x36, 0xb3, 0xa5, 0x85, 0xa6, 0x97, 0x21, 0x13, 0xc2, 0xe0, 0xa8, 0x29, 0x8c, 0x6f, - 0x8f, 0x40, 0x5c, 0x36, 0xa9, 0xc3, 0xe4, 0x8e, 0xb7, 0xbd, 0xc8, 0x5d, 0x8f, 0x59, 0x9c, 0xc0, - 0xa7, 0x0f, 0x0f, 0x66, 0x27, 0xaf, 0xc6, 0x39, 0x60, 0x92, 0xa5, 0x94, 0x72, 0x95, 0xee, 0x07, - 0xe6, 0x76, 0x96, 0x0d, 0x53, 0x49, 0x89, 0x72, 0xc0, 0x24, 0x4b, 0xf2, 0x22, 0x94, 0x76, 0xbc, - 0x6d, 0xb5, 0xc8, 0x93, 0x9e, 0xd7, 0xab, 0x21, 0x0a, 0xa3, 0x74, 0xac, 0x0b, 0x77, 0xbc, 0x6d, - 0xb6, 0x29, 0xaa, 0xe8, 0xab, 0xee, 0xc2, 0xab, 0x12, 0x8e, 0x9a, 0x82, 0xb8, 0x40, 0x76, 0x54, - 0xef, 0x69, 0x47, 0xab, 0xdc, 0x8b, 0x8e, 0xee, 0xa7, 0x3d, 0xc7, 0x0e, 0xd3, 0xab, 0x3d, 0x7c, - 0x30, 0x85, 0x37, 0xf9, 0x0a, 0x9c, 0xdf, 0xf1, 0xb6, 0xe5, 0x51, 0xb1, 0xe9, 0x59, 0x76, 0xcd, - 0x72, 0x63, 0x61, 0x57, 0x7d, 0x9c, 0x5c, 0x4d, 0x27, 0xc3, 0x7e, 0xe5, 0x8d, 0xef, 0xb0, 0x75, - 0x1c, 0x89, 0xaa, 0xdd, 0x2f, 0x9e, 0xd1, 0x80, 0xb1, 0x16, 0x35, 0xeb, 0xd4, 0x53, 0xba, 0xcf, - 0xcb, 0xd9, 0x56, 0x05, 0xe7, 0x11, 0x6a, 0x66, 0xe2, 0xdb, 0x47, 0xc5, 0xdc, 0xd8, 0x80, 0x51, - 0x01, 0x3b, 0x82, 0x1d, 0xa4, 0x4f, 0xc2, 0xa1, 0x7b, 0xb8, 0xf2, 0x3e, 0xce, 0x41, 0x91, 0x9b, - 0xd3, 0x4d, 0xa6, 0x53, 0xeb, 0x22, 0xc3, 0xf7, 0x38, 0x3c, 0x1b, 0x30, 0x26, 0xce, 0x7d, 0x9f, - 0x9f, 0x49, 0x59, 0xdb, 0x2a, 0x72, 0x55, 0xc2, 0xb6, 0x0a, 0x9d, 0xc2, 0x47, 0xc5, 0xdc, 0xf8, - 0x9b, 0x1c, 0x8c, 0xae, 0xd9, 0x6e, 0xf7, 0xd7, 0x24, 0xad, 0x62, 0x1d, 0x46, 0x98, 0x25, 0x14, - 0x4f, 0xde, 0x19, 0xaf, 0x3c, 0x19, 0x4d, 0xdc, 0x29, 0xc7, 0x13, 0x77, 0xd0, 0xdc, 0x53, 0x6e, - 0x62, 0x51, 0xe6, 0x4b, 0x85, 0x8f, 0xff, 0xef, 0xec, 0x23, 0x1f, 0xfd, 0xe4, 0xd2, 0x23, 0x46, - 0x1b, 0x46, 0xae, 0x59, 0xf6, 0xce, 0xd1, 0xe6, 0x89, 0x5f, 0x73, 0xdc, 0x9e, 0x79, 0x52, 0x65, - 0x40, 0x14, 0x38, 0x35, 0xff, 0x87, 0xd3, 0xe7, 0xbf, 0xf1, 0xb5, 0x1c, 0x4c, 0xaf, 0xd3, 0x8e, - 0x63, 0x7d, 0x60, 0x86, 0x5e, 0x6e, 0x56, 0xa8, 0x65, 0x05, 0xd2, 0x45, 0xad, 0x0b, 0x5d, 0xb1, - 0x02, 0x64, 0xf0, 0xfb, 0xe8, 0xa2, 0x3c, 0x54, 0xc9, 0xb6, 0xca, 0xeb, 0xe1, 0x9e, 0x15, 0x86, - 0x2a, 0x15, 0x02, 0x43, 0x1a, 0xe3, 0xb7, 0x73, 0x30, 0x26, 0x2a, 0x41, 0x15, 0xef, 0x5c, 0x1f, - 0xde, 0xb7, 0x21, 0xcf, 0xcb, 0xc9, 0xdd, 0xf6, 0x4b, 0xd9, 0x0c, 0x34, 0xc6, 0x41, 0x68, 0x64, - 0xfc, 0x27, 0x0a, 0x9e, 0x4c, 0x6d, 0xee, 0x98, 0xef, 0x2f, 0x68, 0x9f, 0xbe, 0x56, 0x9b, 0xd7, - 0x39, 0x14, 0x25, 0xd6, 0xf8, 0x68, 0x18, 0x0a, 0xca, 0x75, 0x44, 0xbe, 0x9e, 0x83, 0x92, 0x69, - 0xdb, 0x4e, 0x60, 0x0a, 0xcf, 0x8a, 0x98, 0xe4, 0xd7, 0x33, 0x55, 0x4c, 0x31, 0x9d, 0x5b, 0x08, - 0x19, 0x2e, 0xdb, 0x81, 0xb7, 0x1f, 0x6e, 0xfa, 0x11, 0x0c, 0x46, 0xe5, 0x92, 0xf7, 0x60, 0xb4, - 0x6d, 0x6e, 0xd3, 0xb6, 0x9a, 0xf3, 0x6b, 0x83, 0xd5, 0xe0, 0x1a, 0xe7, 0x25, 0x84, 0xeb, 0x7e, - 0x10, 0x40, 0x94, 0x82, 0x66, 0x5e, 0x85, 0xa9, 0x64, 0x45, 0xc9, 0x54, 0x64, 0xfc, 0xc4, 0x90, - 0x9d, 0x89, 0x6d, 0x67, 0x6a, 0xc2, 0x0f, 0xbd, 0x94, 0x9b, 0xf9, 0x22, 0x94, 0x22, 0x62, 0x8e, - 0x53, 0xd4, 0x78, 0x13, 0x4a, 0xeb, 0x34, 0xf0, 0xac, 0x1a, 0x67, 0x70, 0xbf, 0x59, 0x73, 0xa4, - 0x1d, 0xf5, 0x03, 0x36, 0x09, 0x19, 0x4b, 0x9f, 0x38, 0x00, 0xae, 0xe7, 0x74, 0x68, 0xd0, 0xa2, - 0x5d, 0x35, 0xa2, 0xd9, 0x94, 0xbf, 0x4d, 0xcd, 0x46, 0xf8, 0x02, 0xc2, 0x6f, 0x8c, 0x88, 0x30, - 0x9e, 0x81, 0xfc, 0x7a, 0x37, 0xa0, 0xef, 0xdf, 0x7f, 0xd5, 0x1b, 0xb7, 0x61, 0x9c, 0x93, 0x5e, - 0x71, 0xda, 0x6c, 0x43, 0x61, 0x6d, 0xeb, 0xb0, 0xef, 0xa4, 0xdd, 0xc4, 0x89, 0x50, 0xe0, 0xd8, - 0xcc, 0x6e, 0x39, 0xed, 0x3a, 0xf5, 0x64, 0x0f, 0xe8, 0x11, 0xbd, 0xc2, 0xa1, 0x28, 0xb1, 0xc6, - 0xcf, 0x73, 0x50, 0xe2, 0x05, 0xe5, 0x46, 0xd0, 0x86, 0xb1, 0x96, 0x90, 0x23, 0x7b, 0x21, 0x9b, - 0xb7, 0x3f, 0x5a, 0xe1, 0xc8, 0x21, 0x29, 0x00, 0xa8, 0x44, 0x30, 0x69, 0x7b, 0xa6, 0x15, 0x30, - 0x69, 0x43, 0x27, 0x2e, 0xed, 0x96, 0xe0, 0x8c, 0x4a, 0x84, 0xf1, 0x3b, 0x53, 0x00, 0xd7, 0x9d, - 0x3a, 0x95, 0x4d, 0x9d, 0x81, 0x21, 0xab, 0x2e, 0x3b, 0x11, 0x64, 0xa1, 0xa1, 0xb5, 0x25, 0x1c, - 0xb2, 0xea, 0x7a, 0x54, 0x86, 0xfa, 0xee, 0xc5, 0x2f, 0x42, 0xa9, 0x6e, 0xf9, 0x6e, 0xdb, 0xdc, - 0xbf, 0x9e, 0xa2, 0xa9, 0x2d, 0x85, 0x28, 0x8c, 0xd2, 0x91, 0x67, 0x65, 0x64, 0x53, 0x68, 0x69, - 0xe5, 0x44, 0x64, 0xb3, 0xc0, 0xaa, 0x17, 0x09, 0x6a, 0xbe, 0x04, 0xe3, 0xca, 0x37, 0xc8, 0xa5, - 0xe4, 0x79, 0xa9, 0x33, 0x2a, 0x7a, 0xb2, 0x15, 0xc1, 0x61, 0x8c, 0x32, 0xe9, 0xbb, 0x1c, 0x7d, - 0x28, 0xbe, 0xcb, 0x25, 0x98, 0xf2, 0x03, 0xc7, 0xa3, 0x75, 0x45, 0xb1, 0xb6, 0x54, 0x26, 0xb1, - 0x86, 0x4e, 0x55, 0x13, 0x78, 0xec, 0x29, 0x41, 0x36, 0xe1, 0xcc, 0x5e, 0x22, 0x68, 0xcc, 0x1b, - 0x7f, 0x9a, 0x73, 0xba, 0x20, 0x39, 0x9d, 0xb9, 0x95, 0x42, 0x83, 0xa9, 0x25, 0xc9, 0xcb, 0x30, - 0xa1, 0xaa, 0xc9, 0x8f, 0xca, 0xf2, 0x19, 0xce, 0x4a, 0xdb, 0x32, 0x5b, 0x51, 0x24, 0xc6, 0x69, - 0xc9, 0xe7, 0x21, 0xef, 0xb6, 0x4c, 0x9f, 0x4a, 0x57, 0xa7, 0xf2, 0x23, 0xe5, 0x37, 0x19, 0xf0, - 0xee, 0xc1, 0x6c, 0x91, 0x8d, 0x19, 0xff, 0x40, 0x41, 0x48, 0x2e, 0x03, 0x6c, 0x3b, 0x5d, 0xbb, - 0x6e, 0x7a, 0xfb, 0x6b, 0x4b, 0x32, 0xd2, 0xa1, 0x75, 0x98, 0x8a, 0xc6, 0x60, 0x84, 0x2a, 0x1a, - 0x5e, 0x2e, 0xde, 0x3b, 0xbc, 0x4c, 0x6e, 0x43, 0x91, 0x47, 0x85, 0x68, 0x7d, 0x21, 0x90, 0x6e, - 0xcb, 0xe3, 0x04, 0x10, 0xf4, 0xc9, 0x5c, 0x55, 0x4c, 0x30, 0xe4, 0x47, 0xde, 0x01, 0x68, 0x58, - 0xb6, 0xe5, 0xb7, 0x38, 0xf7, 0xd2, 0xb1, 0xb9, 0xeb, 0x76, 0xae, 0x68, 0x2e, 0x18, 0xe1, 0x48, - 0xde, 0x86, 0x69, 0xea, 0x07, 0x56, 0xc7, 0x0c, 0x68, 0x5d, 0x27, 0x98, 0x94, 0x79, 0x20, 0x4c, - 0xc7, 0xe5, 0x96, 0x93, 0x04, 0x77, 0xd3, 0x80, 0xd8, 0xcb, 0x88, 0xbc, 0x04, 0x05, 0xd7, 0x73, - 0x9a, 0xcc, 0xb0, 0x2c, 0xcf, 0xc4, 0xa6, 0x4b, 0x61, 0x53, 0xc2, 0xef, 0x46, 0x7e, 0xa3, 0xa6, - 0x26, 0x7f, 0x9d, 0x83, 0x69, 0x8f, 0xfa, 0x4e, 0xd7, 0xab, 0x51, 0x5f, 0x57, 0xec, 0x2c, 0xdf, - 0x94, 0x6e, 0x66, 0x4c, 0x74, 0x56, 0x3b, 0xcd, 0x1c, 0x26, 0x19, 0x8b, 0x53, 0x96, 0xaa, 0x06, - 0xf7, 0xe0, 0xef, 0xa6, 0x01, 0xbf, 0xf6, 0xd3, 0xd9, 0xd9, 0xde, 0xdc, 0x7a, 0xcd, 0x9c, 0xcd, - 0xf4, 0xff, 0xf4, 0xd3, 0xd9, 0x29, 0xf5, 0x1d, 0xf6, 0x53, 0x4f, 0xbb, 0xd8, 0x11, 0xe2, 0x3a, - 0xf5, 0xb5, 0x4d, 0xe9, 0x5f, 0xd6, 0x47, 0xc8, 0x26, 0x03, 0xa2, 0xc0, 0x91, 0xa7, 0xa1, 0x50, - 0x37, 0x69, 0xc7, 0xb1, 0x69, 0xbd, 0x3c, 0x11, 0xba, 0xde, 0x96, 0x24, 0x0c, 0x35, 0x96, 0xbc, - 0x0b, 0xa3, 0x16, 0x57, 0xff, 0xcb, 0xa7, 0xf8, 0x84, 0xc9, 0x66, 0x66, 0x08, 0x0b, 0x42, 0x24, - 0x24, 0x89, 0xdf, 0x28, 0xd9, 0x92, 0x1a, 0x8c, 0x39, 0xdd, 0x80, 0x4b, 0x98, 0xe4, 0x12, 0xb2, - 0x39, 0xac, 0x37, 0x04, 0x0f, 0x91, 0x6d, 0x2b, 0x3f, 0x50, 0x71, 0x66, 0xed, 0xad, 0xb5, 0xac, - 0x76, 0xdd, 0xa3, 0x76, 0x79, 0x8a, 0xfb, 0x2c, 0x78, 0x7b, 0x17, 0x25, 0x0c, 0x35, 0x96, 0xfc, - 0x2b, 0x98, 0x70, 0xba, 0x01, 0x5f, 0xbd, 0x6c, 0x94, 0xfd, 0xf2, 0x34, 0x27, 0x9f, 0x66, 0x7b, - 0xc9, 0x46, 0x14, 0x81, 0x71, 0x3a, 0xb6, 0x9f, 0xb7, 0x1c, 0x3f, 0x60, 0x1f, 0x7c, 0x4b, 0x3b, - 0x17, 0xdf, 0xcf, 0xaf, 0x44, 0x70, 0x18, 0xa3, 0x24, 0xdf, 0xca, 0xc1, 0x74, 0x27, 0xa9, 0xb6, - 0x97, 0xcf, 0xf3, 0xce, 0x58, 0xc9, 0xa8, 0xf8, 0x25, 0xb8, 0x89, 0xd0, 0x62, 0x0f, 0x18, 0x7b, - 0xe5, 0x92, 0xff, 0x93, 0x83, 0xb3, 0xfe, 0xbe, 0x5d, 0x6b, 0x79, 0x8e, 0x1d, 0xaf, 0xd1, 0xa3, - 0xbc, 0x46, 0xd7, 0xb3, 0xaf, 0x98, 0x34, 0xae, 0x95, 0x47, 0x0f, 0x0f, 0x66, 0xcf, 0xa6, 0xa2, - 0x30, 0xbd, 0x1e, 0x33, 0x4b, 0x70, 0x2e, 0x7d, 0xd5, 0xdd, 0x4f, 0xe9, 0x1c, 0x8e, 0x2a, 0x9d, - 0x2b, 0xf0, 0x68, 0xdf, 0x4a, 0xb1, 0x2d, 0x5b, 0x29, 0x2f, 0xb9, 0xf8, 0x96, 0xdd, 0xa3, 0x79, - 0x9c, 0x82, 0xf1, 0xe8, 0xbd, 0x07, 0x1e, 0x5c, 0x88, 0xe4, 0x9b, 0x12, 0x07, 0x8a, 0x4e, 0xf5, - 0x24, 0x82, 0x0b, 0x1b, 0xd5, 0x9e, 0xe0, 0x82, 0x06, 0x61, 0x28, 0xe3, 0x7e, 0xc1, 0x85, 0xdf, - 0x1b, 0x82, 0xb0, 0x1c, 0x79, 0x16, 0x0a, 0xd4, 0xae, 0xbb, 0x8e, 0x65, 0x07, 0xc9, 0xb0, 0xcc, - 0xb2, 0x84, 0xa3, 0xa6, 0x88, 0x84, 0x22, 0x86, 0xee, 0x19, 0x8a, 0x68, 0xc1, 0xa4, 0xc9, 0xd3, - 0x0f, 0x42, 0x1f, 0xf2, 0xf0, 0xb1, 0x7c, 0xc8, 0x3a, 0x71, 0x34, 0xce, 0x05, 0x93, 0x6c, 0x99, - 0x24, 0x3f, 0x2c, 0xce, 0x25, 0x8d, 0x64, 0x92, 0x54, 0x8d, 0x73, 0xc1, 0x24, 0x5b, 0xe3, 0x0f, - 0x86, 0x40, 0xed, 0x2b, 0xbf, 0x0e, 0x9e, 0x10, 0x62, 0xc0, 0xa8, 0x47, 0xfd, 0x6e, 0x3b, 0x90, - 0xfa, 0x2f, 0xdf, 0xbb, 0x91, 0x43, 0x50, 0x62, 0xd8, 0xb6, 0x4a, 0xdf, 0xb7, 0x82, 0x45, 0xa7, - 0xae, 0xb4, 0x5e, 0xbe, 0xad, 0x2e, 0x4b, 0x18, 0x6a, 0xac, 0xb1, 0x07, 0x13, 0xac, 0x5d, 0xed, - 0x36, 0x6d, 0x57, 0x03, 0xea, 0xfa, 0xa4, 0x01, 0x79, 0x9f, 0xfd, 0x18, 0xc8, 0x14, 0x09, 0x73, - 0x3a, 0xa8, 0x1b, 0x71, 0x99, 0x30, 0xbe, 0x28, 0xd8, 0x1b, 0x7f, 0x35, 0x04, 0x45, 0xdd, 0xa3, - 0x47, 0xf0, 0xc3, 0x7c, 0x01, 0xc6, 0xea, 0xb4, 0x61, 0xb2, 0x76, 0x8b, 0x39, 0x7e, 0x41, 0x04, - 0x67, 0x39, 0xe8, 0xee, 0xc1, 0xec, 0xc4, 0x9a, 0x1d, 0x7c, 0xe1, 0x05, 0x95, 0x62, 0x8b, 0x8a, - 0x98, 0xa9, 0x92, 0x51, 0xa7, 0xdd, 0x4c, 0xd4, 0x61, 0x94, 0x28, 0x23, 0x3d, 0x78, 0x3b, 0x50, - 0xe4, 0x3f, 0x56, 0xd4, 0xbd, 0x9a, 0xac, 0x73, 0xe8, 0xa6, 0xe2, 0x22, 0x1c, 0xf1, 0xfa, 0x13, - 0x43, 0xfe, 0x89, 0xfb, 0x30, 0xf9, 0x23, 0xdd, 0x87, 0xf9, 0x1c, 0x8c, 0x50, 0xbb, 0xdb, 0xe1, - 0x39, 0x07, 0x45, 0xbe, 0x4f, 0x8f, 0x2c, 0xdb, 0xdd, 0x4e, 0x6f, 0x83, 0x38, 0x99, 0xb1, 0x02, - 0x4c, 0xc7, 0x58, 0x5d, 0x24, 0xaf, 0x40, 0xc1, 0x97, 0xbb, 0xa1, 0xec, 0xe8, 0xcf, 0xe8, 0x50, - 0xaf, 0x84, 0x33, 0x1e, 0x9c, 0x58, 0x01, 0x50, 0x17, 0x31, 0xbe, 0x31, 0x02, 0x11, 0xcb, 0xfa, - 0x08, 0x43, 0x56, 0x4f, 0x38, 0x4b, 0x5e, 0xcf, 0xea, 0x2c, 0x51, 0x1e, 0x08, 0x31, 0xd7, 0xe3, - 0xfe, 0x11, 0x56, 0x8f, 0x16, 0x6d, 0xbb, 0x72, 0x7c, 0x75, 0x3d, 0xae, 0xd0, 0xb6, 0x8b, 0x1c, - 0xa3, 0xd3, 0x12, 0x46, 0xfa, 0xa6, 0x25, 0xdc, 0x86, 0x7c, 0xd3, 0xec, 0x36, 0xa9, 0x74, 0xc8, - 0x67, 0x73, 0x78, 0xf1, 0x08, 0xab, 0x70, 0x78, 0xf1, 0x9f, 0x28, 0x78, 0xb2, 0xf9, 0xd4, 0x52, - 0x3e, 0x64, 0x69, 0x14, 0x66, 0x9b, 0x4f, 0xda, 0x13, 0x2d, 0xe6, 0x93, 0xfe, 0xc4, 0x90, 0x3f, - 0xd3, 0xda, 0x6a, 0x22, 0x59, 0x55, 0x46, 0x07, 0xbf, 0x9c, 0x31, 0xbb, 0x82, 0xf3, 0x10, 0x5a, - 0x9b, 0xfc, 0x40, 0xc5, 0xd9, 0x98, 0x87, 0x52, 0xe4, 0x5a, 0x08, 0xeb, 0x5f, 0x9d, 0x8a, 0x19, - 0xe9, 0xdf, 0x25, 0x33, 0x30, 0x91, 0x63, 0x8c, 0xef, 0x0e, 0x83, 0xd6, 0x91, 0xa3, 0x79, 0x13, - 0x66, 0x2d, 0x92, 0x73, 0x1f, 0x4b, 0xe2, 0x72, 0x6c, 0x94, 0x58, 0x66, 0x49, 0x76, 0xa8, 0xd7, - 0xd4, 0x27, 0xb9, 0x5c, 0xff, 0xda, 0x92, 0x5c, 0x8f, 0x22, 0x31, 0x4e, 0xcb, 0xce, 0xd1, 0x8e, - 0x69, 0x5b, 0x0d, 0xea, 0x07, 0xc9, 0x40, 0xd7, 0xba, 0x84, 0xa3, 0xa6, 0x20, 0xab, 0x30, 0xed, - 0xd3, 0x60, 0x63, 0xcf, 0xa6, 0x9e, 0x4e, 0x2e, 0x93, 0xd9, 0x86, 0x8f, 0x2a, 0xc3, 0xa1, 0x9a, - 0x24, 0xc0, 0xde, 0x32, 0xdc, 0x2a, 0x17, 0x89, 0x7e, 0x3a, 0x69, 0x4b, 0x2e, 0xee, 0xd0, 0x2a, - 0x4f, 0xe0, 0xb1, 0xa7, 0x04, 0xe3, 0xd2, 0x30, 0xad, 0x76, 0xd7, 0xa3, 0x21, 0x97, 0xd1, 0x38, - 0x97, 0x95, 0x04, 0x1e, 0x7b, 0x4a, 0xf0, 0x18, 0x79, 0xdb, 0x6c, 0xfa, 0xe5, 0xb1, 0x48, 0x8c, - 0x9c, 0x01, 0x50, 0xc0, 0x8d, 0x8f, 0x87, 0x60, 0x02, 0x69, 0xe0, 0xed, 0xeb, 0x5e, 0x7b, 0x13, - 0xf2, 0x6d, 0x9e, 0x78, 0x98, 0xcb, 0x78, 0xc3, 0x81, 0x0b, 0x11, 0x99, 0x89, 0x82, 0x13, 0x59, - 0x82, 0x92, 0xc7, 0x64, 0xc8, 0xb4, 0x50, 0x31, 0x86, 0x46, 0x78, 0xfd, 0x4d, 0xa3, 0xee, 0xc6, - 0x3f, 0x31, 0x5a, 0x8c, 0xd8, 0x30, 0xb6, 0x2d, 0x2e, 0x6d, 0x48, 0xc5, 0x25, 0xdb, 0xf4, 0x96, - 0x17, 0x3f, 0x78, 0x3c, 0x4d, 0xdd, 0x02, 0xb9, 0x1b, 0xfe, 0x44, 0x25, 0xc4, 0xf8, 0x38, 0x07, - 0x10, 0xde, 0x7b, 0x23, 0x3b, 0x50, 0xf0, 0x9f, 0x8f, 0xa9, 0x8c, 0x19, 0x33, 0xaa, 0x24, 0x93, - 0x48, 0xae, 0x8d, 0x84, 0xa0, 0x16, 0x70, 0x3f, 0x7d, 0xf1, 0xd3, 0x61, 0xd0, 0xa5, 0x1e, 0x90, - 0xba, 0xf8, 0x14, 0x53, 0x35, 0x9a, 0xe1, 0x75, 0x14, 0x4d, 0x87, 0x1c, 0x8a, 0x12, 0xcb, 0xd4, - 0x0d, 0x15, 0xf0, 0x97, 0xab, 0x85, 0xab, 0x1b, 0x2a, 0x37, 0x00, 0x35, 0x36, 0x4d, 0x01, 0xcd, - 0x3f, 0x34, 0x05, 0x74, 0xf4, 0x81, 0x28, 0xa0, 0xcc, 0x26, 0xf1, 0x9c, 0x36, 0x5d, 0xc0, 0xeb, - 0xd2, 0x5d, 0xa5, 0x6d, 0x12, 0x14, 0x60, 0x54, 0x78, 0xf2, 0x22, 0x94, 0xba, 0x3e, 0xad, 0x2e, - 0x5d, 0x5d, 0xf4, 0x68, 0xdd, 0x97, 0xb9, 0x14, 0xda, 0x81, 0x79, 0x23, 0x44, 0x61, 0x94, 0xce, - 0xf8, 0x8f, 0x39, 0x38, 0x55, 0xad, 0x79, 0x96, 0x1b, 0xe8, 0xcd, 0xf3, 0x3a, 0xbf, 0xee, 0x13, - 0x98, 0x6c, 0x29, 0xca, 0xa9, 0xf8, 0x78, 0x9f, 0x30, 0xb2, 0x20, 0x8a, 0x5d, 0x64, 0x13, 0x20, - 0x0c, 0x59, 0xb0, 0xa1, 0x16, 0xdb, 0x73, 0x72, 0x4a, 0x54, 0x39, 0x14, 0x25, 0xd6, 0xb8, 0x03, - 0x53, 0x55, 0xda, 0x31, 0xdd, 0x16, 0x4f, 0xeb, 0x10, 0x1e, 0xe5, 0x79, 0x28, 0xfa, 0x0a, 0x96, - 0xbc, 0x35, 0xa7, 0x89, 0x31, 0xa4, 0x21, 0x4f, 0x0a, 0x87, 0xb7, 0x8a, 0x07, 0x17, 0xc5, 0x31, - 0x23, 0xbc, 0xe4, 0x3e, 0x2a, 0x9c, 0xb1, 0x07, 0xe3, 0x61, 0x71, 0xda, 0x20, 0x4d, 0x98, 0xac, - 0x45, 0xa2, 0xe2, 0x48, 0x1b, 0xc7, 0xbe, 0xe8, 0xc4, 0x33, 0x02, 0x16, 0xe3, 0x4c, 0x30, 0xc9, - 0xd5, 0xf8, 0xbb, 0x1c, 0x4c, 0x6a, 0xc9, 0xd2, 0xf2, 0x74, 0x93, 0x4e, 0xfa, 0xe5, 0x8c, 0xb9, - 0x94, 0xf1, 0xce, 0xbb, 0x87, 0xa3, 0xde, 0x4d, 0x3a, 0xea, 0x4f, 0x5a, 0x62, 0x8f, 0xc9, 0xfc, - 0xff, 0x86, 0xa0, 0xa0, 0x93, 0x39, 0xdf, 0x84, 0x3c, 0x3f, 0xef, 0x07, 0x3b, 0x03, 0xb8, 0xee, - 0x80, 0x82, 0x13, 0x63, 0xc9, 0xbd, 0x9e, 0x99, 0x2f, 0xce, 0x15, 0x85, 0x19, 0x61, 0x7a, 0x01, - 0x0a, 0x4e, 0xe4, 0x2a, 0x0c, 0x53, 0xbb, 0x2e, 0x0f, 0x83, 0xe3, 0x33, 0xe4, 0xf7, 0x42, 0x97, - 0xed, 0x3a, 0x32, 0x2e, 0xfc, 0x46, 0x90, 0xe3, 0x75, 0xcc, 0x40, 0xaa, 0x8a, 0xe1, 0x8d, 0x20, - 0x0e, 0x45, 0x89, 0x35, 0xfe, 0xcb, 0x10, 0x8c, 0x56, 0xbb, 0xdb, 0xec, 0x58, 0xfb, 0x9f, 0x39, - 0x38, 0x9d, 0xf4, 0x7f, 0x87, 0x13, 0xf3, 0xca, 0x89, 0xdc, 0x58, 0x43, 0xda, 0xa8, 0x3c, 0x26, - 0xab, 0x72, 0x3a, 0x05, 0x89, 0x69, 0x35, 0x60, 0x6a, 0x67, 0x98, 0xba, 0x3d, 0x74, 0x22, 0xa9, - 0xdb, 0x13, 0xfd, 0xd2, 0xb6, 0x8d, 0x3f, 0x1e, 0x01, 0x10, 0x3d, 0xb2, 0xe1, 0x06, 0x47, 0xb1, - 0x0d, 0x5e, 0x82, 0x71, 0xf5, 0x42, 0xc7, 0xf5, 0x30, 0xe8, 0xa3, 0xbd, 0x72, 0xab, 0x11, 0x1c, - 0xc6, 0x28, 0x99, 0xc5, 0x44, 0xed, 0xc0, 0xdb, 0x17, 0x87, 0xdd, 0x48, 0xdc, 0x62, 0x5a, 0xd6, - 0x18, 0x8c, 0x50, 0x91, 0xb9, 0x98, 0x5f, 0x40, 0xa4, 0x77, 0x9f, 0xba, 0x87, 0x4d, 0xff, 0x32, - 0x4c, 0xe8, 0xaf, 0x15, 0xab, 0xad, 0x32, 0x66, 0xb4, 0xca, 0xb9, 0x19, 0x45, 0x62, 0x9c, 0x96, - 0xbc, 0x0a, 0xa7, 0xe2, 0x79, 0x98, 0xf2, 0x58, 0x38, 0x27, 0x4b, 0x9f, 0x8a, 0xa7, 0x6f, 0x62, - 0x82, 0x9a, 0xcd, 0xc2, 0xba, 0xb7, 0x8f, 0x5d, 0x5b, 0x9e, 0x0f, 0x7a, 0x16, 0x2e, 0x71, 0x28, - 0x4a, 0x2c, 0xeb, 0x42, 0x56, 0x92, 0x7a, 0x02, 0xce, 0x63, 0x18, 0x85, 0xb0, 0x0b, 0xab, 0x11, - 0x1c, 0xc6, 0x28, 0x99, 0x04, 0x69, 0x98, 0x41, 0x7c, 0x9e, 0x27, 0x4c, 0x2b, 0x17, 0x4e, 0x39, - 0x71, 0x5d, 0x58, 0x04, 0x27, 0x5e, 0x38, 0xe2, 0x85, 0x90, 0x58, 0x59, 0x91, 0xe8, 0x98, 0x50, - 0x9d, 0x13, 0xfc, 0x8d, 0xd3, 0x30, 0x5d, 0xed, 0xba, 0x6e, 0xdb, 0xa2, 0x75, 0x6d, 0x2e, 0x1b, - 0xaf, 0xc1, 0xa4, 0xbc, 0xe2, 0xa3, 0x8f, 0xbf, 0x63, 0xdd, 0xd8, 0x35, 0x0e, 0xd8, 0x7e, 0x1e, - 0xf7, 0x27, 0x12, 0x3b, 0x79, 0x68, 0x65, 0xf5, 0x75, 0x44, 0x8f, 0x28, 0xb1, 0x42, 0x52, 0xcf, - 0xbc, 0xdb, 0x2a, 0x82, 0x3c, 0x48, 0x4e, 0x05, 0x0f, 0xba, 0x8a, 0x5d, 0x30, 0x1a, 0x79, 0x36, - 0x7e, 0x91, 0x83, 0x74, 0x57, 0x2d, 0x79, 0xaf, 0xb7, 0x99, 0x4b, 0x83, 0x35, 0x53, 0xba, 0x87, - 0xfb, 0xb7, 0xd4, 0x8c, 0xb7, 0xf4, 0xf5, 0xec, 0x2d, 0x95, 0xa2, 0x7a, 0xdb, 0xfb, 0xf7, 0x39, - 0x28, 0x6d, 0x6d, 0x5d, 0xd3, 0xf6, 0x0a, 0xc2, 0x39, 0x5f, 0x5c, 0xd2, 0x5a, 0x68, 0x04, 0xd4, - 0x5b, 0x74, 0x3a, 0x6e, 0x9b, 0xea, 0xc9, 0x21, 0x6f, 0x4e, 0x55, 0x53, 0x29, 0xb0, 0x4f, 0x49, - 0xb2, 0x06, 0xa7, 0xa3, 0x18, 0x69, 0xae, 0xf1, 0x46, 0xe5, 0x65, 0x32, 0x6d, 0x2f, 0x1a, 0xd3, - 0xca, 0x24, 0x59, 0x49, 0x9b, 0x4d, 0xbe, 0xe8, 0xd2, 0xc3, 0x4a, 0xa2, 0x31, 0xad, 0x8c, 0xb1, - 0x01, 0xa5, 0xc8, 0x5b, 0x41, 0xe4, 0x75, 0x98, 0xaa, 0x39, 0x1d, 0xd7, 0xa3, 0xbe, 0x6f, 0x39, - 0xf6, 0x35, 0xba, 0x4b, 0xdb, 0xb2, 0xc9, 0xfc, 0x0a, 0xd6, 0x62, 0x02, 0x87, 0x3d, 0xd4, 0xc6, - 0xef, 0x3e, 0x06, 0xfa, 0xe2, 0xcf, 0x6f, 0xae, 0x0f, 0x65, 0x0a, 0xc1, 0xd7, 0x74, 0x28, 0x2e, - 0x3f, 0x78, 0x28, 0x4e, 0xef, 0xc5, 0x89, 0x70, 0x5c, 0x33, 0x0c, 0xc7, 0x8d, 0x9e, 0x40, 0x38, - 0x4e, 0x2b, 0x81, 0x3d, 0x21, 0xb9, 0x6f, 0xe6, 0x60, 0xdc, 0x76, 0xea, 0x54, 0xe9, 0xcc, 0xdc, - 0x6d, 0x50, 0xba, 0xbc, 0x31, 0x50, 0x27, 0x8a, 0x38, 0x93, 0xe4, 0x28, 0x22, 0xb1, 0xfa, 0xa0, - 0x8a, 0xa2, 0x30, 0x26, 0x9a, 0xac, 0x40, 0xc1, 0x6c, 0x34, 0x2c, 0xdb, 0x0a, 0xf6, 0xe5, 0x0d, - 0xa6, 0x0b, 0x69, 0xaa, 0xfe, 0x82, 0xa4, 0x11, 0x66, 0xa7, 0xfa, 0x42, 0x5d, 0x96, 0xd9, 0xed, - 0xfa, 0xc2, 0x70, 0x71, 0x00, 0xbb, 0x5d, 0x25, 0x6e, 0x45, 0x9c, 0x48, 0xea, 0x72, 0x63, 0x78, - 0x7f, 0xd8, 0x80, 0x51, 0x11, 0xa5, 0x95, 0x6f, 0xfc, 0x70, 0xa7, 0xa5, 0x88, 0xe0, 0xa2, 0xc4, - 0x90, 0xa6, 0xf2, 0xb2, 0x97, 0x78, 0xe7, 0x56, 0x32, 0xc7, 0x28, 0xb4, 0xe3, 0x3e, 0xdd, 0xcd, - 0x4e, 0xde, 0x88, 0xda, 0x89, 0xe3, 0x47, 0xb1, 0x13, 0x27, 0xfa, 0xda, 0x88, 0x4d, 0x18, 0xf5, - 0xb9, 0x15, 0xca, 0x43, 0xd3, 0xa5, 0xcb, 0x8b, 0xd9, 0x0e, 0x92, 0x98, 0x21, 0x2b, 0x7a, 0x47, - 0xc0, 0x50, 0xb2, 0x27, 0x0e, 0x14, 0x54, 0xfc, 0x5c, 0x46, 0xb7, 0xb3, 0x99, 0x3e, 0x49, 0x97, - 0xa3, 0xba, 0xc7, 0x22, 0xa0, 0xa8, 0x85, 0x90, 0xdb, 0x30, 0x5c, 0x37, 0x9b, 0x32, 0xce, 0xfd, - 0x7a, 0xe6, 0x8b, 0x59, 0x4a, 0x0c, 0xb7, 0x2a, 0x96, 0x16, 0x56, 0x91, 0x71, 0x25, 0x3b, 0xe1, - 0xc5, 0xe5, 0xa9, 0x41, 0x0e, 0xe0, 0xb8, 0x0a, 0x24, 0x6c, 0xe6, 0x9e, 0xab, 0xcf, 0xcb, 0x30, - 0xb6, 0xeb, 0xb4, 0xbb, 0x1d, 0x19, 0x20, 0x2f, 0x5d, 0x9e, 0x49, 0x1b, 0xed, 0x9b, 0x9c, 0x24, - 0xdc, 0x04, 0xc4, 0xb7, 0x8f, 0xaa, 0x2c, 0xf9, 0x5a, 0x0e, 0x4e, 0xb1, 0xa5, 0xa3, 0xe7, 0x81, - 0x5f, 0x26, 0x03, 0xcc, 0xd4, 0x1b, 0x3e, 0x3b, 0x5a, 0xd5, 0x0c, 0xd3, 0x8a, 0xf0, 0x5a, 0x4c, - 0x02, 0x26, 0x24, 0x12, 0x17, 0x0a, 0xbe, 0x55, 0xa7, 0x35, 0xd3, 0xf3, 0xcb, 0xa7, 0x4f, 0x4c, - 0x7a, 0xe8, 0x72, 0x93, 0xbc, 0x51, 0x4b, 0x21, 0xff, 0x81, 0x3f, 0xbc, 0x23, 0x1f, 0xcd, 0x92, - 0x4f, 0xa5, 0x9d, 0x39, 0xc9, 0xa7, 0xd2, 0x4e, 0x8b, 0x57, 0x77, 0x62, 0x12, 0x30, 0x29, 0x92, - 0x7c, 0x35, 0x07, 0x67, 0xc5, 0x0d, 0xe6, 0xe4, 0xf5, 0xf5, 0xb3, 0x19, 0xed, 0x5c, 0x1e, 0xcc, - 0x5f, 0x48, 0x63, 0x89, 0xe9, 0x92, 0xc8, 0x87, 0x30, 0xe1, 0x45, 0x7d, 0xc2, 0x3c, 0x6f, 0x22, - 0xeb, 0x08, 0xc4, 0xbc, 0xcb, 0x22, 0x67, 0x23, 0x06, 0xc2, 0xb8, 0x2c, 0xf2, 0x1c, 0x94, 0x5c, - 0xb9, 0xb9, 0x59, 0x7e, 0x87, 0xa7, 0x5c, 0x0c, 0x8b, 0x43, 0x78, 0x33, 0x04, 0x63, 0x94, 0x86, - 0xdc, 0x80, 0x52, 0xe0, 0xb4, 0xa9, 0x27, 0x13, 0x84, 0xcb, 0x7c, 0xbe, 0x5c, 0x4c, 0x9b, 0xfc, - 0x5b, 0x9a, 0x2c, 0x74, 0xbd, 0x85, 0x30, 0x1f, 0xa3, 0x7c, 0x98, 0x25, 0xa8, 0xde, 0x37, 0xf0, - 0xb8, 0xa1, 0xfa, 0x68, 0xdc, 0x12, 0xac, 0x46, 0x91, 0x18, 0xa7, 0x25, 0xab, 0x30, 0xed, 0x7a, - 0x96, 0xe3, 0x59, 0xc1, 0xfe, 0x62, 0xdb, 0xf4, 0x7d, 0xce, 0x40, 0xe4, 0x48, 0xe9, 0x70, 0xc2, - 0x66, 0x92, 0x00, 0x7b, 0xcb, 0x90, 0xa7, 0xa1, 0xa0, 0x80, 0xe5, 0xc7, 0xb8, 0x7a, 0x37, 0x2e, - 0xf2, 0xab, 0x04, 0x0c, 0x35, 0xb6, 0xcf, 0x75, 0xcc, 0x0b, 0x59, 0xae, 0x63, 0x92, 0x3a, 0x5c, - 0x30, 0xbb, 0x81, 0xc3, 0x6f, 0x22, 0xc4, 0x8b, 0x6c, 0x39, 0x3b, 0xd4, 0x2e, 0x5f, 0xe2, 0xc7, - 0xdb, 0xa5, 0xc3, 0x83, 0xd9, 0x0b, 0x0b, 0xf7, 0xa0, 0xc3, 0x7b, 0x72, 0x21, 0x1d, 0x28, 0x50, - 0x79, 0xa5, 0xb4, 0xfc, 0x99, 0x01, 0xce, 0x95, 0xf8, 0xbd, 0x54, 0x15, 0xf0, 0x16, 0x30, 0xd4, - 0x22, 0xc8, 0x16, 0x94, 0x5a, 0x8e, 0x1f, 0x2c, 0xb4, 0x2d, 0xd3, 0xa7, 0x7e, 0xf9, 0x71, 0x3e, - 0x4f, 0x52, 0x8f, 0xc4, 0x2b, 0x8a, 0x2c, 0x9c, 0x26, 0x57, 0xc2, 0x92, 0x18, 0x65, 0x43, 0x28, - 0xf7, 0x36, 0x77, 0xf9, 0xa8, 0x39, 0x76, 0x40, 0xdf, 0x0f, 0xca, 0x17, 0x79, 0x5b, 0x9e, 0x4a, - 0xe3, 0xbc, 0xe9, 0xd4, 0xab, 0x71, 0x6a, 0xb1, 0x31, 0x24, 0x80, 0x98, 0xe4, 0xc9, 0x4c, 0x7e, - 0xd7, 0xa9, 0x57, 0x5d, 0x5a, 0xdb, 0x34, 0x83, 0x5a, 0xab, 0x3c, 0x1b, 0xf7, 0x9a, 0x6c, 0x46, - 0x70, 0x18, 0xa3, 0x24, 0x35, 0x18, 0xeb, 0x88, 0xbc, 0xeb, 0xf2, 0x13, 0x03, 0xa8, 0x8f, 0x32, - 0x77, 0x5b, 0x1c, 0x3e, 0xf2, 0x03, 0x15, 0x67, 0xf2, 0x3f, 0x72, 0x30, 0x99, 0x48, 0x0d, 0x2a, - 0x7f, 0x76, 0x90, 0x23, 0x2f, 0xce, 0xab, 0xf2, 0x14, 0xef, 0xa4, 0x38, 0xf0, 0x6e, 0x2f, 0x08, - 0x93, 0x95, 0x10, 0xad, 0xe7, 0x57, 0x1f, 0xca, 0x4f, 0x0e, 0xd4, 0x7a, 0xce, 0x43, 0xb5, 0x9e, - 0x7f, 0xa0, 0xe2, 0x4c, 0x9e, 0x81, 0xb1, 0xc0, 0xea, 0x50, 0xa7, 0x1b, 0x94, 0x9f, 0x8a, 0xc7, - 0x01, 0xb6, 0x04, 0x18, 0x15, 0x7e, 0xe6, 0x35, 0x98, 0xee, 0x51, 0x88, 0x8f, 0x95, 0x99, 0xff, - 0x33, 0x66, 0x00, 0x47, 0x4c, 0x90, 0x93, 0x36, 0xdc, 0x56, 0x61, 0x5a, 0x3e, 0xc2, 0xcb, 0xb4, - 0xa5, 0x76, 0x57, 0xbf, 0x49, 0x16, 0x09, 0x84, 0x62, 0x92, 0x00, 0x7b, 0xcb, 0xb0, 0x19, 0x5b, - 0x13, 0x8f, 0x52, 0x89, 0x2c, 0xe0, 0x91, 0xb8, 0x93, 0x6a, 0x31, 0x82, 0xc3, 0x18, 0xa5, 0xf1, - 0xff, 0x73, 0x30, 0x11, 0x3b, 0xb9, 0x4f, 0x3c, 0xe6, 0xb1, 0x02, 0xa4, 0x63, 0x79, 0x9e, 0xe3, - 0x09, 0xf5, 0x67, 0x9d, 0xed, 0x49, 0xbe, 0xbc, 0xf1, 0xcc, 0x6f, 0xda, 0xad, 0xf7, 0x60, 0x31, - 0xa5, 0x84, 0xf1, 0xcd, 0x61, 0x08, 0x93, 0x3b, 0xf4, 0xf5, 0xd2, 0x5c, 0xdf, 0xeb, 0xa5, 0xcf, - 0x42, 0xe1, 0x8e, 0xef, 0xd8, 0x9b, 0xe1, 0x25, 0x54, 0x3d, 0x14, 0x6f, 0x54, 0x37, 0xae, 0x73, - 0x4a, 0x4d, 0xc1, 0xa9, 0xdf, 0x5b, 0xb1, 0xda, 0x41, 0xef, 0x55, 0xcd, 0x37, 0xde, 0x14, 0x70, - 0xd4, 0x14, 0xfc, 0xe5, 0xab, 0x5d, 0xaa, 0x7d, 0x8e, 0xe1, 0xcb, 0x57, 0x0c, 0x88, 0x02, 0x47, - 0xe6, 0xa1, 0xa8, 0x5d, 0x96, 0xd2, 0x83, 0xaa, 0x7b, 0x4a, 0xbb, 0x36, 0x31, 0xa4, 0xe1, 0x9a, - 0x98, 0x74, 0xcb, 0x49, 0xeb, 0x73, 0x25, 0xa3, 0x0e, 0x9b, 0xf0, 0xed, 0x89, 0x6d, 0x5a, 0x81, - 0x51, 0x4b, 0x89, 0xa6, 0xfb, 0xe4, 0x8f, 0x91, 0xee, 0x63, 0x7c, 0x7d, 0x18, 0xc6, 0x6e, 0x52, - 0x8f, 0xdf, 0x1e, 0x7f, 0x06, 0xc6, 0x76, 0xc5, 0xcf, 0x64, 0xb2, 0xa0, 0xa4, 0x40, 0x85, 0x67, - 0x3d, 0xb2, 0xdd, 0xb5, 0xda, 0xf5, 0xa5, 0x70, 0x79, 0xe8, 0x1e, 0xa9, 0x28, 0x04, 0x86, 0x34, - 0xac, 0x40, 0x93, 0x29, 0xab, 0x9d, 0x8e, 0x15, 0x24, 0xaf, 0x5f, 0xad, 0x2a, 0x04, 0x86, 0x34, - 0xe4, 0x29, 0x18, 0x6d, 0x5a, 0xc1, 0x96, 0xd9, 0x4c, 0xc6, 0x16, 0x56, 0x39, 0x14, 0x25, 0x96, - 0x3b, 0xc6, 0xad, 0x60, 0xcb, 0xa3, 0xdc, 0xd1, 0xd6, 0x73, 0xfd, 0x60, 0x35, 0x82, 0xc3, 0x18, - 0x25, 0xaf, 0x92, 0x23, 0x5b, 0x26, 0x1d, 0xd6, 0x61, 0x95, 0x14, 0x02, 0x43, 0x1a, 0x36, 0xb3, - 0x6a, 0x4e, 0xc7, 0xb5, 0xda, 0x32, 0x59, 0x24, 0x32, 0xb3, 0x16, 0x25, 0x1c, 0x35, 0x05, 0xa3, - 0x66, 0x7b, 0x43, 0xc3, 0xf1, 0x3a, 0xc9, 0x97, 0x84, 0x36, 0x25, 0x1c, 0x35, 0x85, 0x71, 0x13, - 0x26, 0xc4, 0x1a, 0x59, 0x6c, 0x9b, 0x56, 0x67, 0x75, 0x91, 0x2c, 0xf7, 0x24, 0x1f, 0x3d, 0x93, - 0x92, 0x7c, 0x74, 0x36, 0x56, 0x28, 0x25, 0x09, 0xe9, 0xfb, 0x43, 0x50, 0x78, 0x88, 0x0f, 0xab, - 0xd5, 0x62, 0x0f, 0xab, 0x9d, 0xc0, 0x2b, 0x5c, 0x69, 0x8f, 0xaa, 0xed, 0x24, 0x1e, 0x55, 0x5b, - 0x1c, 0x30, 0xe7, 0xee, 0x9e, 0x0f, 0xaa, 0xfd, 0x3c, 0x07, 0xfa, 0x1a, 0x07, 0xdf, 0x14, 0x2a, - 0x96, 0xcd, 0xc3, 0x8d, 0x0f, 0xbe, 0x33, 0x9d, 0x58, 0x67, 0xae, 0x0f, 0xd4, 0xca, 0x68, 0xd5, - 0xfb, 0xbe, 0xe8, 0xf8, 0x69, 0x0e, 0xca, 0x69, 0x05, 0x1e, 0xc2, 0x23, 0x72, 0x76, 0xfc, 0x11, - 0xb9, 0xb5, 0x13, 0x6b, 0x6c, 0x9f, 0xc7, 0xe4, 0x7e, 0xd2, 0xa7, 0xa9, 0xfc, 0x19, 0xb7, 0x77, - 0xd5, 0xa1, 0x90, 0x1b, 0x20, 0xf6, 0x20, 0xb8, 0xa6, 0x1f, 0x28, 0xef, 0xc2, 0xa8, 0xcf, 0xa3, - 0x7f, 0x72, 0x6c, 0x5f, 0xce, 0x78, 0x3a, 0x30, 0x16, 0xd2, 0x23, 0xc4, 0x7f, 0xa3, 0x64, 0x6b, - 0xfc, 0x28, 0x07, 0xe3, 0x0f, 0xf1, 0x09, 0xc0, 0xed, 0xf8, 0xe8, 0xbd, 0x32, 0xd0, 0xe8, 0xf5, - 0x19, 0xb1, 0xef, 0x3c, 0x06, 0xb1, 0xa7, 0xf7, 0x88, 0x0d, 0x45, 0xa5, 0x7f, 0xa9, 0xec, 0xdb, - 0x57, 0x06, 0x72, 0xba, 0x86, 0xdb, 0xbf, 0x82, 0xf8, 0x18, 0x8a, 0x48, 0x04, 0x52, 0x87, 0x8e, - 0x14, 0x48, 0x7d, 0xe8, 0x0e, 0xfd, 0x74, 0x7b, 0x76, 0xe4, 0x81, 0xd8, 0xb3, 0x17, 0x4e, 0xdc, - 0x9e, 0x7d, 0xfc, 0xc1, 0xdb, 0xb3, 0x11, 0x87, 0x5f, 0x7e, 0x00, 0x87, 0xdf, 0x87, 0x70, 0x66, - 0x37, 0x3c, 0x7a, 0xf5, 0x7c, 0x91, 0xef, 0x9a, 0x3d, 0x93, 0x6a, 0xc5, 0x32, 0x35, 0xc2, 0x0f, - 0xa8, 0x1d, 0x44, 0x0e, 0xed, 0xf0, 0xae, 0xe0, 0xcd, 0x14, 0x76, 0x98, 0x2a, 0x24, 0xe9, 0xee, - 0x19, 0x3b, 0x82, 0xbb, 0xe7, 0xbb, 0x39, 0x38, 0x6b, 0xa6, 0xbd, 0xe1, 0x2d, 0xe3, 0x04, 0x6f, - 0x0c, 0xe4, 0xaf, 0x8b, 0x71, 0x94, 0xce, 0xb3, 0x34, 0x14, 0xa6, 0xd7, 0x81, 0x3c, 0x19, 0xba, - 0x7c, 0x45, 0x54, 0x3e, 0xdd, 0x59, 0xfb, 0xed, 0x64, 0xa8, 0x05, 0x78, 0x6f, 0x57, 0x07, 0x56, - 0x33, 0x4e, 0x20, 0xdc, 0x52, 0x1a, 0x20, 0xdc, 0x92, 0xf0, 0xc5, 0x8d, 0x9f, 0x90, 0x2f, 0xce, - 0x86, 0x29, 0xab, 0x63, 0x36, 0xe9, 0x66, 0xb7, 0xdd, 0x16, 0xb9, 0x77, 0x7e, 0x79, 0x82, 0xf3, - 0x4e, 0x4d, 0x00, 0xbb, 0xe6, 0xd4, 0xcc, 0x76, 0xf2, 0xa5, 0x48, 0x9d, 0x38, 0xbb, 0x96, 0xe0, - 0x84, 0x3d, 0xbc, 0xd9, 0xb4, 0xe4, 0xf7, 0xc1, 0x68, 0xc0, 0x7a, 0x9b, 0x47, 0x22, 0xe4, 0xbf, - 0x2c, 0x5c, 0x09, 0xc1, 0x18, 0xa5, 0x21, 0x57, 0xa1, 0x58, 0xb7, 0x7d, 0x99, 0xe3, 0x3a, 0xc9, - 0x77, 0xa9, 0xcf, 0xb1, 0xbd, 0x6d, 0xe9, 0x7a, 0x55, 0x67, 0xb7, 0x5e, 0x48, 0xb9, 0x50, 0xa8, - 0xf1, 0x18, 0x96, 0x27, 0xeb, 0x9c, 0x99, 0x7c, 0x4e, 0x48, 0x84, 0x0e, 0x2e, 0xf5, 0x71, 0x27, - 0x2d, 0x5d, 0x57, 0xaf, 0x1f, 0x4d, 0x48, 0x71, 0xf2, 0x91, 0xa0, 0x90, 0x43, 0xe4, 0x29, 0xbc, - 0xe9, 0x7b, 0x3e, 0x85, 0x77, 0x03, 0xce, 0x07, 0x41, 0x3b, 0x16, 0x91, 0x96, 0x77, 0x49, 0xf9, - 0xc5, 0xe2, 0xbc, 0x78, 0x3d, 0x75, 0x6b, 0xeb, 0x5a, 0x1a, 0x09, 0xf6, 0x2b, 0xcb, 0x43, 0xb3, - 0x41, 0x5b, 0xbb, 0x93, 0x2f, 0x0e, 0x12, 0x9a, 0x0d, 0x43, 0xff, 0x32, 0x34, 0x1b, 0x02, 0x30, - 0x2a, 0x85, 0x6c, 0xf4, 0x73, 0xa4, 0x9f, 0xe6, 0x7b, 0xcc, 0xf1, 0xdd, 0xe2, 0x51, 0x4f, 0xec, - 0x99, 0x7b, 0x7a, 0x62, 0x7b, 0x3c, 0xc7, 0x67, 0x8f, 0xe1, 0x39, 0xbe, 0xcd, 0x2f, 0x8b, 0xae, - 0x2e, 0x4a, 0xaf, 0x7b, 0x36, 0x8d, 0x8d, 0x5f, 0xe4, 0x10, 0xd9, 0x13, 0xfc, 0x27, 0x0a, 0x9e, - 0x64, 0x13, 0xce, 0xb8, 0x4e, 0xbd, 0xc7, 0xf1, 0xcc, 0xdd, 0xec, 0x91, 0xcb, 0xde, 0x9b, 0x29, - 0x34, 0x98, 0x5a, 0x92, 0x6f, 0xe0, 0x21, 0x9c, 0xdf, 0x2d, 0xce, 0xcb, 0x0d, 0x3c, 0x04, 0x63, - 0x94, 0x26, 0xe9, 0x87, 0x7d, 0xf4, 0x81, 0xf9, 0x61, 0x67, 0x1e, 0x82, 0x1f, 0xf6, 0xb1, 0x23, - 0xfb, 0x61, 0xff, 0x1d, 0x9c, 0x76, 0x9d, 0xfa, 0x92, 0xe5, 0x7b, 0x5d, 0xfe, 0x1f, 0x32, 0x95, - 0x6e, 0xbd, 0x49, 0x03, 0xee, 0xc8, 0x2d, 0x5d, 0xbe, 0x1c, 0xad, 0xa4, 0xf8, 0x8f, 0xae, 0x39, - 0xf9, 0x1f, 0x5d, 0x7c, 0x91, 0x27, 0x4a, 0x71, 0xbb, 0x87, 0xa7, 0x8f, 0xa4, 0x20, 0x31, 0x4d, - 0x4e, 0xd4, 0x0d, 0x7c, 0xe9, 0x81, 0xb9, 0x81, 0x5f, 0x87, 0x82, 0xdf, 0xea, 0x06, 0x75, 0x67, - 0xcf, 0xe6, 0x1e, 0xfd, 0xa2, 0x7e, 0x7b, 0xba, 0x50, 0x95, 0xf0, 0xbb, 0x07, 0xb3, 0x53, 0xea, - 0x77, 0xc4, 0xca, 0x97, 0x10, 0xf2, 0xdf, 0xfb, 0x64, 0x55, 0x1a, 0x27, 0x9c, 0x55, 0x79, 0xfe, - 0x58, 0x19, 0x95, 0x69, 0xee, 0xed, 0x27, 0x7e, 0x15, 0xdc, 0xdb, 0xff, 0x39, 0x07, 0x13, 0xbb, - 0x51, 0xc7, 0x89, 0xf4, 0xba, 0x67, 0x0b, 0xd6, 0xc5, 0x5c, 0x30, 0x15, 0x83, 0xed, 0x55, 0x31, - 0xd0, 0xdd, 0x24, 0x00, 0xe3, 0xc2, 0x7b, 0x43, 0x87, 0x4f, 0x3e, 0xbc, 0xd0, 0xe1, 0xe0, 0xae, - 0xf5, 0xdf, 0x9a, 0x82, 0x53, 0x89, 0x37, 0xa9, 0xf5, 0x73, 0x14, 0xb9, 0xa3, 0x3e, 0x47, 0x11, - 0x7b, 0x2f, 0x62, 0xe8, 0x81, 0xbe, 0x17, 0x31, 0xfc, 0x70, 0xde, 0x8b, 0x98, 0x7a, 0x10, 0xef, - 0x45, 0x4c, 0x1f, 0xeb, 0xbd, 0x88, 0xc8, 0x7b, 0x1d, 0x23, 0xf7, 0x79, 0xaf, 0x63, 0x01, 0x26, - 0x55, 0xa6, 0x1b, 0x95, 0xef, 0x05, 0x08, 0x47, 0xaa, 0xbe, 0xd6, 0xb1, 0x18, 0x47, 0x63, 0x92, - 0x9e, 0xfc, 0x5b, 0xc8, 0xdb, 0xbc, 0xe0, 0xe8, 0x00, 0x6f, 0x4d, 0xc5, 0x27, 0x12, 0x57, 0xcb, - 0xe5, 0x73, 0x4f, 0x2a, 0x09, 0x22, 0xcf, 0x61, 0x77, 0xd5, 0x0f, 0x14, 0x42, 0xc9, 0xdb, 0x50, - 0x76, 0x1a, 0x8d, 0xb6, 0x63, 0xd6, 0xc3, 0x37, 0x2d, 0x94, 0x6f, 0x57, 0x24, 0xed, 0x5e, 0x92, - 0x0c, 0xca, 0x1b, 0x7d, 0xe8, 0xb0, 0x2f, 0x07, 0x66, 0x3d, 0x4d, 0xc6, 0xdf, 0x80, 0xf1, 0xcb, - 0x45, 0xde, 0xcc, 0x7f, 0x7d, 0x12, 0xcd, 0x8c, 0x3f, 0x38, 0x23, 0x1b, 0x1c, 0x5e, 0xa8, 0x89, - 0x63, 0x31, 0x59, 0x13, 0xe2, 0xc1, 0x39, 0x37, 0xcd, 0xb6, 0xf4, 0x65, 0x2a, 0xda, 0xbd, 0x2c, - 0xdc, 0x8b, 0x52, 0xca, 0xb9, 0x54, 0xeb, 0xd4, 0xc7, 0x3e, 0x9c, 0xa3, 0xaf, 0x5d, 0x14, 0x1e, - 0xd8, 0x6b, 0x17, 0xf1, 0xd7, 0xe1, 0x27, 0x1e, 0xc6, 0xeb, 0xf0, 0xe4, 0x97, 0xa9, 0x8f, 0xac, - 0x08, 0x93, 0xec, 0xad, 0x93, 0x18, 0xec, 0x5f, 0xb9, 0x87, 0x56, 0xfe, 0x57, 0x0e, 0x66, 0xc4, - 0x94, 0x4a, 0xfb, 0xeb, 0x1f, 0x99, 0x50, 0x76, 0x02, 0xae, 0x7c, 0x1e, 0x22, 0xac, 0xc6, 0x04, - 0x71, 0xdf, 0xf3, 0x3d, 0x84, 0x93, 0x6f, 0xa6, 0xa8, 0x10, 0x93, 0x03, 0x38, 0x2c, 0xd2, 0x9f, - 0xee, 0x38, 0x7d, 0x78, 0x04, 0xad, 0x61, 0x66, 0x5f, 0xbc, 0xcc, 0xd5, 0xf7, 0x5d, 0xb8, 0x1b, - 0xd1, 0x23, 0x32, 0xeb, 0xd3, 0x6c, 0xe1, 0xde, 0x13, 0x7d, 0x93, 0xee, 0xab, 0x39, 0x38, 0x93, - 0xb6, 0x49, 0xa4, 0xd4, 0xa2, 0x1a, 0xaf, 0xc5, 0x60, 0x1e, 0xd1, 0x68, 0x1d, 0x4e, 0xe6, 0xb5, - 0x92, 0xff, 0x36, 0x1a, 0xf1, 0xe2, 0x06, 0xd4, 0xfd, 0x4d, 0x0a, 0x75, 0xa6, 0x14, 0xea, 0xd8, - 0x7f, 0x29, 0xe4, 0x1f, 0xe2, 0x7f, 0x29, 0x8c, 0x66, 0xf8, 0x2f, 0x85, 0xb1, 0x87, 0xf9, 0x5f, - 0x0a, 0x85, 0x23, 0xfe, 0x97, 0x42, 0xf1, 0x57, 0xe6, 0xbf, 0x14, 0x8c, 0x4f, 0x72, 0x30, 0xf5, - 0xcf, 0xfd, 0xcf, 0xe2, 0x7e, 0x16, 0x09, 0xa3, 0x3e, 0xc4, 0x7f, 0x89, 0xbb, 0x13, 0x0f, 0x4c, - 0x2d, 0x9f, 0x48, 0x23, 0xfb, 0x04, 0xa8, 0xde, 0x83, 0x34, 0xd3, 0xf8, 0x68, 0x77, 0xfb, 0x62, - 0x39, 0x3f, 0x43, 0x47, 0xce, 0xf9, 0xf9, 0xc7, 0x94, 0x5e, 0xe5, 0xe7, 0xe6, 0x87, 0x0f, 0xea, - 0x5f, 0xb1, 0xce, 0xa4, 0xfd, 0x2b, 0x56, 0xe2, 0x5f, 0xb0, 0x92, 0xff, 0x8a, 0x34, 0xf4, 0x00, - 0xff, 0x15, 0x69, 0x02, 0x4a, 0xd1, 0x7f, 0xd3, 0x9e, 0xfb, 0xc1, 0x27, 0x17, 0x1f, 0xf9, 0xd1, - 0x27, 0x17, 0x1f, 0xf9, 0xf1, 0x27, 0x17, 0x1f, 0xf9, 0xe8, 0xf0, 0x62, 0xee, 0x07, 0x87, 0x17, - 0x73, 0x3f, 0x3a, 0xbc, 0x98, 0xfb, 0xf1, 0xe1, 0xc5, 0xdc, 0xcf, 0x0e, 0x2f, 0xe6, 0xfe, 0xeb, - 0x5f, 0x5e, 0x7c, 0xe4, 0xad, 0x82, 0x6a, 0xdb, 0x3f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x87, 0x54, - 0xd1, 0xea, 0xb2, 0x7e, 0x00, 0x00, + 0xc9, 0x12, 0x34, 0xbb, 0x32, 0x69, 0x8d, 0xac, 0x5d, 0xd9, 0xb2, 0x1e, 0x6c, 0xbe, 0x66, 0x34, + 0xc3, 0x21, 0x75, 0x9a, 0x33, 0xb3, 0xd6, 0x08, 0xd2, 0x16, 0xbb, 0x6f, 0x77, 0xd7, 0xb0, 0xbb, + 0xaa, 0x54, 0x55, 0x4d, 0x8a, 0xd2, 0x2e, 0x56, 0x36, 0xd6, 0x70, 0x1c, 0xc7, 0x48, 0x82, 0xc0, + 0x89, 0x02, 0x23, 0x48, 0x7e, 0x82, 0x7c, 0xc4, 0x41, 0x3e, 0x82, 0xe4, 0x27, 0x80, 0x3f, 0x82, + 0x24, 0x70, 0x0c, 0x04, 0x70, 0xbe, 0x62, 0x20, 0x06, 0x6d, 0x31, 0x3f, 0x32, 0x12, 0xc7, 0x5f, + 0x41, 0x80, 0x41, 0x80, 0x04, 0xf7, 0x59, 0x8f, 0xae, 0x9e, 0x21, 0xab, 0x39, 0x03, 0x23, 0xf6, + 0x5f, 0xd7, 0x39, 0xe7, 0x9e, 0x73, 0xdf, 0xf7, 0xbc, 0xee, 0x6d, 0x58, 0x6c, 0x5a, 0x41, 0xab, + 0xbb, 0x35, 0x57, 0x73, 0x3a, 0xf3, 0xa6, 0xd7, 0x74, 0x5c, 0xcf, 0xb9, 0xc3, 0x7f, 0xcc, 0xbb, + 0xdb, 0xcd, 0x79, 0xd3, 0xb5, 0xfc, 0xf9, 0x5d, 0xc7, 0xdb, 0x6e, 0xb4, 0x9d, 0xdd, 0xf9, 0x9d, + 0x67, 0xcd, 0xb6, 0xdb, 0x32, 0x9f, 0x9d, 0x6f, 0x52, 0x9b, 0x7a, 0x66, 0x40, 0xeb, 0x73, 0xae, + 0xe7, 0x04, 0x0e, 0x79, 0x2e, 0x64, 0x32, 0xa7, 0x98, 0xf0, 0x1f, 0x73, 0xee, 0x76, 0x73, 0x8e, + 0x31, 0x99, 0x53, 0x4c, 0xe6, 0x14, 0x93, 0x99, 0x4f, 0x45, 0x24, 0x37, 0x1d, 0x26, 0x90, 0xf1, + 0xda, 0xea, 0x36, 0xf8, 0x17, 0xff, 0xe0, 0xbf, 0x84, 0x8c, 0x19, 0x63, 0xfb, 0x05, 0x7f, 0xce, + 0x72, 0x58, 0x95, 0xe6, 0x6b, 0x8e, 0x47, 0xe7, 0x77, 0x7a, 0xea, 0x31, 0x73, 0x31, 0x42, 0xe3, + 0x3a, 0x6d, 0xab, 0xb6, 0x37, 0xbf, 0xf3, 0xec, 0x16, 0x0d, 0x7a, 0xab, 0x3c, 0xf3, 0x99, 0x90, + 0xb4, 0x63, 0xd6, 0x5a, 0x96, 0x4d, 0xbd, 0xbd, 0xb0, 0xc9, 0x1d, 0x1a, 0x98, 0x69, 0x02, 0xe6, + 0xfb, 0x95, 0xf2, 0xba, 0x76, 0x60, 0x75, 0x68, 0x4f, 0x81, 0xff, 0x71, 0xbf, 0x02, 0x7e, 0xad, + 0x45, 0x3b, 0x66, 0x4f, 0xb9, 0xe7, 0xfa, 0x95, 0xeb, 0x06, 0x56, 0x7b, 0xde, 0xb2, 0x03, 0x3f, + 0xf0, 0x92, 0x85, 0x8c, 0x65, 0x18, 0x5d, 0xe8, 0x38, 0x5d, 0x3b, 0x20, 0x2f, 0x42, 0x7e, 0xc7, + 0x6c, 0x77, 0x69, 0x39, 0x77, 0x21, 0xf7, 0x74, 0xb1, 0xf2, 0xe4, 0x77, 0xf6, 0x67, 0x1f, 0x39, + 0xd8, 0x9f, 0xcd, 0xdf, 0x64, 0xc0, 0xbb, 0xfb, 0xb3, 0xa7, 0xa8, 0x5d, 0x73, 0xea, 0x96, 0xdd, + 0x9c, 0xbf, 0xe3, 0x3b, 0xf6, 0xdc, 0xf5, 0x6e, 0x67, 0x8b, 0x7a, 0x28, 0xca, 0x18, 0xdf, 0x1a, + 0x82, 0xc9, 0x05, 0xaf, 0xd6, 0xb2, 0x76, 0x68, 0x35, 0x60, 0xfc, 0x9b, 0x7b, 0xe4, 0x36, 0x0c, + 0x07, 0xa6, 0xc7, 0xd9, 0x95, 0x2e, 0xbd, 0x3a, 0x97, 0x61, 0xbc, 0xe7, 0x36, 0x4d, 0x4f, 0xb1, + 0xab, 0x8c, 0x1d, 0xec, 0xcf, 0x0e, 0x6f, 0x9a, 0x1e, 0x32, 0xae, 0xe4, 0x6d, 0x18, 0xb1, 0x1d, + 0x9b, 0x96, 0x87, 0x38, 0xf7, 0x85, 0x4c, 0xdc, 0xaf, 0x3b, 0xb6, 0xae, 0x6d, 0xa5, 0x70, 0xb0, + 0x3f, 0x3b, 0xc2, 0x20, 0xc8, 0x19, 0xb3, 0xda, 0xbf, 0x67, 0xb9, 0xe5, 0xe1, 0x01, 0x6a, 0xff, + 0x86, 0xe5, 0xc6, 0x6b, 0xff, 0x86, 0xe5, 0x22, 0xe3, 0x6a, 0xfc, 0x34, 0x07, 0xc5, 0x05, 0xaf, + 0xd9, 0xed, 0x50, 0x3b, 0xf0, 0x89, 0x07, 0xe0, 0x9a, 0x9e, 0xd9, 0xa1, 0x01, 0xf5, 0xfc, 0x72, + 0xee, 0xc2, 0xf0, 0xd3, 0xa5, 0x4b, 0x2f, 0x67, 0x92, 0xb8, 0xa1, 0xd8, 0x54, 0x88, 0x1c, 0x3e, + 0xd0, 0x20, 0x1f, 0x23, 0x52, 0x88, 0x0d, 0x45, 0xd3, 0x0b, 0xac, 0x86, 0x59, 0x0b, 0xfc, 0xf2, + 0x10, 0x17, 0xf9, 0x52, 0x26, 0x91, 0x0b, 0x92, 0x4b, 0x65, 0x5a, 0x4a, 0x2c, 0x2a, 0x88, 0x8f, + 0xa1, 0x08, 0xe3, 0x6f, 0x47, 0xa0, 0xa0, 0x10, 0xe4, 0x02, 0x8c, 0xd8, 0x66, 0x47, 0xcd, 0xb4, + 0x71, 0x59, 0x70, 0xe4, 0xba, 0xd9, 0x61, 0xbd, 0x6f, 0x76, 0x28, 0xa3, 0x70, 0xcd, 0xa0, 0xc5, + 0x87, 0x37, 0x42, 0xb1, 0x61, 0x06, 0x2d, 0xe4, 0x18, 0x72, 0x0e, 0x46, 0x3a, 0x4e, 0x9d, 0xf2, + 0x01, 0xca, 0x8b, 0xd1, 0x5b, 0x73, 0xea, 0x14, 0x39, 0x94, 0x95, 0x6f, 0x78, 0x4e, 0xa7, 0x3c, + 0x12, 0x2f, 0xbf, 0xe2, 0x39, 0x1d, 0xe4, 0x18, 0xf2, 0xb5, 0x1c, 0x4c, 0xa9, 0xea, 0x5d, 0x73, + 0x6a, 0x66, 0x60, 0x39, 0x76, 0x39, 0xcf, 0x47, 0x7b, 0x79, 0xa0, 0x8e, 0x50, 0xcc, 0x2a, 0x65, + 0x29, 0x75, 0x2a, 0x89, 0xc1, 0x1e, 0xc1, 0xe4, 0x12, 0x40, 0xb3, 0xed, 0x6c, 0x99, 0x6d, 0xd6, + 0x07, 0xe5, 0x51, 0x5e, 0x6b, 0x3d, 0x84, 0xab, 0x1a, 0x83, 0x11, 0x2a, 0xb2, 0x0d, 0x63, 0xa6, + 0x58, 0x72, 0xe5, 0x31, 0x5e, 0xef, 0xa5, 0x8c, 0xf5, 0x8e, 0x2d, 0xdb, 0x4a, 0xe9, 0x60, 0x7f, + 0x76, 0x4c, 0x02, 0x51, 0x49, 0x20, 0xcf, 0x40, 0xc1, 0x71, 0x59, 0x55, 0xcd, 0x76, 0xb9, 0x70, + 0x21, 0xf7, 0x74, 0xa1, 0x32, 0x25, 0xab, 0x57, 0x58, 0x97, 0x70, 0xd4, 0x14, 0xe4, 0x22, 0x8c, + 0xf9, 0xdd, 0x2d, 0x36, 0x5a, 0xe5, 0x22, 0x6f, 0xcb, 0xa4, 0x24, 0x1e, 0xab, 0x0a, 0x30, 0x2a, + 0x3c, 0x79, 0x1e, 0x4a, 0x1e, 0xad, 0x75, 0x3d, 0x9f, 0xb2, 0xe1, 0x2b, 0x03, 0xe7, 0x7d, 0x52, + 0x92, 0x97, 0x30, 0x44, 0x61, 0x94, 0xce, 0xf8, 0xbb, 0x51, 0xe8, 0xe9, 0x57, 0xf2, 0x2c, 0x94, + 0x64, 0x7d, 0xaf, 0x39, 0x4d, 0x9f, 0x4f, 0xaf, 0x42, 0x65, 0x92, 0xf1, 0x59, 0x08, 0xc1, 0x18, + 0xa5, 0x21, 0xb7, 0x60, 0xc8, 0x7f, 0x4e, 0xee, 0x22, 0xaf, 0x64, 0xea, 0xbf, 0xea, 0x73, 0x7a, + 0x09, 0x8c, 0x1e, 0xec, 0xcf, 0x0e, 0x55, 0x9f, 0xc3, 0x21, 0xff, 0x39, 0xb6, 0x7f, 0x34, 0xad, + 0x60, 0xa0, 0xfd, 0x63, 0xd5, 0x0a, 0x34, 0x6b, 0xbe, 0x7f, 0xac, 0x5a, 0x01, 0x32, 0xae, 0x6c, + 0xf7, 0x6b, 0x05, 0x81, 0xcb, 0xa7, 0x77, 0xd6, 0xdd, 0xef, 0xf2, 0xe6, 0xe6, 0x86, 0x66, 0xcf, + 0xd7, 0x0f, 0x83, 0x20, 0x67, 0x4c, 0xde, 0x67, 0x3d, 0x29, 0x70, 0x8e, 0xb7, 0x27, 0xd7, 0xc5, + 0xe5, 0x81, 0xd6, 0x85, 0xe3, 0xed, 0x69, 0x71, 0x72, 0x4c, 0x34, 0x02, 0xa3, 0xd2, 0x78, 0xeb, + 0xea, 0x0d, 0x9f, 0x2f, 0x83, 0xcc, 0xad, 0x5b, 0x5a, 0xa9, 0x26, 0x5a, 0xb7, 0xb4, 0x52, 0x45, + 0xce, 0x98, 0x8d, 0x8d, 0x67, 0xee, 0xca, 0x55, 0x93, 0x6d, 0x6c, 0xd0, 0xdc, 0x8d, 0x8f, 0x0d, + 0x9a, 0xbb, 0xc8, 0xb8, 0x32, 0xe6, 0x8e, 0xef, 0xf3, 0x45, 0x92, 0x95, 0xf9, 0x7a, 0xb5, 0x1a, + 0x67, 0xbe, 0x5e, 0xad, 0x22, 0xe3, 0xca, 0x67, 0x55, 0xcd, 0xe7, 0x8b, 0x2a, 0xf3, 0xac, 0x5a, + 0x4c, 0x30, 0x5f, 0x5d, 0xac, 0x22, 0xe3, 0x6a, 0x34, 0xe1, 0xb4, 0xc2, 0x20, 0x75, 0x1d, 0xdf, + 0xe2, 0x43, 0x43, 0x1b, 0x64, 0x1e, 0x8a, 0x35, 0xc7, 0x6e, 0x58, 0xcd, 0x35, 0xd3, 0x95, 0x9b, + 0xb6, 0xde, 0xed, 0x17, 0x15, 0x02, 0x43, 0x1a, 0xf2, 0x38, 0x0c, 0x6f, 0xd3, 0x3d, 0xb9, 0x7b, + 0x97, 0x24, 0xe9, 0xf0, 0x55, 0xba, 0x87, 0x0c, 0x6e, 0x7c, 0x3b, 0x07, 0x27, 0x53, 0xa6, 0x05, + 0x2b, 0xd6, 0xf5, 0xda, 0x52, 0x82, 0x2e, 0x76, 0x03, 0xaf, 0x21, 0x83, 0x93, 0xaf, 0xe4, 0x60, + 0x32, 0x32, 0x4f, 0x16, 0xba, 0xf2, 0x80, 0xc8, 0xbe, 0xf3, 0xc5, 0x78, 0x55, 0xce, 0x4a, 0x89, + 0x93, 0x09, 0x04, 0x26, 0xa5, 0x1a, 0x7f, 0x9f, 0x83, 0x24, 0x11, 0x31, 0xe1, 0x44, 0xd7, 0xa7, + 0x1e, 0x3b, 0xbe, 0xaa, 0xb4, 0xe6, 0xd1, 0x40, 0x6a, 0x3e, 0x4f, 0xce, 0x09, 0xbd, 0x8c, 0xd5, + 0x62, 0x8e, 0x69, 0xa1, 0x73, 0x3b, 0xcf, 0xce, 0x09, 0x8a, 0xab, 0x74, 0xaf, 0x4a, 0xdb, 0x94, + 0xf1, 0xa8, 0x90, 0x83, 0xfd, 0xd9, 0x13, 0x37, 0x62, 0x0c, 0x30, 0xc1, 0x90, 0x89, 0x70, 0x4d, + 0xdf, 0xdf, 0x75, 0xbc, 0xba, 0x14, 0x31, 0x74, 0x64, 0x11, 0x1b, 0x31, 0x06, 0x98, 0x60, 0x68, + 0xfc, 0x65, 0x0e, 0xc6, 0x2a, 0x66, 0x6d, 0xdb, 0x69, 0x34, 0xd8, 0x9e, 0x5f, 0xef, 0x7a, 0xe2, + 0x64, 0x14, 0x63, 0xa2, 0xf7, 0xfc, 0x25, 0x09, 0x47, 0x4d, 0x41, 0x36, 0x61, 0x54, 0x74, 0x87, + 0xac, 0xd4, 0xa7, 0x23, 0x95, 0xd2, 0xfa, 0x28, 0x1f, 0x0e, 0xa6, 0x8f, 0xce, 0x09, 0x7d, 0x74, + 0xee, 0x8a, 0x1d, 0xac, 0x33, 0x1d, 0xcf, 0xb2, 0x9b, 0x15, 0x38, 0xd8, 0x9f, 0x1d, 0x5d, 0xe1, + 0x3c, 0x50, 0xf2, 0x62, 0xc7, 0x43, 0xc7, 0x7c, 0x57, 0x89, 0xe3, 0xdb, 0x69, 0x31, 0x3c, 0x1e, + 0xd6, 0x42, 0x14, 0x46, 0xe9, 0x8c, 0xb7, 0x20, 0xbf, 0x68, 0xd6, 0x5a, 0x94, 0xdc, 0x48, 0x4e, + 0xdd, 0xd2, 0xa5, 0xa7, 0xd3, 0x7a, 0x4b, 0x4f, 0xe3, 0x68, 0x87, 0x4d, 0xf4, 0x9b, 0xe0, 0xc6, + 0xc7, 0x39, 0x38, 0xbb, 0xd8, 0xee, 0xfa, 0x01, 0xf5, 0x6e, 0xc9, 0x79, 0xb5, 0x49, 0x3b, 0x6e, + 0xdb, 0x0c, 0x28, 0xf9, 0xdf, 0x50, 0x60, 0xb6, 0x40, 0xdd, 0x0c, 0x4c, 0x29, 0xb1, 0x7f, 0x57, + 0xf0, 0x99, 0xc9, 0xa8, 0x59, 0x1d, 0xd6, 0xb7, 0xee, 0xd0, 0x5a, 0xb0, 0x46, 0x03, 0x33, 0x3c, + 0xfb, 0x43, 0x18, 0x6a, 0xae, 0x64, 0x1b, 0x46, 0x7c, 0x97, 0xd6, 0x64, 0x47, 0x5f, 0xc9, 0x34, + 0xf9, 0x93, 0xd5, 0xae, 0xba, 0xb4, 0x16, 0x2a, 0x4a, 0xec, 0x0b, 0xb9, 0x10, 0xe3, 0x5f, 0x72, + 0xf0, 0x58, 0x9f, 0xa6, 0x5e, 0xb3, 0xfc, 0x80, 0xbc, 0xd9, 0xd3, 0xdc, 0xb9, 0xc3, 0x35, 0x97, + 0x95, 0xe6, 0x8d, 0xd5, 0xb3, 0x4a, 0x41, 0x22, 0x4d, 0x7d, 0x07, 0xf2, 0x56, 0x40, 0x3b, 0x4a, + 0x47, 0xbd, 0x96, 0xa9, 0xad, 0x7d, 0xaa, 0x5f, 0x99, 0x50, 0x36, 0xce, 0x15, 0x26, 0x02, 0x85, + 0x24, 0xe3, 0x6f, 0x72, 0xc0, 0x06, 0xbd, 0x6e, 0x49, 0x9d, 0x62, 0x24, 0xd8, 0x73, 0x95, 0xae, + 0xfa, 0xb8, 0xea, 0xa0, 0xcd, 0x3d, 0x97, 0x19, 0x45, 0x13, 0x9a, 0x90, 0x01, 0x90, 0x93, 0x92, + 0xb7, 0x60, 0xd4, 0x0f, 0xcc, 0xa0, 0xeb, 0xcb, 0x0d, 0x70, 0x45, 0x16, 0x1a, 0xad, 0x72, 0xe8, + 0xdd, 0xfd, 0xd9, 0x43, 0x59, 0x92, 0x73, 0x9a, 0xb7, 0x28, 0x87, 0x92, 0x2b, 0xd3, 0xae, 0x3a, + 0xd4, 0xf7, 0xcd, 0x26, 0x95, 0xeb, 0x41, 0x6b, 0x57, 0x6b, 0x02, 0x8c, 0x0a, 0x6f, 0x7c, 0x01, + 0x60, 0xd1, 0xb1, 0x03, 0xcb, 0xee, 0xd2, 0x75, 0x9b, 0x3c, 0x01, 0x79, 0xea, 0x79, 0x8e, 0x27, + 0x35, 0x23, 0xdd, 0xfc, 0x65, 0x06, 0x44, 0x81, 0x23, 0x4f, 0xb1, 0x75, 0x6c, 0xb5, 0x69, 0x9d, + 0xd7, 0xbe, 0x50, 0x39, 0xa1, 0x6a, 0xbf, 0xc2, 0xa1, 0x28, 0xb1, 0xc6, 0x1c, 0x8c, 0x2d, 0x32, + 0xc3, 0x91, 0x7a, 0x8c, 0x6f, 0xd4, 0x74, 0x9c, 0x88, 0x99, 0x8e, 0xca, 0x44, 0xfc, 0xee, 0x10, + 0x8c, 0x2f, 0x7a, 0x8e, 0xad, 0x46, 0xe1, 0x21, 0xac, 0x93, 0x66, 0x6c, 0x9d, 0x64, 0x53, 0xeb, + 0xa3, 0x55, 0xee, 0xb7, 0x46, 0x88, 0xa3, 0x47, 0x5c, 0xe8, 0x7b, 0xab, 0x83, 0x8b, 0xe2, 0xec, + 0xc2, 0xce, 0x8f, 0x4f, 0x01, 0xe3, 0xfb, 0x39, 0x98, 0x8a, 0x92, 0x3f, 0x84, 0x95, 0xd8, 0x88, + 0xaf, 0xc4, 0x85, 0x81, 0x9b, 0xd8, 0x67, 0xf9, 0xfd, 0x7b, 0x3e, 0xde, 0x34, 0xd6, 0xcd, 0xcc, + 0x5a, 0x1b, 0xdf, 0x8d, 0x00, 0x64, 0xfb, 0x16, 0x06, 0xda, 0xfa, 0xf8, 0x70, 0x7e, 0x52, 0x56, + 0x62, 0x3c, 0x0a, 0xbd, 0x9b, 0xf8, 0xc6, 0x98, 0x70, 0x76, 0x30, 0xfa, 0xb5, 0x16, 0xad, 0x77, + 0xdb, 0x54, 0x2e, 0x71, 0xdd, 0x71, 0x55, 0x09, 0x47, 0x4d, 0x41, 0xde, 0x84, 0xe9, 0x9a, 0x63, + 0xd7, 0xba, 0x9e, 0x47, 0xed, 0xda, 0xde, 0x06, 0xf7, 0x31, 0xc9, 0x85, 0x3b, 0x27, 0x8b, 0x4d, + 0x2f, 0x26, 0x09, 0xee, 0xa6, 0x01, 0xb1, 0x97, 0x91, 0x30, 0xb5, 0x7c, 0x97, 0xda, 0x75, 0x6e, + 0x0d, 0x14, 0xa2, 0xa6, 0x16, 0x07, 0xa3, 0xc2, 0x93, 0x1b, 0x70, 0xd6, 0x0f, 0x98, 0x2a, 0x63, + 0x37, 0x97, 0xa8, 0x59, 0x6f, 0x5b, 0x36, 0x53, 0x2c, 0x1c, 0xbb, 0xee, 0x73, 0x05, 0x7f, 0xb8, + 0xf2, 0xd8, 0xc1, 0xfe, 0xec, 0xd9, 0x6a, 0x3a, 0x09, 0xf6, 0x2b, 0x4b, 0xde, 0x82, 0x19, 0xbf, + 0x5b, 0xab, 0x51, 0xdf, 0x6f, 0x74, 0xdb, 0xaf, 0x39, 0x5b, 0xfe, 0x65, 0xcb, 0x67, 0x5a, 0xd1, + 0x35, 0xab, 0x63, 0x05, 0x5c, 0x89, 0xcf, 0x57, 0xce, 0x1f, 0xec, 0xcf, 0xce, 0x54, 0xfb, 0x52, + 0xe1, 0x3d, 0x38, 0x10, 0x84, 0x33, 0x62, 0xcb, 0xe9, 0xe1, 0x3d, 0xc6, 0x79, 0xcf, 0x1c, 0xec, + 0xcf, 0x9e, 0x59, 0x49, 0xa5, 0xc0, 0x3e, 0x25, 0xd9, 0x08, 0x06, 0x56, 0x87, 0xbe, 0xe7, 0xd8, + 0x94, 0x6b, 0xea, 0x91, 0x11, 0xdc, 0x94, 0x70, 0xd4, 0x14, 0xe4, 0x4e, 0x38, 0xf9, 0xd8, 0xa2, + 0x90, 0xea, 0xf7, 0xd1, 0x77, 0xab, 0x53, 0x07, 0xfb, 0xb3, 0x53, 0xb7, 0x22, 0x9c, 0xd8, 0xc2, + 0xc2, 0x18, 0x6f, 0xe3, 0xaf, 0x87, 0x80, 0xf4, 0x6e, 0x04, 0xe4, 0x2a, 0x8c, 0x9a, 0xb5, 0x80, + 0xd9, 0xfa, 0xc2, 0x3f, 0xf4, 0x44, 0x9a, 0x12, 0x23, 0x44, 0x21, 0x6d, 0x50, 0x36, 0x43, 0x68, + 0xb8, 0x7b, 0x2c, 0xf0, 0xa2, 0x28, 0x59, 0x10, 0x07, 0xa6, 0xdb, 0xa6, 0x1f, 0xa8, 0xb9, 0x5a, + 0x67, 0x4d, 0x96, 0x9b, 0xe4, 0x7f, 0x3b, 0x5c, 0xa3, 0x58, 0x89, 0xca, 0x69, 0x36, 0x73, 0xaf, + 0x25, 0x19, 0x61, 0x2f, 0x6f, 0xe2, 0x01, 0xd4, 0xd4, 0x61, 0xc6, 0xf6, 0xc8, 0xec, 0x1e, 0x2e, + 0x7d, 0x26, 0x86, 0x5b, 0xbf, 0x06, 0xf9, 0x18, 0x91, 0x62, 0xfc, 0x64, 0x14, 0xc6, 0x96, 0x16, + 0x56, 0x37, 0x4d, 0x7f, 0xfb, 0x10, 0x0e, 0x27, 0x36, 0x21, 0xa4, 0x5a, 0x90, 0x5c, 0xd2, 0x4a, + 0x5d, 0x40, 0x4d, 0x41, 0x1c, 0x28, 0x9a, 0xca, 0x7d, 0x27, 0xb7, 0xfc, 0x97, 0x33, 0x9a, 0x20, + 0x92, 0x4b, 0xd4, 0x7d, 0x26, 0x41, 0x18, 0xca, 0x20, 0x3e, 0x94, 0x94, 0x70, 0xa4, 0x0d, 0x69, + 0xf7, 0x67, 0xf4, 0xa9, 0x86, 0x7c, 0x84, 0x1d, 0x1e, 0x01, 0x60, 0x54, 0x0a, 0xf9, 0x0c, 0x8c, + 0xd7, 0x29, 0xdb, 0x39, 0xa8, 0x5d, 0xb3, 0x28, 0xdb, 0x24, 0x86, 0x59, 0xbf, 0xb0, 0xcd, 0x72, + 0x29, 0x02, 0xc7, 0x18, 0x15, 0xb9, 0x03, 0xc5, 0x5d, 0x2b, 0x68, 0xf1, 0x3d, 0xbd, 0x3c, 0xca, + 0x87, 0xfa, 0xb3, 0x99, 0x2a, 0xca, 0x38, 0x84, 0xdd, 0x72, 0x4b, 0xf1, 0xc4, 0x90, 0x3d, 0x33, + 0x4c, 0xd9, 0x07, 0xf7, 0x71, 0xf2, 0xdd, 0xa0, 0x18, 0x2f, 0xc0, 0x11, 0x18, 0xd2, 0x10, 0x1f, + 0xc6, 0xd9, 0x47, 0x95, 0xbe, 0xd3, 0x65, 0x2b, 0x44, 0x5a, 0xe9, 0xd9, 0x3c, 0x9f, 0x8a, 0x89, + 0xe8, 0x91, 0x5b, 0x11, 0xb6, 0x18, 0x13, 0xc2, 0x66, 0xdf, 0x6e, 0x8b, 0xda, 0xd2, 0x15, 0xa6, + 0x67, 0xdf, 0xad, 0x16, 0xb5, 0x91, 0x63, 0x88, 0xc3, 0xd7, 0x87, 0x54, 0xd3, 0xb8, 0x0f, 0x2c, + 0xab, 0x37, 0x2a, 0xd4, 0xf6, 0x2a, 0x27, 0xe4, 0xe2, 0x90, 0xdf, 0x18, 0x11, 0xc1, 0x94, 0x3c, + 0xc7, 0x5e, 0x7e, 0xd7, 0x0a, 0xca, 0x25, 0x5e, 0x29, 0xbd, 0x53, 0xac, 0x73, 0x28, 0x4a, 0x2c, + 0x3b, 0x5d, 0xc4, 0xe0, 0xfa, 0xe5, 0xf1, 0xb8, 0xaa, 0x29, 0x66, 0x80, 0x8f, 0x0a, 0x6f, 0xfc, + 0x45, 0x0e, 0x4a, 0x6c, 0xbd, 0xa9, 0x35, 0xf2, 0x14, 0x8c, 0x06, 0xa6, 0xd7, 0x94, 0x76, 0x70, + 0x44, 0xc4, 0x26, 0x87, 0xa2, 0xc4, 0x12, 0x13, 0xf2, 0x81, 0xe9, 0x6f, 0x2b, 0xbd, 0xe2, 0xf3, + 0x99, 0x9a, 0x2d, 0x17, 0x7a, 0xa8, 0x52, 0xb0, 0x2f, 0x1f, 0x05, 0x67, 0xf2, 0x34, 0x14, 0xd8, + 0x39, 0xb0, 0x62, 0xfa, 0xc2, 0x21, 0x57, 0xa8, 0x8c, 0xb3, 0x85, 0xbd, 0x22, 0x61, 0xa8, 0xb1, + 0xc6, 0xf3, 0x90, 0x5f, 0xde, 0xa1, 0x36, 0x3f, 0x20, 0x7c, 0x69, 0x06, 0x26, 0x6d, 0x5f, 0x65, + 0x1e, 0xa2, 0xa6, 0x30, 0xde, 0x84, 0x13, 0xcb, 0xef, 0xd2, 0x5a, 0x37, 0x70, 0x3c, 0x61, 0x2e, + 0x92, 0xd7, 0x80, 0xf8, 0xd4, 0xdb, 0xb1, 0x6a, 0x74, 0xa1, 0x56, 0x63, 0x6a, 0xf2, 0xf5, 0x70, + 0xff, 0x99, 0x91, 0x9c, 0x48, 0xb5, 0x87, 0x02, 0x53, 0x4a, 0x19, 0xbf, 0x93, 0x83, 0x52, 0xc4, + 0x6b, 0xc3, 0x76, 0x9f, 0xe6, 0x62, 0xb5, 0xd2, 0xad, 0x6d, 0x6b, 0x27, 0xc3, 0xcb, 0x59, 0x5d, + 0x41, 0x82, 0x4b, 0xb8, 0x6a, 0x34, 0x08, 0x43, 0x19, 0xf7, 0x73, 0xe7, 0xfc, 0x59, 0x0e, 0xc2, + 0x72, 0x6c, 0xdc, 0xb7, 0xc2, 0xaa, 0x45, 0xc6, 0x5d, 0xf2, 0x95, 0x58, 0xf2, 0x41, 0x0e, 0xce, + 0xc6, 0x1b, 0xcb, 0x4d, 0xef, 0xa3, 0xbb, 0x35, 0x66, 0xa5, 0x80, 0xb3, 0xd5, 0x74, 0x6e, 0xd8, + 0x4f, 0x8c, 0x71, 0x13, 0xf2, 0xab, 0x66, 0xb7, 0x49, 0x0f, 0x65, 0xc0, 0xb0, 0x59, 0xe4, 0x51, + 0xb3, 0x1d, 0xa8, 0xc3, 0x52, 0xce, 0x22, 0x94, 0x30, 0xd4, 0x58, 0xe3, 0x5b, 0x23, 0x50, 0x8a, + 0x38, 0x6f, 0xd9, 0x06, 0xe0, 0x51, 0xd7, 0x49, 0x1e, 0x3f, 0x48, 0x5d, 0x07, 0x39, 0x86, 0x4d, + 0x37, 0x8f, 0xee, 0x58, 0xbe, 0xe5, 0xd8, 0xc9, 0xe3, 0x07, 0x25, 0x1c, 0x35, 0x05, 0x99, 0x85, + 0x7c, 0x9d, 0xba, 0x41, 0x8b, 0x4f, 0xe6, 0x91, 0x4a, 0x91, 0x55, 0x75, 0x89, 0x01, 0x50, 0xc0, + 0x19, 0x41, 0x83, 0x06, 0xb5, 0x56, 0x79, 0x84, 0x6f, 0xd9, 0x9c, 0x60, 0x85, 0x01, 0x50, 0xc0, + 0x53, 0x9c, 0x55, 0xf9, 0x07, 0xef, 0xac, 0x1a, 0x3d, 0x66, 0x67, 0x15, 0x71, 0xe1, 0xa4, 0xef, + 0xb7, 0x36, 0x3c, 0x6b, 0xc7, 0x0c, 0x68, 0x38, 0x7b, 0xc6, 0x8e, 0x22, 0xe7, 0xec, 0xc1, 0xfe, + 0xec, 0xc9, 0x6a, 0xf5, 0x72, 0x92, 0x0b, 0xa6, 0xb1, 0x26, 0x55, 0x38, 0x6d, 0xd9, 0x3e, 0xad, + 0x75, 0x3d, 0x7a, 0xa5, 0x69, 0x3b, 0x1e, 0xbd, 0xec, 0xf8, 0x8c, 0x9d, 0x8c, 0x89, 0x28, 0xf7, + 0xc0, 0xe9, 0x2b, 0x69, 0x44, 0x98, 0x5e, 0xd6, 0xf8, 0x6e, 0x0e, 0xc6, 0xa3, 0xfe, 0x6a, 0xe2, + 0x03, 0xb4, 0x96, 0x56, 0xaa, 0x62, 0x2b, 0x91, 0x2b, 0xfc, 0x95, 0xcc, 0x6e, 0x70, 0xc1, 0x26, + 0xd4, 0x97, 0x42, 0x18, 0x46, 0xc4, 0x1c, 0x22, 0xe4, 0xf6, 0x04, 0xe4, 0x1b, 0x8e, 0x57, 0xa3, + 0x72, 0x0f, 0xd5, 0xab, 0x64, 0x85, 0x01, 0x51, 0xe0, 0x8c, 0x8f, 0x73, 0x10, 0x91, 0x40, 0xfe, + 0x1f, 0x4c, 0x30, 0x19, 0x57, 0xbd, 0xad, 0x58, 0x6b, 0x2a, 0x99, 0x5b, 0xa3, 0x39, 0x55, 0x4e, + 0x4b, 0xf9, 0x13, 0x31, 0x30, 0xc6, 0xe5, 0x91, 0xff, 0x0e, 0x45, 0xb3, 0x5e, 0xf7, 0xa8, 0xef, + 0x53, 0x71, 0xc4, 0x14, 0x85, 0x5b, 0x6f, 0x41, 0x01, 0x31, 0xc4, 0xb3, 0x65, 0xd8, 0xaa, 0x37, + 0x7c, 0x36, 0xb3, 0xa5, 0x85, 0xa6, 0x97, 0x21, 0x13, 0xc2, 0xe0, 0xa8, 0x29, 0x8c, 0xaf, 0x8f, + 0x40, 0x5c, 0x36, 0xa9, 0xc3, 0xe4, 0xb6, 0xb7, 0xb5, 0xc8, 0x5d, 0x8f, 0x59, 0x9c, 0xc0, 0x27, + 0x0f, 0xf6, 0x67, 0x27, 0xaf, 0xc6, 0x39, 0x60, 0x92, 0xa5, 0x94, 0x72, 0x95, 0xee, 0x05, 0xe6, + 0x56, 0x96, 0x0d, 0x53, 0x49, 0x89, 0x72, 0xc0, 0x24, 0x4b, 0xf2, 0x3c, 0x94, 0xb6, 0xbd, 0x2d, + 0xb5, 0xc8, 0x93, 0x9e, 0xd7, 0xab, 0x21, 0x0a, 0xa3, 0x74, 0xac, 0x0b, 0xb7, 0xbd, 0x2d, 0xb6, + 0x29, 0xaa, 0xe8, 0xab, 0xee, 0xc2, 0xab, 0x12, 0x8e, 0x9a, 0x82, 0xb8, 0x40, 0xb6, 0x55, 0xef, + 0x69, 0x47, 0xab, 0xdc, 0x8b, 0x0e, 0xef, 0xa7, 0x3d, 0xc3, 0x0e, 0xd3, 0xab, 0x3d, 0x7c, 0x30, + 0x85, 0x37, 0xf9, 0x02, 0x9c, 0xdd, 0xf6, 0xb6, 0xe4, 0x51, 0xb1, 0xe1, 0x59, 0x76, 0xcd, 0x72, + 0x63, 0x61, 0x57, 0x7d, 0x9c, 0x5c, 0x4d, 0x27, 0xc3, 0x7e, 0xe5, 0x8d, 0x6f, 0xb0, 0x75, 0x1c, + 0x89, 0xaa, 0xdd, 0x2f, 0x9e, 0xd1, 0x80, 0xb1, 0x16, 0x35, 0xeb, 0xd4, 0x53, 0xba, 0xcf, 0x8b, + 0xd9, 0x56, 0x05, 0xe7, 0x11, 0x6a, 0x66, 0xe2, 0xdb, 0x47, 0xc5, 0xdc, 0x58, 0x87, 0x51, 0x01, + 0x3b, 0x84, 0x1d, 0xa4, 0x4f, 0xc2, 0xa1, 0x7b, 0xb8, 0xf2, 0x3e, 0xcc, 0x41, 0x91, 0x9b, 0xd3, + 0x4d, 0xa6, 0x53, 0xeb, 0x22, 0xc3, 0xf7, 0x38, 0x3c, 0x1b, 0x30, 0x26, 0xce, 0x7d, 0x9f, 0x9f, + 0x49, 0x59, 0xdb, 0x2a, 0x72, 0x55, 0xc2, 0xb6, 0x0a, 0x9d, 0xc2, 0x47, 0xc5, 0xdc, 0xf8, 0xe7, + 0x1c, 0x8c, 0x5e, 0xb1, 0xdd, 0xee, 0xcf, 0x49, 0x5a, 0xc5, 0x1a, 0x8c, 0x30, 0x4b, 0x28, 0x9e, + 0xbc, 0x33, 0x5e, 0x79, 0x32, 0x9a, 0xb8, 0x53, 0x8e, 0x27, 0xee, 0xa0, 0xb9, 0xab, 0xdc, 0xc4, + 0xa2, 0xcc, 0xe7, 0x0a, 0x1f, 0xfe, 0xde, 0xec, 0x23, 0x1f, 0xfc, 0xe0, 0xc2, 0x23, 0x46, 0x1b, + 0x46, 0xae, 0x59, 0xf6, 0xf6, 0xe1, 0xe6, 0x89, 0x5f, 0x73, 0xdc, 0x9e, 0x79, 0x52, 0x65, 0x40, + 0x14, 0x38, 0x35, 0xff, 0x87, 0xd3, 0xe7, 0xbf, 0xf1, 0xa5, 0x1c, 0x4c, 0xaf, 0xd1, 0x8e, 0x63, + 0xbd, 0x67, 0x86, 0x5e, 0x6e, 0x56, 0xa8, 0x65, 0x05, 0xd2, 0x45, 0xad, 0x0b, 0x5d, 0xb6, 0x02, + 0x64, 0xf0, 0xfb, 0xe8, 0xa2, 0x3c, 0x54, 0xc9, 0xb6, 0xca, 0xeb, 0xe1, 0x9e, 0x15, 0x86, 0x2a, + 0x15, 0x02, 0x43, 0x1a, 0xe3, 0x8f, 0x72, 0x30, 0x26, 0x2a, 0x41, 0x15, 0xef, 0x5c, 0x1f, 0xde, + 0xb7, 0x21, 0xcf, 0xcb, 0xc9, 0xdd, 0xf6, 0x73, 0xd9, 0x0c, 0x34, 0xc6, 0x41, 0x68, 0x64, 0xfc, + 0x27, 0x0a, 0x9e, 0x4c, 0x6d, 0xee, 0x98, 0xef, 0x2e, 0x68, 0x9f, 0xbe, 0x56, 0x9b, 0xd7, 0x38, + 0x14, 0x25, 0xd6, 0xf8, 0x60, 0x18, 0x0a, 0xca, 0x75, 0x44, 0xbe, 0x9c, 0x83, 0x92, 0x69, 0xdb, + 0x4e, 0x60, 0x0a, 0xcf, 0x8a, 0x98, 0xe4, 0xd7, 0x33, 0x55, 0x4c, 0x31, 0x9d, 0x5b, 0x08, 0x19, + 0x2e, 0xdb, 0x81, 0xb7, 0x17, 0x6e, 0xfa, 0x11, 0x0c, 0x46, 0xe5, 0x92, 0x77, 0x60, 0xb4, 0x6d, + 0x6e, 0xd1, 0xb6, 0x9a, 0xf3, 0x57, 0x06, 0xab, 0xc1, 0x35, 0xce, 0x4b, 0x08, 0xd7, 0xfd, 0x20, + 0x80, 0x28, 0x05, 0xcd, 0xbc, 0x0c, 0x53, 0xc9, 0x8a, 0x92, 0xa9, 0xc8, 0xf8, 0x89, 0x21, 0x3b, + 0x15, 0xdb, 0xce, 0xd4, 0x84, 0x1f, 0x7a, 0x21, 0x37, 0xf3, 0x59, 0x28, 0x45, 0xc4, 0x1c, 0xa5, + 0xa8, 0xf1, 0x3a, 0x94, 0xd6, 0x68, 0xe0, 0x59, 0x35, 0xce, 0xe0, 0x7e, 0xb3, 0xe6, 0x50, 0x3b, + 0xea, 0x7b, 0x6c, 0x12, 0x32, 0x96, 0x3e, 0x71, 0x00, 0x5c, 0xcf, 0xe9, 0xd0, 0xa0, 0x45, 0xbb, + 0x6a, 0x44, 0xb3, 0x29, 0x7f, 0x1b, 0x9a, 0x8d, 0xf0, 0x05, 0x84, 0xdf, 0x18, 0x11, 0x61, 0x5c, + 0x84, 0xfc, 0x5a, 0x37, 0xa0, 0xef, 0xde, 0x7f, 0xd5, 0x1b, 0xb7, 0x61, 0x9c, 0x93, 0x5e, 0x76, + 0xda, 0x6c, 0x43, 0x61, 0x6d, 0xeb, 0xb0, 0xef, 0xa4, 0xdd, 0xc4, 0x89, 0x50, 0xe0, 0xd8, 0xcc, + 0x6e, 0x39, 0xed, 0x3a, 0xf5, 0x64, 0x0f, 0xe8, 0x11, 0xbd, 0xcc, 0xa1, 0x28, 0xb1, 0xc6, 0x8f, + 0x73, 0x50, 0xe2, 0x05, 0xe5, 0x46, 0xd0, 0x86, 0xb1, 0x96, 0x90, 0x23, 0x7b, 0x21, 0x9b, 0xb7, + 0x3f, 0x5a, 0xe1, 0xc8, 0x21, 0x29, 0x00, 0xa8, 0x44, 0x30, 0x69, 0xbb, 0xa6, 0x15, 0x30, 0x69, + 0x43, 0xc7, 0x2e, 0xed, 0x96, 0xe0, 0x8c, 0x4a, 0x84, 0xf1, 0xc7, 0x53, 0x00, 0xd7, 0x9d, 0x3a, + 0x95, 0x4d, 0x9d, 0x81, 0x21, 0xab, 0x2e, 0x3b, 0x11, 0x64, 0xa1, 0xa1, 0x2b, 0x4b, 0x38, 0x64, + 0xd5, 0xf5, 0xa8, 0x0c, 0xf5, 0xdd, 0x8b, 0x9f, 0x87, 0x52, 0xdd, 0xf2, 0xdd, 0xb6, 0xb9, 0x77, + 0x3d, 0x45, 0x53, 0x5b, 0x0a, 0x51, 0x18, 0xa5, 0x23, 0xcf, 0xc8, 0xc8, 0xa6, 0xd0, 0xd2, 0xca, + 0x89, 0xc8, 0x66, 0x81, 0x55, 0x2f, 0x12, 0xd4, 0x7c, 0x01, 0xc6, 0x95, 0x6f, 0x90, 0x4b, 0xc9, + 0xf3, 0x52, 0xa7, 0x54, 0xf4, 0x64, 0x33, 0x82, 0xc3, 0x18, 0x65, 0xd2, 0x77, 0x39, 0xfa, 0x50, + 0x7c, 0x97, 0x4b, 0x30, 0xe5, 0x07, 0x8e, 0x47, 0xeb, 0x8a, 0xe2, 0xca, 0x52, 0x99, 0xc4, 0x1a, + 0x3a, 0x55, 0x4d, 0xe0, 0xb1, 0xa7, 0x04, 0xd9, 0x80, 0x53, 0xbb, 0x89, 0xa0, 0x31, 0x6f, 0xfc, + 0x49, 0xce, 0xe9, 0x9c, 0xe4, 0x74, 0xea, 0x56, 0x0a, 0x0d, 0xa6, 0x96, 0x24, 0x2f, 0xc2, 0x84, + 0xaa, 0x26, 0x3f, 0x2a, 0xcb, 0xa7, 0x38, 0x2b, 0x6d, 0xcb, 0x6c, 0x46, 0x91, 0x18, 0xa7, 0x25, + 0x9f, 0x86, 0xbc, 0xdb, 0x32, 0x7d, 0x2a, 0x5d, 0x9d, 0xca, 0x8f, 0x94, 0xdf, 0x60, 0xc0, 0xbb, + 0xfb, 0xb3, 0x45, 0x36, 0x66, 0xfc, 0x03, 0x05, 0x21, 0xb9, 0x04, 0xb0, 0xe5, 0x74, 0xed, 0xba, + 0xe9, 0xed, 0x5d, 0x59, 0x92, 0x91, 0x0e, 0xad, 0xc3, 0x54, 0x34, 0x06, 0x23, 0x54, 0xd1, 0xf0, + 0x72, 0xf1, 0xde, 0xe1, 0x65, 0x72, 0x1b, 0x8a, 0x3c, 0x2a, 0x44, 0xeb, 0x0b, 0x81, 0x74, 0x5b, + 0x1e, 0x25, 0x80, 0xa0, 0x4f, 0xe6, 0xaa, 0x62, 0x82, 0x21, 0x3f, 0xf2, 0x16, 0x40, 0xc3, 0xb2, + 0x2d, 0xbf, 0xc5, 0xb9, 0x97, 0x8e, 0xcc, 0x5d, 0xb7, 0x73, 0x45, 0x73, 0xc1, 0x08, 0x47, 0xf2, + 0x26, 0x4c, 0x53, 0x3f, 0xb0, 0x3a, 0x66, 0x40, 0xeb, 0x3a, 0xc1, 0xa4, 0xcc, 0x03, 0x61, 0x3a, + 0x2e, 0xb7, 0x9c, 0x24, 0xb8, 0x9b, 0x06, 0xc4, 0x5e, 0x46, 0xe4, 0x05, 0x28, 0xb8, 0x9e, 0xd3, + 0x64, 0x86, 0x65, 0x79, 0x26, 0x36, 0x5d, 0x0a, 0x1b, 0x12, 0x7e, 0x37, 0xf2, 0x1b, 0x35, 0x35, + 0xf9, 0xa7, 0x1c, 0x4c, 0x7b, 0xd4, 0x77, 0xba, 0x5e, 0x8d, 0xfa, 0xba, 0x62, 0xa7, 0xf9, 0xa6, + 0x74, 0x33, 0x63, 0xa2, 0xb3, 0xda, 0x69, 0xe6, 0x30, 0xc9, 0x58, 0x9c, 0xb2, 0x54, 0x35, 0xb8, + 0x07, 0x7f, 0x37, 0x0d, 0xf8, 0xa5, 0x1f, 0xce, 0xce, 0xf6, 0xe6, 0xd6, 0x6b, 0xe6, 0x6c, 0xa6, + 0xff, 0xf2, 0x0f, 0x67, 0xa7, 0xd4, 0x77, 0xd8, 0x4f, 0x3d, 0xed, 0x62, 0x47, 0x88, 0xeb, 0xd4, + 0xaf, 0x6c, 0x48, 0xff, 0xb2, 0x3e, 0x42, 0x36, 0x18, 0x10, 0x05, 0x8e, 0x3c, 0x0d, 0x85, 0xba, + 0x49, 0x3b, 0x8e, 0x4d, 0xeb, 0xe5, 0x89, 0xd0, 0xf5, 0xb6, 0x24, 0x61, 0xa8, 0xb1, 0xe4, 0x6d, + 0x18, 0xb5, 0xb8, 0xfa, 0x5f, 0x3e, 0xc1, 0x27, 0x4c, 0x36, 0x33, 0x43, 0x58, 0x10, 0x22, 0x21, + 0x49, 0xfc, 0x46, 0xc9, 0x96, 0xd4, 0x60, 0xcc, 0xe9, 0x06, 0x5c, 0xc2, 0x24, 0x97, 0x90, 0xcd, + 0x61, 0xbd, 0x2e, 0x78, 0x88, 0x6c, 0x5b, 0xf9, 0x81, 0x8a, 0x33, 0x6b, 0x6f, 0xad, 0x65, 0xb5, + 0xeb, 0x1e, 0xb5, 0xcb, 0x53, 0xdc, 0x67, 0xc1, 0xdb, 0xbb, 0x28, 0x61, 0xa8, 0xb1, 0xe4, 0x7f, + 0xc2, 0x84, 0xd3, 0x0d, 0xf8, 0xea, 0x65, 0xa3, 0xec, 0x97, 0xa7, 0x39, 0xf9, 0x34, 0xdb, 0x4b, + 0xd6, 0xa3, 0x08, 0x8c, 0xd3, 0xb1, 0xfd, 0xbc, 0xe5, 0xf8, 0x01, 0xfb, 0xe0, 0x5b, 0xda, 0x99, + 0xf8, 0x7e, 0x7e, 0x39, 0x82, 0xc3, 0x18, 0x25, 0xf9, 0x5a, 0x0e, 0xa6, 0x3b, 0x49, 0xb5, 0xbd, + 0x7c, 0x96, 0x77, 0xc6, 0x4a, 0x46, 0xc5, 0x2f, 0xc1, 0x4d, 0x84, 0x16, 0x7b, 0xc0, 0xd8, 0x2b, + 0x97, 0xfc, 0x6e, 0x0e, 0x4e, 0xfb, 0x7b, 0x76, 0xad, 0xe5, 0x39, 0x76, 0xbc, 0x46, 0x8f, 0xf2, + 0x1a, 0x5d, 0xcf, 0xbe, 0x62, 0xd2, 0xb8, 0x56, 0x1e, 0x3d, 0xd8, 0x9f, 0x3d, 0x9d, 0x8a, 0xc2, + 0xf4, 0x7a, 0xcc, 0x2c, 0xc1, 0x99, 0xf4, 0x55, 0x77, 0x3f, 0xa5, 0x73, 0x38, 0xaa, 0x74, 0xae, + 0xc0, 0xa3, 0x7d, 0x2b, 0xc5, 0xb6, 0x6c, 0xa5, 0xbc, 0xe4, 0xe2, 0x5b, 0x76, 0x8f, 0xe6, 0x71, + 0x02, 0xc6, 0xa3, 0xf7, 0x1e, 0x78, 0x70, 0x21, 0x92, 0x6f, 0x4a, 0x1c, 0x28, 0x3a, 0xd5, 0xe3, + 0x08, 0x2e, 0xac, 0x57, 0x7b, 0x82, 0x0b, 0x1a, 0x84, 0xa1, 0x8c, 0xfb, 0x05, 0x17, 0xfe, 0x74, + 0x08, 0xc2, 0x72, 0xe4, 0x19, 0x28, 0x50, 0xbb, 0xee, 0x3a, 0x96, 0x1d, 0x24, 0xc3, 0x32, 0xcb, + 0x12, 0x8e, 0x9a, 0x22, 0x12, 0x8a, 0x18, 0xba, 0x67, 0x28, 0xa2, 0x05, 0x93, 0x26, 0x4f, 0x3f, + 0x08, 0x7d, 0xc8, 0xc3, 0x47, 0xf2, 0x21, 0xeb, 0xc4, 0xd1, 0x38, 0x17, 0x4c, 0xb2, 0x65, 0x92, + 0xfc, 0xb0, 0x38, 0x97, 0x34, 0x92, 0x49, 0x52, 0x35, 0xce, 0x05, 0x93, 0x6c, 0x8d, 0x3f, 0x1f, + 0x02, 0xb5, 0xaf, 0xfc, 0x3c, 0x78, 0x42, 0x88, 0x01, 0xa3, 0x1e, 0xf5, 0xbb, 0xed, 0x40, 0xea, + 0xbf, 0x7c, 0xef, 0x46, 0x0e, 0x41, 0x89, 0x61, 0xdb, 0x2a, 0x7d, 0xd7, 0x0a, 0x16, 0x9d, 0xba, + 0xd2, 0x7a, 0xf9, 0xb6, 0xba, 0x2c, 0x61, 0xa8, 0xb1, 0xc6, 0x2e, 0x4c, 0xb0, 0x76, 0xb5, 0xdb, + 0xb4, 0x5d, 0x0d, 0xa8, 0xeb, 0x93, 0x06, 0xe4, 0x7d, 0xf6, 0x63, 0x20, 0x53, 0x24, 0xcc, 0xe9, + 0xa0, 0x6e, 0xc4, 0x65, 0xc2, 0xf8, 0xa2, 0x60, 0x6f, 0xfc, 0xc3, 0x10, 0x14, 0x75, 0x8f, 0x1e, + 0xc2, 0x0f, 0x73, 0x09, 0xc6, 0xea, 0xb4, 0x61, 0xb2, 0x76, 0x8b, 0x39, 0x5e, 0x16, 0xc1, 0x59, + 0x0e, 0x62, 0x2a, 0xe1, 0x82, 0xbd, 0x27, 0xd2, 0x6b, 0x51, 0x11, 0x92, 0x67, 0xe2, 0x0e, 0xbb, + 0x33, 0x51, 0x67, 0x51, 0x84, 0x5e, 0x7a, 0xee, 0xb6, 0xa1, 0xc8, 0x7f, 0xac, 0xa8, 0xfb, 0x34, + 0x59, 0xe7, 0xce, 0x4d, 0xc5, 0x45, 0x38, 0xe0, 0xf5, 0x27, 0x86, 0xfc, 0x13, 0xf7, 0x60, 0xf2, + 0x87, 0xba, 0x07, 0x73, 0x11, 0x46, 0xa8, 0xdd, 0xed, 0xf0, 0x5c, 0x83, 0x22, 0x3f, 0x39, 0x46, + 0x96, 0xed, 0x6e, 0x27, 0xde, 0x18, 0x4e, 0x62, 0xac, 0x00, 0xd3, 0x2b, 0x56, 0x17, 0xc9, 0x4b, + 0x50, 0xf0, 0xe5, 0x0e, 0x28, 0x3b, 0xf7, 0x13, 0x3a, 0xbc, 0x2b, 0xe1, 0x77, 0xf7, 0x67, 0x27, + 0x38, 0xb1, 0x02, 0xa0, 0x2e, 0x62, 0x7c, 0x65, 0x04, 0x22, 0xd6, 0xf4, 0x21, 0x86, 0xa9, 0x9e, + 0x70, 0x90, 0xbc, 0x9a, 0xd5, 0x41, 0xa2, 0xbc, 0x0e, 0x62, 0x7e, 0xc7, 0x7d, 0x22, 0xac, 0x1e, + 0x2d, 0xda, 0x76, 0xe5, 0xb8, 0xea, 0x7a, 0x5c, 0xa6, 0x6d, 0x17, 0x39, 0x46, 0xa7, 0x22, 0x8c, + 0xf4, 0x4d, 0x45, 0xb8, 0x0d, 0xf9, 0xa6, 0xd9, 0x6d, 0x52, 0xe9, 0x84, 0xcf, 0xe6, 0xe4, 0xe2, + 0x51, 0x55, 0xe1, 0xe4, 0xe2, 0x3f, 0x51, 0xf0, 0x64, 0x73, 0xa9, 0xa5, 0xfc, 0xc6, 0xd2, 0x10, + 0xcc, 0x36, 0x97, 0xb4, 0xf7, 0x59, 0xcc, 0x25, 0xfd, 0x89, 0x21, 0x7f, 0xa6, 0xa9, 0xd5, 0x44, + 0x82, 0xaa, 0x8c, 0x08, 0x7e, 0x3e, 0x63, 0x46, 0x05, 0xe7, 0x21, 0x34, 0x35, 0xf9, 0x81, 0x8a, + 0xb3, 0x31, 0x0f, 0xa5, 0xc8, 0x55, 0x10, 0xd6, 0xbf, 0x3a, 0xfd, 0x32, 0xd2, 0xbf, 0x4b, 0x66, + 0x60, 0x22, 0xc7, 0x18, 0xdf, 0x1c, 0x06, 0xad, 0x17, 0x47, 0x73, 0x25, 0xcc, 0x5a, 0x24, 0xcf, + 0x3e, 0x96, 0xb8, 0xe5, 0xd8, 0x28, 0xb1, 0xcc, 0x7a, 0xec, 0x50, 0xaf, 0xa9, 0x4f, 0x6f, 0xb9, + 0xe6, 0xb5, 0xf5, 0xb8, 0x16, 0x45, 0x62, 0x9c, 0x96, 0x9d, 0x9d, 0x1d, 0xd3, 0xb6, 0x1a, 0xd4, + 0x0f, 0x92, 0xc1, 0xad, 0x35, 0x09, 0x47, 0x4d, 0x41, 0x56, 0x61, 0xda, 0xa7, 0xc1, 0xfa, 0xae, + 0x4d, 0x3d, 0x9d, 0x50, 0x26, 0x33, 0x0c, 0x1f, 0x55, 0xc6, 0x42, 0x35, 0x49, 0x80, 0xbd, 0x65, + 0xb8, 0x25, 0x2e, 0x92, 0xfb, 0x74, 0xa2, 0x96, 0x5c, 0xd8, 0xa1, 0x25, 0x9e, 0xc0, 0x63, 0x4f, + 0x09, 0xc6, 0xa5, 0x61, 0x5a, 0xed, 0xae, 0x47, 0x43, 0x2e, 0xa3, 0x71, 0x2e, 0x2b, 0x09, 0x3c, + 0xf6, 0x94, 0xe0, 0x71, 0xf1, 0xb6, 0xd9, 0xf4, 0xcb, 0x63, 0x91, 0xb8, 0x38, 0x03, 0xa0, 0x80, + 0x1b, 0x1f, 0x0e, 0xc1, 0x04, 0xd2, 0xc0, 0xdb, 0xd3, 0xbd, 0xf6, 0x3a, 0xe4, 0xdb, 0x3c, 0xd9, + 0x30, 0x97, 0xf1, 0x56, 0x03, 0x17, 0x22, 0xb2, 0x11, 0x05, 0x27, 0xb2, 0x04, 0x25, 0x8f, 0xc9, + 0x90, 0xa9, 0xa0, 0x62, 0x0c, 0x8d, 0xf0, 0xca, 0x9b, 0x46, 0xdd, 0x8d, 0x7f, 0x62, 0xb4, 0x18, + 0xb1, 0x61, 0x6c, 0x4b, 0x5c, 0xd4, 0x90, 0xca, 0x4a, 0xb6, 0xe9, 0x2d, 0x2f, 0x7b, 0xf0, 0x53, + 0x40, 0xdd, 0xfc, 0xb8, 0x1b, 0xfe, 0x44, 0x25, 0xc4, 0xf8, 0x30, 0x07, 0x10, 0xde, 0x75, 0x23, + 0xdb, 0x50, 0xf0, 0x9f, 0x8b, 0xa9, 0x89, 0x19, 0xb3, 0xa8, 0x24, 0x93, 0x48, 0x7e, 0x8d, 0x84, + 0xa0, 0x16, 0x70, 0x3f, 0x1d, 0xf1, 0xe3, 0x61, 0xd0, 0xa5, 0x1e, 0x90, 0x8a, 0xf8, 0x14, 0x53, + 0x2f, 0x9a, 0xe1, 0x15, 0x14, 0x4d, 0x87, 0x1c, 0x8a, 0x12, 0xcb, 0x54, 0x0c, 0x15, 0xe4, 0x97, + 0xab, 0x85, 0xab, 0x18, 0x2a, 0x1f, 0x00, 0x35, 0x36, 0x4d, 0xe9, 0xcc, 0x3f, 0x34, 0xa5, 0x73, + 0xf4, 0x81, 0x28, 0x9d, 0xcc, 0x0e, 0xf1, 0x9c, 0x36, 0x5d, 0xc0, 0xeb, 0xd2, 0x45, 0xa5, 0xed, + 0x10, 0x14, 0x60, 0x54, 0x78, 0xf2, 0x3c, 0x94, 0xba, 0x3e, 0xad, 0x2e, 0x5d, 0x5d, 0xf4, 0x68, + 0xdd, 0x97, 0xf9, 0x13, 0xda, 0x69, 0x79, 0x23, 0x44, 0x61, 0x94, 0xce, 0xf8, 0xa5, 0x1c, 0x9c, + 0xa8, 0xd6, 0x3c, 0xcb, 0x0d, 0xf4, 0xe6, 0x79, 0x9d, 0x5f, 0xf1, 0x09, 0x4c, 0xb6, 0x14, 0xe5, + 0x54, 0x7c, 0xbc, 0x4f, 0xe8, 0x58, 0x10, 0xc5, 0x2e, 0xaf, 0x09, 0x10, 0x86, 0x2c, 0xd8, 0x50, + 0x8b, 0xed, 0x39, 0x39, 0x25, 0xaa, 0x1c, 0x8a, 0x12, 0x6b, 0xdc, 0x81, 0xa9, 0x2a, 0xed, 0x98, + 0x6e, 0x8b, 0xa7, 0x72, 0x08, 0x2f, 0xf2, 0x3c, 0x14, 0x7d, 0x05, 0x4b, 0xde, 0x94, 0xd3, 0xc4, + 0x18, 0xd2, 0x90, 0x27, 0x85, 0x93, 0x5b, 0xc5, 0x80, 0x8b, 0xe2, 0x98, 0x11, 0x9e, 0x71, 0x1f, + 0x15, 0xce, 0xd8, 0x85, 0xf1, 0xb0, 0x38, 0x6d, 0x90, 0x26, 0x4c, 0xd6, 0x22, 0x91, 0x70, 0xa4, + 0x8d, 0x23, 0x5f, 0x6e, 0xe2, 0x59, 0x00, 0x8b, 0x71, 0x26, 0x98, 0xe4, 0x6a, 0xfc, 0x6b, 0x0e, + 0x26, 0xb5, 0x64, 0x69, 0x6d, 0xba, 0x49, 0xc7, 0xfc, 0x72, 0xc6, 0xfc, 0xc9, 0x78, 0xe7, 0xdd, + 0xc3, 0x39, 0xef, 0x26, 0x9d, 0xf3, 0xc7, 0x2d, 0xb1, 0xc7, 0x4c, 0xfe, 0xfd, 0x21, 0x28, 0xe8, + 0x04, 0xce, 0xd7, 0x21, 0xcf, 0xcf, 0xfb, 0xc1, 0xce, 0x00, 0xae, 0x3b, 0xa0, 0xe0, 0xc4, 0x58, + 0x72, 0x4f, 0x67, 0xe6, 0xcb, 0x72, 0x45, 0x61, 0x3a, 0x98, 0x5e, 0x80, 0x82, 0x13, 0xb9, 0x0a, + 0xc3, 0xd4, 0xae, 0xcb, 0xc3, 0xe0, 0xe8, 0x0c, 0xf9, 0x5d, 0xd0, 0x65, 0xbb, 0x8e, 0x8c, 0x0b, + 0xbf, 0x05, 0xe4, 0x78, 0x1d, 0x33, 0x90, 0xaa, 0x62, 0x78, 0x0b, 0x88, 0x43, 0x51, 0x62, 0x8d, + 0x5f, 0x1d, 0x82, 0xd1, 0x6a, 0x77, 0x8b, 0x1d, 0x6b, 0xbf, 0x95, 0x83, 0x93, 0x49, 0x9f, 0x77, + 0x38, 0x31, 0x2f, 0x1f, 0xcb, 0x2d, 0x35, 0xa4, 0x8d, 0xca, 0x63, 0xb2, 0x2a, 0x27, 0x53, 0x90, + 0x98, 0x56, 0x03, 0xa6, 0x76, 0x86, 0xe9, 0xda, 0x43, 0xc7, 0x92, 0xae, 0x3d, 0xd1, 0x2f, 0x55, + 0xdb, 0xf8, 0xab, 0x11, 0x00, 0xd1, 0x23, 0xeb, 0x6e, 0x70, 0x18, 0xdb, 0xe0, 0x05, 0x18, 0x57, + 0xaf, 0x72, 0x5c, 0x0f, 0x03, 0x3d, 0xda, 0x13, 0xb7, 0x1a, 0xc1, 0x61, 0x8c, 0x92, 0x59, 0x4b, + 0xd4, 0x0e, 0xbc, 0x3d, 0x71, 0xd8, 0x8d, 0xc4, 0xad, 0xa5, 0x65, 0x8d, 0xc1, 0x08, 0x15, 0x99, + 0x8b, 0xf9, 0x02, 0x44, 0x4a, 0xf7, 0x89, 0x7b, 0xd8, 0xf1, 0x2f, 0xc2, 0x84, 0xfe, 0x5a, 0xb1, + 0xda, 0x2a, 0x4b, 0x46, 0xab, 0x9c, 0x1b, 0x51, 0x24, 0xc6, 0x69, 0xc9, 0xcb, 0x70, 0x22, 0x9e, + 0x7b, 0x29, 0x8f, 0x85, 0x33, 0xb2, 0xf4, 0x89, 0x78, 0xca, 0x26, 0x26, 0xa8, 0xd9, 0x2c, 0xac, + 0x7b, 0x7b, 0xd8, 0xb5, 0xe5, 0xf9, 0xa0, 0x67, 0xe1, 0x12, 0x87, 0xa2, 0xc4, 0xb2, 0x2e, 0x64, + 0x25, 0xa9, 0x27, 0xe0, 0x3c, 0x6e, 0x51, 0x08, 0xbb, 0xb0, 0x1a, 0xc1, 0x61, 0x8c, 0x92, 0x49, + 0x90, 0x86, 0x19, 0xc4, 0xe7, 0x79, 0xc2, 0xb4, 0x72, 0xe1, 0x84, 0x13, 0xd7, 0x85, 0x45, 0x40, + 0xe2, 0x33, 0x87, 0xbc, 0x04, 0x12, 0x2b, 0x2b, 0x92, 0x1b, 0x13, 0xaa, 0x73, 0x82, 0xbf, 0x71, + 0x12, 0xa6, 0xab, 0x5d, 0xd7, 0x6d, 0x5b, 0xb4, 0xae, 0x4d, 0x65, 0xe3, 0x15, 0x98, 0x94, 0xd7, + 0x7a, 0xf4, 0xf1, 0x77, 0xa4, 0x5b, 0xba, 0xc6, 0x3e, 0xdb, 0xcf, 0xe3, 0x3e, 0x44, 0x62, 0x27, + 0x0f, 0xad, 0xac, 0xfe, 0x8d, 0xe8, 0x11, 0x25, 0x56, 0x48, 0xea, 0x99, 0x77, 0x5b, 0x45, 0x8d, + 0x07, 0xc9, 0xa3, 0xe0, 0x81, 0x56, 0xb1, 0x0b, 0x46, 0xa3, 0xcd, 0xc6, 0x4f, 0x72, 0x90, 0xee, + 0x9e, 0x25, 0xef, 0xf4, 0x36, 0x73, 0x69, 0xb0, 0x66, 0x4a, 0x97, 0x70, 0xff, 0x96, 0x9a, 0xf1, + 0x96, 0xbe, 0x9a, 0xbd, 0xa5, 0x52, 0x54, 0x6f, 0x7b, 0xff, 0x2d, 0x07, 0xa5, 0xcd, 0xcd, 0x6b, + 0xda, 0x5e, 0x41, 0x38, 0xe3, 0x8b, 0x8b, 0x59, 0x0b, 0x8d, 0x80, 0x7a, 0x8b, 0x4e, 0xc7, 0x6d, + 0x53, 0x3d, 0x39, 0xe4, 0x6d, 0xa9, 0x6a, 0x2a, 0x05, 0xf6, 0x29, 0x49, 0xae, 0xc0, 0xc9, 0x28, + 0x46, 0x9a, 0x6b, 0xbc, 0x51, 0x79, 0x99, 0x40, 0xdb, 0x8b, 0xc6, 0xb4, 0x32, 0x49, 0x56, 0xd2, + 0x66, 0x93, 0xaf, 0xb8, 0xf4, 0xb0, 0x92, 0x68, 0x4c, 0x2b, 0x63, 0xac, 0x43, 0x29, 0xf2, 0x3e, + 0x10, 0x79, 0x15, 0xa6, 0x6a, 0x4e, 0xc7, 0xf5, 0xa8, 0xef, 0x5b, 0x8e, 0x7d, 0x8d, 0xee, 0xd0, + 0xb6, 0x6c, 0x32, 0xbf, 0x76, 0xb5, 0x98, 0xc0, 0x61, 0x0f, 0xb5, 0xf1, 0x27, 0x8f, 0x81, 0xbe, + 0xec, 0xf3, 0x8b, 0x2b, 0x43, 0x99, 0xc2, 0xee, 0x35, 0x1d, 0x7e, 0xcb, 0x0f, 0x1e, 0x7e, 0xd3, + 0x7b, 0x71, 0x22, 0x04, 0xd7, 0x0c, 0x43, 0x70, 0xa3, 0xc7, 0x10, 0x82, 0xd3, 0x4a, 0x60, 0x4f, + 0x18, 0xee, 0xab, 0x39, 0x18, 0xb7, 0x9d, 0x3a, 0x55, 0x3a, 0x33, 0x77, 0x1b, 0x94, 0x2e, 0xad, + 0x0f, 0xd4, 0x89, 0x22, 0xb6, 0x24, 0x39, 0x8a, 0xe8, 0xab, 0x3e, 0xa8, 0xa2, 0x28, 0x8c, 0x89, + 0x26, 0x2b, 0x50, 0x30, 0x1b, 0x0d, 0xcb, 0xb6, 0x82, 0x3d, 0x79, 0x6b, 0xe9, 0x5c, 0x9a, 0xaa, + 0xbf, 0x20, 0x69, 0x84, 0xd9, 0xa9, 0xbe, 0x50, 0x97, 0x65, 0x76, 0xbb, 0xbe, 0x24, 0x5c, 0x1c, + 0xc0, 0x6e, 0x57, 0xc9, 0x5a, 0x11, 0x27, 0x92, 0xba, 0xd0, 0x18, 0xde, 0x19, 0x36, 0x60, 0x54, + 0x44, 0x66, 0xe5, 0xbb, 0x3e, 0xdc, 0x69, 0x29, 0xa2, 0xb6, 0x28, 0x31, 0xa4, 0xa9, 0x3c, 0xeb, + 0x25, 0xde, 0xb9, 0x95, 0xcc, 0x71, 0x09, 0xed, 0xac, 0x4f, 0x77, 0xad, 0x93, 0xd7, 0xa2, 0x76, + 0xe2, 0xf8, 0x61, 0xec, 0xc4, 0x89, 0xbe, 0x36, 0x62, 0x13, 0x46, 0x7d, 0x6e, 0x85, 0xf2, 0x70, + 0x74, 0xe9, 0xd2, 0x62, 0xb6, 0x83, 0x24, 0x66, 0xc8, 0x8a, 0xde, 0x11, 0x30, 0x94, 0xec, 0x89, + 0x03, 0x05, 0x15, 0x33, 0x97, 0x11, 0xed, 0x6c, 0xa6, 0x4f, 0xd2, 0xe5, 0xa8, 0xee, 0xae, 0x08, + 0x28, 0x6a, 0x21, 0xe4, 0x36, 0x0c, 0xd7, 0xcd, 0xa6, 0x8c, 0x6d, 0xbf, 0x9a, 0xf9, 0x32, 0x96, + 0x12, 0xc3, 0xad, 0x8a, 0xa5, 0x85, 0x55, 0x64, 0x5c, 0xc9, 0x76, 0x78, 0x59, 0x79, 0x6a, 0x90, + 0x03, 0x38, 0xae, 0x02, 0x09, 0x9b, 0xb9, 0xe7, 0xba, 0xf3, 0x32, 0x8c, 0xed, 0x38, 0xed, 0x6e, + 0x47, 0x06, 0xc5, 0x4b, 0x97, 0x66, 0xd2, 0x46, 0xfb, 0x26, 0x27, 0x09, 0x37, 0x01, 0xf1, 0xed, + 0xa3, 0x2a, 0x4b, 0xbe, 0x94, 0x83, 0x13, 0x6c, 0xe9, 0xe8, 0x79, 0xe0, 0x97, 0xc9, 0x00, 0x33, + 0xf5, 0x86, 0xcf, 0x8e, 0x56, 0x35, 0xc3, 0xb4, 0x22, 0x7c, 0x25, 0x26, 0x01, 0x13, 0x12, 0x89, + 0x0b, 0x05, 0xdf, 0xaa, 0xd3, 0x9a, 0xe9, 0xf9, 0xe5, 0x93, 0xc7, 0x26, 0x3d, 0x74, 0xb9, 0x49, + 0xde, 0xa8, 0xa5, 0x90, 0xff, 0xcf, 0x1f, 0xdb, 0x91, 0x0f, 0x65, 0xc9, 0xe7, 0xd1, 0x4e, 0x1d, + 0xe7, 0xf3, 0x68, 0x27, 0xc5, 0x4b, 0x3b, 0x31, 0x09, 0x98, 0x14, 0x49, 0xbe, 0x98, 0x83, 0xd3, + 0xe2, 0xd6, 0x72, 0xf2, 0xca, 0xfa, 0xe9, 0x8c, 0x76, 0x2e, 0x0f, 0xe0, 0x2f, 0xa4, 0xb1, 0xc4, + 0x74, 0x49, 0xe4, 0x7d, 0x98, 0xf0, 0xa2, 0x3e, 0x61, 0x9e, 0x2b, 0x91, 0x75, 0x04, 0x62, 0xde, + 0x65, 0x91, 0xa7, 0x11, 0x03, 0x61, 0x5c, 0x16, 0x79, 0x16, 0x4a, 0xae, 0xdc, 0xdc, 0x2c, 0xbf, + 0xc3, 0xd3, 0x2c, 0x86, 0xc5, 0x21, 0xbc, 0x11, 0x82, 0x31, 0x4a, 0x43, 0x6e, 0x40, 0x29, 0x70, + 0xda, 0xd4, 0x93, 0x49, 0xc1, 0x65, 0x3e, 0x5f, 0xce, 0xa7, 0x4d, 0xfe, 0x4d, 0x4d, 0x16, 0xba, + 0xde, 0x42, 0x98, 0x8f, 0x51, 0x3e, 0xcc, 0x12, 0x54, 0x6f, 0x1a, 0x78, 0xdc, 0x50, 0x7d, 0x34, + 0x6e, 0x09, 0x56, 0xa3, 0x48, 0x8c, 0xd3, 0x92, 0x55, 0x98, 0x76, 0x3d, 0xcb, 0xf1, 0xac, 0x60, + 0x6f, 0xb1, 0x6d, 0xfa, 0x3e, 0x67, 0x20, 0xf2, 0xa2, 0x74, 0x38, 0x61, 0x23, 0x49, 0x80, 0xbd, + 0x65, 0xc8, 0xd3, 0x50, 0x50, 0xc0, 0xf2, 0x63, 0x5c, 0xbd, 0x1b, 0x17, 0x39, 0x55, 0x02, 0x86, + 0x1a, 0xdb, 0xe7, 0x0a, 0xe6, 0xb9, 0x2c, 0x57, 0x30, 0x49, 0x1d, 0xce, 0x99, 0xdd, 0xc0, 0xe1, + 0xb7, 0x0f, 0xe2, 0x45, 0x36, 0x9d, 0x6d, 0x6a, 0x97, 0x2f, 0xf0, 0xe3, 0xed, 0xc2, 0xc1, 0xfe, + 0xec, 0xb9, 0x85, 0x7b, 0xd0, 0xe1, 0x3d, 0xb9, 0x90, 0x0e, 0x14, 0xa8, 0xbc, 0x46, 0x5a, 0xfe, + 0xc4, 0x00, 0xe7, 0x4a, 0xfc, 0x2e, 0xaa, 0x0a, 0x72, 0x0b, 0x18, 0x6a, 0x11, 0x64, 0x13, 0x4a, + 0x2d, 0xc7, 0x0f, 0x16, 0xda, 0x96, 0xe9, 0x53, 0xbf, 0xfc, 0x38, 0x9f, 0x27, 0xa9, 0x47, 0xe2, + 0x65, 0x45, 0x16, 0x4e, 0x93, 0xcb, 0x61, 0x49, 0x8c, 0xb2, 0x21, 0x94, 0x7b, 0x9b, 0xbb, 0x7c, + 0xd4, 0x1c, 0x3b, 0xa0, 0xef, 0x06, 0xe5, 0xf3, 0xbc, 0x2d, 0x4f, 0xa5, 0x71, 0xde, 0x70, 0xea, + 0xd5, 0x38, 0xb5, 0xd8, 0x18, 0x12, 0x40, 0x4c, 0xf2, 0x64, 0x26, 0xbf, 0xeb, 0xd4, 0xab, 0x2e, + 0xad, 0x6d, 0x98, 0x41, 0xad, 0x55, 0x9e, 0x8d, 0x7b, 0x4d, 0x36, 0x22, 0x38, 0x8c, 0x51, 0x92, + 0x1a, 0x8c, 0x75, 0x44, 0xae, 0x75, 0xf9, 0x89, 0x01, 0xd4, 0x47, 0x99, 0xaf, 0x2d, 0x0e, 0x1f, + 0xf9, 0x81, 0x8a, 0x33, 0xf9, 0xcd, 0x1c, 0x4c, 0x26, 0xd2, 0x81, 0xca, 0x9f, 0x1c, 0xe4, 0xc8, + 0x8b, 0xf3, 0xaa, 0x3c, 0xc5, 0x3b, 0x29, 0x0e, 0xbc, 0xdb, 0x0b, 0xc2, 0x64, 0x25, 0x44, 0xeb, + 0xf9, 0x75, 0x87, 0xf2, 0x93, 0x03, 0xb5, 0x9e, 0xf3, 0x50, 0xad, 0xe7, 0x1f, 0xa8, 0x38, 0x93, + 0x8b, 0x30, 0x16, 0x58, 0x1d, 0xea, 0x74, 0x83, 0xf2, 0x53, 0xf1, 0x38, 0xc0, 0xa6, 0x00, 0xa3, + 0xc2, 0xcf, 0xbc, 0x02, 0xd3, 0x3d, 0x0a, 0xf1, 0x91, 0xb2, 0xf1, 0x7f, 0xc4, 0x0c, 0xe0, 0x88, + 0x09, 0x72, 0xdc, 0x86, 0xdb, 0x2a, 0x4c, 0xcb, 0x87, 0x77, 0x99, 0xb6, 0xd4, 0xee, 0xea, 0x77, + 0xc8, 0x22, 0x81, 0x50, 0x4c, 0x12, 0x60, 0x6f, 0x19, 0x36, 0x63, 0x6b, 0xe2, 0x21, 0x2a, 0x91, + 0xf9, 0x3b, 0x12, 0x77, 0x52, 0x2d, 0x46, 0x70, 0x18, 0xa3, 0x34, 0xfe, 0x20, 0x07, 0x13, 0xb1, + 0x93, 0xfb, 0xd8, 0x63, 0x1e, 0x2b, 0x40, 0x3a, 0x96, 0xe7, 0x39, 0x9e, 0x50, 0x7f, 0xd6, 0xd8, + 0x9e, 0xe4, 0xcb, 0x5b, 0xce, 0xfc, 0x76, 0xdd, 0x5a, 0x0f, 0x16, 0x53, 0x4a, 0x18, 0x5f, 0x1e, + 0x86, 0x30, 0xb1, 0x43, 0x5f, 0x29, 0xcd, 0xf5, 0xbd, 0x52, 0xfa, 0x0c, 0x14, 0xee, 0xf8, 0x8e, + 0xbd, 0x11, 0x5e, 0x3c, 0xd5, 0x43, 0xf1, 0x5a, 0x75, 0xfd, 0x3a, 0xa7, 0xd4, 0x14, 0x9c, 0xfa, + 0x9d, 0x15, 0xab, 0x1d, 0xf4, 0x5e, 0xcf, 0x7c, 0xed, 0x75, 0x01, 0x47, 0x4d, 0xc1, 0x5f, 0xbb, + 0xda, 0xa1, 0xda, 0xe7, 0x18, 0xbe, 0x76, 0xc5, 0x80, 0x28, 0x70, 0x64, 0x1e, 0x8a, 0xda, 0x65, + 0x29, 0x3d, 0xa8, 0xba, 0xa7, 0xb4, 0x6b, 0x13, 0x43, 0x1a, 0xae, 0x89, 0x49, 0xb7, 0x9c, 0xb4, + 0x3e, 0x57, 0x32, 0xea, 0xb0, 0x09, 0xdf, 0x9e, 0xd8, 0xa6, 0x15, 0x18, 0xb5, 0x94, 0x68, 0x8a, + 0x4f, 0xfe, 0x90, 0x29, 0x3e, 0x6c, 0x1c, 0xc6, 0x6e, 0x52, 0x8f, 0xdf, 0x16, 0xbf, 0x08, 0x63, + 0x3b, 0xe2, 0x67, 0x32, 0x39, 0x50, 0x52, 0xa0, 0xc2, 0xb3, 0xde, 0xd8, 0xea, 0x5a, 0xed, 0xfa, + 0x52, 0xb8, 0x34, 0x74, 0x6f, 0x54, 0x14, 0x02, 0x43, 0x1a, 0x56, 0xa0, 0xc9, 0x14, 0xd5, 0x4e, + 0xc7, 0x0a, 0x92, 0xd7, 0xad, 0x56, 0x15, 0x02, 0x43, 0x1a, 0xf2, 0x14, 0x8c, 0x36, 0xad, 0x60, + 0xd3, 0x6c, 0x26, 0xe3, 0x0a, 0xab, 0x1c, 0x8a, 0x12, 0xcb, 0x9d, 0xe2, 0x56, 0xb0, 0xe9, 0x51, + 0xee, 0x64, 0xeb, 0xb9, 0x6e, 0xb0, 0x1a, 0xc1, 0x61, 0x8c, 0x92, 0x57, 0xc9, 0x91, 0x2d, 0x93, + 0xce, 0xea, 0xb0, 0x4a, 0x0a, 0x81, 0x21, 0x0d, 0x9b, 0x55, 0x35, 0xa7, 0xe3, 0x5a, 0x6d, 0x99, + 0x28, 0x12, 0x99, 0x55, 0x8b, 0x12, 0x8e, 0x9a, 0x82, 0x51, 0xb3, 0x7d, 0xa1, 0xe1, 0x78, 0x9d, + 0xe4, 0xcb, 0x41, 0x1b, 0x12, 0x8e, 0x9a, 0xc2, 0xb8, 0x09, 0x13, 0x62, 0x7d, 0x2c, 0xb6, 0x4d, + 0xab, 0xb3, 0xba, 0x48, 0x96, 0x7b, 0x12, 0x8f, 0x2e, 0xa6, 0x24, 0x1e, 0x9d, 0x8e, 0x15, 0x4a, + 0x49, 0x40, 0xfa, 0xf6, 0x10, 0x14, 0x1e, 0xe2, 0x43, 0x6a, 0xb5, 0xd8, 0x43, 0x6a, 0xc7, 0xf0, + 0xea, 0x56, 0xda, 0x23, 0x6a, 0xdb, 0x89, 0x47, 0xd4, 0x16, 0x07, 0xcc, 0xb1, 0xbb, 0xe7, 0x03, + 0x6a, 0x3f, 0xce, 0x81, 0xbe, 0xb6, 0xc1, 0x37, 0x84, 0x8a, 0x65, 0xf3, 0x50, 0xe3, 0x83, 0xef, + 0x4c, 0x27, 0xd6, 0x99, 0x6b, 0x03, 0xb5, 0x32, 0x5a, 0xf5, 0xbe, 0x2f, 0x38, 0x7e, 0x9c, 0x83, + 0x72, 0x5a, 0x81, 0x87, 0xf0, 0x68, 0x9c, 0x1d, 0x7f, 0x34, 0xee, 0xca, 0xb1, 0x35, 0xb6, 0xcf, + 0xe3, 0x71, 0x3f, 0xe8, 0xd3, 0x54, 0xfe, 0x6c, 0xdb, 0xdb, 0xea, 0x40, 0xc8, 0x0d, 0x10, 0x77, + 0x10, 0x5c, 0xd3, 0x0f, 0x93, 0xb7, 0x61, 0xd4, 0xe7, 0x91, 0x3f, 0x39, 0xb6, 0x2f, 0x66, 0x3c, + 0x19, 0x18, 0x0b, 0xe9, 0x0d, 0xe2, 0xbf, 0x51, 0xb2, 0x35, 0xbe, 0x97, 0x83, 0xf1, 0x87, 0xf8, + 0xe4, 0xdf, 0x56, 0x7c, 0xf4, 0x5e, 0x1a, 0x68, 0xf4, 0xfa, 0x8c, 0xd8, 0x37, 0x1e, 0x83, 0xd8, + 0x53, 0x7b, 0xc4, 0x86, 0xa2, 0xd2, 0xbd, 0x54, 0xb6, 0xed, 0x4b, 0x03, 0x39, 0x5c, 0xc3, 0xed, + 0x5f, 0x41, 0x7c, 0x0c, 0x45, 0x24, 0x82, 0xa8, 0x43, 0x87, 0x0a, 0xa2, 0x3e, 0x74, 0x67, 0x7e, + 0xba, 0x2d, 0x3b, 0xf2, 0x40, 0x6c, 0xd9, 0x73, 0xc7, 0x6e, 0xcb, 0x3e, 0xfe, 0xe0, 0x6d, 0xd9, + 0x88, 0xb3, 0x2f, 0x3f, 0x80, 0xb3, 0xef, 0x7d, 0x38, 0xb5, 0x13, 0x1e, 0xbd, 0x7a, 0xbe, 0xc8, + 0x77, 0xcc, 0x2e, 0xa6, 0x5a, 0xb0, 0x4c, 0x8d, 0xf0, 0x03, 0x6a, 0x07, 0x91, 0x43, 0x3b, 0xbc, + 0x1b, 0x78, 0x33, 0x85, 0x1d, 0xa6, 0x0a, 0x49, 0xba, 0x7a, 0xc6, 0x0e, 0xe1, 0xea, 0xf9, 0x66, + 0x0e, 0x4e, 0x9b, 0x69, 0x6f, 0x76, 0xcb, 0x18, 0xc1, 0x6b, 0x03, 0xf9, 0xea, 0x62, 0x1c, 0xa5, + 0xe3, 0x2c, 0x0d, 0x85, 0xe9, 0x75, 0x20, 0x4f, 0x86, 0xee, 0x5e, 0x11, 0x91, 0x4f, 0x77, 0xd4, + 0x7e, 0x3d, 0x19, 0x66, 0x01, 0xde, 0xdb, 0xd5, 0x81, 0xd5, 0x8c, 0x63, 0x08, 0xb5, 0x94, 0x06, + 0x08, 0xb5, 0x24, 0xfc, 0x70, 0xe3, 0xc7, 0xe4, 0x87, 0xb3, 0x61, 0xca, 0xea, 0x98, 0x4d, 0xba, + 0xd1, 0x6d, 0xb7, 0x45, 0xde, 0x9d, 0x5f, 0x9e, 0xe0, 0xbc, 0x53, 0x93, 0xbf, 0xae, 0x39, 0x35, + 0xb3, 0x9d, 0x7c, 0x19, 0x52, 0x27, 0xcd, 0x5e, 0x49, 0x70, 0xc2, 0x1e, 0xde, 0x6c, 0x5a, 0xf2, + 0xfb, 0x5f, 0x34, 0x60, 0xbd, 0xcd, 0xa3, 0x10, 0xf2, 0x5f, 0x15, 0x2e, 0x87, 0x60, 0x8c, 0xd2, + 0x90, 0xab, 0x50, 0xac, 0xdb, 0xbe, 0xcc, 0x6f, 0x9d, 0xe4, 0xbb, 0xd4, 0xa7, 0xd8, 0xde, 0xb6, + 0x74, 0xbd, 0xaa, 0x33, 0x5b, 0xcf, 0xa5, 0x5c, 0x20, 0xd4, 0x78, 0x0c, 0xcb, 0x93, 0x35, 0xce, + 0x4c, 0x3e, 0x1f, 0x24, 0xc2, 0x06, 0x17, 0xfa, 0xb8, 0x92, 0x96, 0xae, 0xab, 0xd7, 0x8e, 0x26, + 0xa4, 0x38, 0xf9, 0x28, 0x50, 0xc8, 0x21, 0xf2, 0xf4, 0xdd, 0xf4, 0x3d, 0x9f, 0xbe, 0xbb, 0x01, + 0x67, 0x83, 0xa0, 0x1d, 0x8b, 0x46, 0xcb, 0xbb, 0xa3, 0xfc, 0x22, 0x71, 0x5e, 0xbc, 0x96, 0xba, + 0xb9, 0x79, 0x2d, 0x8d, 0x04, 0xfb, 0x95, 0xe5, 0x61, 0xd9, 0xa0, 0xad, 0x5d, 0xc9, 0xe7, 0x07, + 0x09, 0xcb, 0x86, 0x61, 0x7f, 0x19, 0x96, 0x0d, 0x01, 0x18, 0x95, 0x42, 0xd6, 0xfb, 0x39, 0xd1, + 0x4f, 0xf2, 0x3d, 0xe6, 0xe8, 0x2e, 0xf1, 0xa8, 0x17, 0xf6, 0xd4, 0x3d, 0xbd, 0xb0, 0x3d, 0x5e, + 0xe3, 0xd3, 0x47, 0xf0, 0x1a, 0xdf, 0xe6, 0x97, 0x43, 0x57, 0x17, 0xa5, 0xc7, 0x3d, 0x9b, 0xc6, + 0xc6, 0x2f, 0x71, 0x88, 0xcc, 0x09, 0xfe, 0x13, 0x05, 0x4f, 0xb2, 0x01, 0xa7, 0x5c, 0xa7, 0xde, + 0xe3, 0x74, 0xe6, 0x2e, 0xf6, 0xc8, 0xe5, 0xee, 0x8d, 0x14, 0x1a, 0x4c, 0x2d, 0xc9, 0x37, 0xf0, + 0x10, 0xce, 0xef, 0x12, 0xe7, 0xe5, 0x06, 0x1e, 0x82, 0x31, 0x4a, 0x93, 0xf4, 0xc1, 0x3e, 0xfa, + 0xc0, 0x7c, 0xb0, 0x33, 0x0f, 0xc1, 0x07, 0xfb, 0xd8, 0xa1, 0x7d, 0xb0, 0xff, 0x17, 0x4e, 0xba, + 0x4e, 0x7d, 0xc9, 0xf2, 0xbd, 0x2e, 0xff, 0xcf, 0x98, 0x4a, 0xb7, 0xde, 0xa4, 0x01, 0x77, 0xe2, + 0x96, 0x2e, 0x5d, 0x8a, 0x56, 0x52, 0xfc, 0x27, 0xd7, 0x9c, 0xfc, 0x4f, 0x2e, 0xbe, 0xc8, 0x13, + 0xa5, 0xb8, 0xdd, 0xc3, 0x53, 0x47, 0x52, 0x90, 0x98, 0x26, 0x27, 0xea, 0x02, 0xbe, 0xf0, 0xc0, + 0x5c, 0xc0, 0xaf, 0x42, 0xc1, 0x6f, 0x75, 0x83, 0xba, 0xb3, 0x6b, 0x73, 0x6f, 0x7e, 0x51, 0xbf, + 0x35, 0x5d, 0xa8, 0x4a, 0xf8, 0xdd, 0xfd, 0xd9, 0x29, 0xf5, 0x3b, 0x62, 0xe5, 0x4b, 0x08, 0xf9, + 0x8d, 0x3e, 0x19, 0x95, 0xc6, 0x31, 0x67, 0x54, 0x9e, 0x3d, 0x52, 0x36, 0x65, 0x9a, 0x6b, 0xfb, + 0x89, 0x9f, 0x05, 0xd7, 0xf6, 0xaf, 0xe4, 0x60, 0x62, 0x27, 0xea, 0x38, 0x91, 0x1e, 0xf7, 0x6c, + 0x81, 0xba, 0x98, 0x0b, 0xa6, 0x62, 0xb0, 0xbd, 0x2a, 0x06, 0xba, 0x9b, 0x04, 0x60, 0x5c, 0x78, + 0x6f, 0xd8, 0xf0, 0xc9, 0x87, 0x17, 0x36, 0x1c, 0xdc, 0xad, 0xfe, 0x87, 0x53, 0x70, 0x22, 0xf1, + 0x06, 0xb5, 0x7e, 0x7e, 0x22, 0x77, 0xd8, 0xe7, 0x27, 0x62, 0xef, 0x43, 0x0c, 0x3d, 0xd0, 0xf7, + 0x21, 0x86, 0x1f, 0xce, 0xfb, 0x10, 0x53, 0x0f, 0xe2, 0x7d, 0x88, 0xe9, 0x23, 0xbd, 0x0f, 0x11, + 0x79, 0x9f, 0x63, 0xe4, 0x3e, 0xef, 0x73, 0x2c, 0xc0, 0xa4, 0xca, 0x72, 0xa3, 0xf2, 0x7d, 0x00, + 0xe1, 0x48, 0xd5, 0x57, 0x3a, 0x16, 0xe3, 0x68, 0x4c, 0xd2, 0x93, 0xff, 0x03, 0x79, 0x9b, 0x17, + 0x1c, 0x1d, 0xe0, 0x6d, 0xa9, 0xf8, 0x44, 0xe2, 0x6a, 0xb9, 0x7c, 0xde, 0x49, 0x25, 0x40, 0xe4, + 0x39, 0xec, 0xae, 0xfa, 0x81, 0x42, 0x28, 0x79, 0x13, 0xca, 0x4e, 0xa3, 0xd1, 0x76, 0xcc, 0x7a, + 0xf8, 0x86, 0x85, 0xf2, 0xed, 0x8a, 0x84, 0xdd, 0x0b, 0x92, 0x41, 0x79, 0xbd, 0x0f, 0x1d, 0xf6, + 0xe5, 0xc0, 0xac, 0xa7, 0xc9, 0xf8, 0x9b, 0x2f, 0x7e, 0xb9, 0xc8, 0x9b, 0xf9, 0xbf, 0x8e, 0xa3, + 0x99, 0xf1, 0x07, 0x66, 0x64, 0x83, 0xc3, 0xcb, 0x34, 0x71, 0x2c, 0x26, 0x6b, 0x42, 0x3c, 0x38, + 0xe3, 0xa6, 0xd9, 0x96, 0xbe, 0x4c, 0x43, 0xbb, 0x97, 0x85, 0x7b, 0x5e, 0x4a, 0x39, 0x93, 0x6a, + 0x9d, 0xfa, 0xd8, 0x87, 0x73, 0xf4, 0x75, 0x8b, 0xc2, 0x03, 0x7b, 0xdd, 0x22, 0xfe, 0x1a, 0xfc, + 0xc4, 0xc3, 0x78, 0x0d, 0x9e, 0xfc, 0x34, 0xf5, 0x51, 0x15, 0x61, 0x92, 0xbd, 0x71, 0x1c, 0x83, + 0xfd, 0x33, 0xf7, 0xb0, 0xca, 0x6f, 0xe7, 0x60, 0x46, 0x4c, 0xa9, 0xb4, 0xbf, 0xfa, 0x91, 0xc9, + 0x64, 0xc7, 0xe0, 0xca, 0xe7, 0xe1, 0xc1, 0x6a, 0x4c, 0x10, 0xf7, 0x3d, 0xdf, 0x43, 0x38, 0xf9, + 0x6a, 0x8a, 0x0a, 0x31, 0x39, 0x80, 0xc3, 0x22, 0xfd, 0xa9, 0x8e, 0x93, 0x07, 0x87, 0xd0, 0x1a, + 0x66, 0xf6, 0xc4, 0x4b, 0x5c, 0x7d, 0xdf, 0x81, 0xbb, 0x11, 0x3d, 0x22, 0xb3, 0x3e, 0xc5, 0x16, + 0xee, 0x3d, 0xd1, 0x37, 0xe8, 0xbe, 0x98, 0x83, 0x53, 0x69, 0x9b, 0x44, 0x4a, 0x2d, 0xaa, 0xf1, + 0x5a, 0x0c, 0xe6, 0x11, 0x8d, 0xd6, 0xe1, 0x78, 0x5e, 0x27, 0xf9, 0xf5, 0xd1, 0x88, 0x17, 0x37, + 0xa0, 0xee, 0x2f, 0xd2, 0xa7, 0x33, 0xa5, 0x4f, 0xc7, 0xfe, 0x3b, 0x21, 0xff, 0x10, 0xff, 0x3b, + 0x61, 0x34, 0xc3, 0x7f, 0x27, 0x8c, 0x3d, 0xcc, 0xff, 0x4e, 0x28, 0x1c, 0xf2, 0xbf, 0x13, 0x8a, + 0x3f, 0x33, 0xff, 0x9d, 0x60, 0x7c, 0x94, 0x83, 0xa9, 0xff, 0xea, 0x7f, 0x0e, 0xf7, 0xa3, 0x48, + 0x18, 0xf5, 0x21, 0xfe, 0x2b, 0xdc, 0x9d, 0x78, 0x60, 0x6a, 0xf9, 0x58, 0x1a, 0xd9, 0x27, 0x40, + 0xf5, 0x0e, 0xa4, 0x99, 0xc6, 0x87, 0xbb, 0xd7, 0x17, 0xcb, 0xf7, 0x19, 0x3a, 0x74, 0xbe, 0xcf, + 0x7f, 0xa4, 0xf4, 0x2a, 0x3f, 0x37, 0xdf, 0x7f, 0x50, 0xff, 0x82, 0x75, 0x2a, 0xed, 0x5f, 0xb0, + 0x12, 0xff, 0x7a, 0x95, 0xfc, 0x17, 0xa4, 0xa1, 0x07, 0xf8, 0x2f, 0x48, 0x13, 0x50, 0x8a, 0xfe, + 0x7b, 0xf6, 0xdc, 0x77, 0x3e, 0x3a, 0xff, 0xc8, 0xf7, 0x3e, 0x3a, 0xff, 0xc8, 0xf7, 0x3f, 0x3a, + 0xff, 0xc8, 0x07, 0x07, 0xe7, 0x73, 0xdf, 0x39, 0x38, 0x9f, 0xfb, 0xde, 0xc1, 0xf9, 0xdc, 0xf7, + 0x0f, 0xce, 0xe7, 0x7e, 0x74, 0x70, 0x3e, 0xf7, 0x6b, 0xff, 0x78, 0xfe, 0x91, 0x37, 0x0a, 0xaa, + 0x6d, 0xff, 0x19, 0x00, 0x00, 0xff, 0xff, 0x04, 0x35, 0xfa, 0xb9, 0xa2, 0x7e, 0x00, 0x00, } func (m *Amount) Marshal() (dAtA []byte, err error) { @@ -20762,7 +20761,7 @@ func (m *Parameter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := Int64OrString(dAtA[iNdEx:postIndex]) + s := AnyString(dAtA[iNdEx:postIndex]) m.Default = &s iNdEx = postIndex case 3: @@ -20795,7 +20794,7 @@ func (m *Parameter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := Int64OrString(dAtA[iNdEx:postIndex]) + s := AnyString(dAtA[iNdEx:postIndex]) m.Value = &s iNdEx = postIndex case 4: @@ -20896,7 +20895,7 @@ func (m *Parameter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Enum = append(m.Enum, Int64OrString(dAtA[iNdEx:postIndex])) + m.Enum = append(m.Enum, AnyString(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -25711,7 +25710,7 @@ func (m *ValueFrom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := Int64OrString(dAtA[iNdEx:postIndex]) + s := AnyString(dAtA[iNdEx:postIndex]) m.Default = &s iNdEx = postIndex case 6: diff --git a/pkg/apis/workflow/v1alpha1/int64orstr.go b/pkg/apis/workflow/v1alpha1/int64orstr.go deleted file mode 100644 index 291c4beb9170..000000000000 --- a/pkg/apis/workflow/v1alpha1/int64orstr.go +++ /dev/null @@ -1,51 +0,0 @@ -package v1alpha1 - -import ( - "encoding/json" - "fmt" - "strconv" -) - -// This is similar to `intstr.IntOrString` (which should be called `intstr.Int32OrString`!!). -// It intended just to tolerate unmarshalling int64. Therefore: -// -// * It's JSON type is just string, not `int-or-string`. -// * It will unmarshall int64 (rather than only int32) and represents it as string. -// * It will marshall back to string - marshalling is not symmetric. -type Int64OrString string - -func ParseInt64OrString(val interface{}) Int64OrString { - return Int64OrString(fmt.Sprintf("%v", val)) -} - -func Int64OrStringPtr(val interface{}) *Int64OrString { - i := ParseInt64OrString(val) - return &i -} - -func (i *Int64OrString) UnmarshalJSON(value []byte) error { - if value[0] == '"' { - v := "" - err := json.Unmarshal(value, &v) - if err != nil { - return err - } - *i = Int64OrString(v) - return nil - } - v := 0 - err := json.Unmarshal(value, &v) - if err != nil { - return err - } - *i = Int64OrString(strconv.Itoa(v)) - return nil -} - -func (i Int64OrString) MarshalJSON() ([]byte, error) { - return json.Marshal(string(i)) -} - -func (i Int64OrString) String() string { - return string(i) -} diff --git a/pkg/apis/workflow/v1alpha1/workflow_types.go b/pkg/apis/workflow/v1alpha1/workflow_types.go index fad3e16dd316..340afb039854 100644 --- a/pkg/apis/workflow/v1alpha1/workflow_types.go +++ b/pkg/apis/workflow/v1alpha1/workflow_types.go @@ -701,11 +701,11 @@ type Parameter struct { Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Default is the default value to use for an input parameter if a value was not supplied - Default *Int64OrString `json:"default,omitempty" protobuf:"bytes,2,opt,name=default"` + Default *AnyString `json:"default,omitempty" protobuf:"bytes,2,opt,name=default"` // Value is the literal value to use for the parameter. // If specified in the context of an input parameter, the value takes precedence over any passed values - Value *Int64OrString `json:"value,omitempty" protobuf:"bytes,3,opt,name=value"` + Value *AnyString `json:"value,omitempty" protobuf:"bytes,3,opt,name=value"` // ValueFrom is the source for the output parameter's value ValueFrom *ValueFrom `json:"valueFrom,omitempty" protobuf:"bytes,4,opt,name=valueFrom"` @@ -715,7 +715,7 @@ type Parameter struct { GlobalName string `json:"globalName,omitempty" protobuf:"bytes,5,opt,name=globalName"` // Enum holds a list of string values to choose from, for the actual value of the parameter - Enum []Int64OrString `json:"enum,omitempty" protobuf:"bytes,6,rep,name=enum"` + Enum []AnyString `json:"enum,omitempty" protobuf:"bytes,6,rep,name=enum"` } // ValueFrom describes a location in which to obtain the value to a parameter @@ -740,7 +740,7 @@ type ValueFrom struct { Supplied *SuppliedValueFrom `json:"supplied,omitempty" protobuf:"bytes,6,opt,name=supplied"` // Default specifies a value to be used if retrieving the value from the specified source fails - Default *Int64OrString `json:"default,omitempty" protobuf:"bytes,5,opt,name=default"` + Default *AnyString `json:"default,omitempty" protobuf:"bytes,5,opt,name=default"` } // SuppliedValueFrom is a placeholder for a value to be filled in directly, either through the CLI, API, etc. diff --git a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go index 1f23bc6b6de0..66b4774b635e 100644 --- a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go @@ -1352,12 +1352,12 @@ func (in *Parameter) DeepCopyInto(out *Parameter) { *out = *in if in.Default != nil { in, out := &in.Default, &out.Default - *out = new(Int64OrString) + *out = new(AnyString) **out = **in } if in.Value != nil { in, out := &in.Value, &out.Value - *out = new(Int64OrString) + *out = new(AnyString) **out = **in } if in.ValueFrom != nil { @@ -1367,7 +1367,7 @@ func (in *Parameter) DeepCopyInto(out *Parameter) { } if in.Enum != nil { in, out := &in.Enum, &out.Enum - *out = make([]Int64OrString, len(*in)) + *out = make([]AnyString, len(*in)) copy(*out, *in) } return @@ -2082,7 +2082,7 @@ func (in *ValueFrom) DeepCopyInto(out *ValueFrom) { } if in.Default != nil { in, out := &in.Default, &out.Default - *out = new(Int64OrString) + *out = new(AnyString) **out = **in } return diff --git a/server/event/dispatch/operation.go b/server/event/dispatch/operation.go index 7018b8df5131..545fd83aecdd 100644 --- a/server/event/dispatch/operation.go +++ b/server/event/dispatch/operation.go @@ -113,7 +113,7 @@ func (o *Operation) dispatch(wfeb wfv1.WorkflowEventBinding, nameSuffix string) if err != nil { return nil, fmt.Errorf("failed to evaluate workflow template parameter \"%s\" expression: %w", p.Name, err) } - wf.Spec.Arguments.Parameters = append(wf.Spec.Arguments.Parameters, wfv1.Parameter{Name: p.Name, Value: wfv1.Int64OrStringPtr(result)}) + wf.Spec.Arguments.Parameters = append(wf.Spec.Arguments.Parameters, wfv1.Parameter{Name: p.Name, Value: wfv1.AnyStringPtr(result)}) } } wf, err = client.ArgoprojV1alpha1().Workflows(wfeb.Namespace).Create(wf) diff --git a/server/event/dispatch/operation_test.go b/server/event/dispatch/operation_test.go index df113c9dd724..a49827c0a84e 100644 --- a/server/event/dispatch/operation_test.go +++ b/server/event/dispatch/operation_test.go @@ -84,7 +84,7 @@ func TestNewOperation(t *testing.T) { assert.Equal(t, "my-instanceid", wf.Labels[common.LabelKeyControllerInstanceID]) assert.Equal(t, "my-sub", wf.Labels[common.LabelKeyCreator]) assert.Contains(t, wf.Labels, common.LabelKeyWorkflowEventBinding) - assert.Equal(t, []wfv1.Parameter{{Name: "my-param", Value: wfv1.Int64OrStringPtr(`foo`)}}, wf.Spec.Arguments.Parameters) + assert.Equal(t, []wfv1.Parameter{{Name: "my-param", Value: wfv1.AnyStringPtr(`foo`)}}, wf.Spec.Arguments.Parameters) } } assert.Equal(t, "Warning WorkflowEventBindingError failed to dispatch event: failed to evaluate workflow template expression: unexpected token EOF (1:1)", <-recorder.Events) diff --git a/util/printer/workflow-printer_test.go b/util/printer/workflow-printer_test.go index afdbc317be7e..80dc806b01d5 100644 --- a/util/printer/workflow-printer_test.go +++ b/util/printer/workflow-printer_test.go @@ -20,7 +20,7 @@ func TestPrintWorkflows(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "my-wf", Namespace: "my-ns", CreationTimestamp: metav1.Time{Time: now}}, Spec: wfv1.WorkflowSpec{ Arguments: wfv1.Arguments{Parameters: []wfv1.Parameter{ - {Name: "my-param", Value: wfv1.Int64OrStringPtr("my-value")}, + {Name: "my-param", Value: wfv1.AnyStringPtr("my-value")}, }}, Priority: pointer.Int32Ptr(2), Templates: []wfv1.Template{ diff --git a/workflow/controller/cache_test.go b/workflow/controller/cache_test.go index 5d4e89787694..e739bbe0448f 100644 --- a/workflow/controller/cache_test.go +++ b/workflow/controller/cache_test.go @@ -67,7 +67,7 @@ func TestConfigMapCacheSave(t *testing.T) { var MockParamValue string = "Hello world" var MockParam = wfv1.Parameter{ Name: "hello", - Value: wfv1.Int64OrStringPtr(MockParamValue), + Value: wfv1.AnyStringPtr(MockParamValue), } cancel, controller := newController() defer cancel() diff --git a/workflow/controller/operator.go b/workflow/controller/operator.go index a04483b08b7d..b6962798adf5 100644 --- a/workflow/controller/operator.go +++ b/workflow/controller/operator.go @@ -2231,7 +2231,7 @@ func getTemplateOutputsFromScope(tmpl *wfv1.Template, scope *wfScope) (*wfv1.Out return nil, err } } - param.Value = wfv1.Int64OrStringPtr(val) + param.Value = wfv1.AnyStringPtr(val) param.ValueFrom = nil outputs.Parameters = append(outputs.Parameters, param) } diff --git a/workflow/controller/operator_test.go b/workflow/controller/operator_test.go index 1afbdcf7a28f..ec9a0205da1b 100644 --- a/workflow/controller/operator_test.go +++ b/workflow/controller/operator_test.go @@ -2061,7 +2061,7 @@ func TestWorkflowSpecParam(t *testing.T) { func TestAddGlobalParamToScope(t *testing.T) { woc := newWoc() woc.globalParams = make(map[string]string) - testVal := wfv1.Int64OrStringPtr("test-value") + testVal := wfv1.AnyStringPtr("test-value") param := wfv1.Parameter{ Name: "test-param", Value: testVal, @@ -2079,7 +2079,7 @@ func TestAddGlobalParamToScope(t *testing.T) { assert.Equal(t, testVal.String(), woc.globalParams["workflow.outputs.parameters.global-param"]) // Change the value and verify it is reflected in workflow outputs - newValue := wfv1.Int64OrStringPtr("new-value") + newValue := wfv1.AnyStringPtr("new-value") param.Value = newValue woc.addParamToGlobalScope(param) assert.Equal(t, 1, len(woc.wf.Status.Outputs.Parameters)) @@ -4451,7 +4451,7 @@ func TestConfigMapCacheSaveOperate(t *testing.T) { woc := newWorkflowOperationCtx(wf, controller) sampleOutputs := wfv1.Outputs{ Parameters: []wfv1.Parameter{ - {Name: "hello", Value: wfv1.Int64OrStringPtr("foobar")}, + {Name: "hello", Value: wfv1.AnyStringPtr("foobar")}, }, } diff --git a/workflow/controller/operator_wfdefault_test.go b/workflow/controller/operator_wfdefault_test.go index 9cf922da1e22..8d6df8640e38 100644 --- a/workflow/controller/operator_wfdefault_test.go +++ b/workflow/controller/operator_wfdefault_test.go @@ -261,7 +261,7 @@ func TestWFDefaultWithWFTAndWf(t *testing.T) { t.Run("SubmitComplexWorkflowRefWithArguments", func(t *testing.T) { param := wfv1.Parameter{ Name: "Test", - Value: wfv1.Int64OrStringPtr("welcome"), + Value: wfv1.AnyStringPtr("welcome"), } art := wfv1.Artifact{ Name: "TestA", diff --git a/workflow/controller/operator_workflow_template_ref_test.go b/workflow/controller/operator_workflow_template_ref_test.go index 1e281debd905..05b9d1ffdcb9 100644 --- a/workflow/controller/operator_workflow_template_ref_test.go +++ b/workflow/controller/operator_workflow_template_ref_test.go @@ -31,7 +31,7 @@ func TestWorkflowTemplateRefWithArgs(t *testing.T) { args := []wfv1.Parameter{ { Name: "param1", - Value: wfv1.Int64OrStringPtr("test"), + Value: wfv1.AnyStringPtr("test"), }, } wf.Spec.Arguments.Parameters = util.MergeParameters(wf.Spec.Arguments.Parameters, args) @@ -51,7 +51,7 @@ func TestWorkflowTemplateRefWithWorkflowTemplateArgs(t *testing.T) { args := []wfv1.Parameter{ { Name: "param1", - Value: wfv1.Int64OrStringPtr("test"), + Value: wfv1.AnyStringPtr("test"), }, } wftmpl.Spec.Arguments.Parameters = util.MergeParameters(wf.Spec.Arguments.Parameters, args) diff --git a/workflow/controller/workflowpod_test.go b/workflow/controller/workflowpod_test.go index 019c07ea8b49..788e31b12825 100644 --- a/workflow/controller/workflowpod_test.go +++ b/workflow/controller/workflowpod_test.go @@ -692,7 +692,7 @@ func TestVolumesPodSubstitution(t *testing.T) { inputParameters := []wfv1.Parameter{ { Name: "volume-name", - Value: wfv1.Int64OrStringPtr("test-name"), + Value: wfv1.AnyStringPtr("test-name"), }, } diff --git a/workflow/executor/executor.go b/workflow/executor/executor.go index 8f17ecf0da80..6af1f53ad6fc 100644 --- a/workflow/executor/executor.go +++ b/workflow/executor/executor.go @@ -492,7 +492,7 @@ func (we *WorkflowExecutor) SaveParameters() error { continue } - var output *wfv1.Int64OrString + var output *wfv1.AnyString if we.isBaseImagePath(param.ValueFrom.Path) { log.Infof("Copying %s from base image layer", param.ValueFrom.Path) fileContents, err := we.RuntimeExecutor.GetFileContents(mainCtrID, param.ValueFrom.Path) @@ -504,7 +504,7 @@ func (we *WorkflowExecutor) SaveParameters() error { return err } } else { - output = wfv1.Int64OrStringPtr(fileContents) + output = wfv1.AnyStringPtr(fileContents) } } else { log.Infof("Copying %s from from volume mount", param.ValueFrom.Path) @@ -518,12 +518,12 @@ func (we *WorkflowExecutor) SaveParameters() error { return err } } else { - output = wfv1.Int64OrStringPtr(string(data)) + output = wfv1.AnyStringPtr(string(data)) } } // Trims off a single newline for user convenience - output = wfv1.Int64OrStringPtr(strings.TrimSuffix(output.String(), "\n")) + output = wfv1.AnyStringPtr(strings.TrimSuffix(output.String(), "\n")) we.Template.Outputs.Parameters[i].Value = output log.Infof("Successfully saved output parameter: %s", param.Name) } diff --git a/workflow/executor/executor_test.go b/workflow/executor/executor_test.go index 28c64085bf8e..44c9a3f71d2b 100644 --- a/workflow/executor/executor_test.go +++ b/workflow/executor/executor_test.go @@ -117,7 +117,7 @@ func TestDefaultParameters(t *testing.T) { { Name: "my-out", ValueFrom: &wfv1.ValueFrom{ - Default: wfv1.Int64OrStringPtr("Default Value"), + Default: wfv1.AnyStringPtr("Default Value"), Path: "/path", }, }, @@ -149,7 +149,7 @@ func TestDefaultParametersEmptyString(t *testing.T) { { Name: "my-out", ValueFrom: &wfv1.ValueFrom{ - Default: wfv1.Int64OrStringPtr(""), + Default: wfv1.AnyStringPtr(""), Path: "/path", }, }, diff --git a/workflow/executor/resource.go b/workflow/executor/resource.go index 170525be65ae..8b4d35228e40 100644 --- a/workflow/executor/resource.go +++ b/workflow/executor/resource.go @@ -341,7 +341,7 @@ func (we *WorkflowExecutor) SaveResourceParameters(resourceNamespace string, res if param.ValueFrom.Default != nil { output = param.ValueFrom.Default.String() } - we.Template.Outputs.Parameters[i].Value = wfv1.Int64OrStringPtr(output) + we.Template.Outputs.Parameters[i].Value = wfv1.AnyStringPtr(output) continue } var cmd *exec.Cmd @@ -375,7 +375,7 @@ func (we *WorkflowExecutor) SaveResourceParameters(resourceNamespace string, res } } output := string(out) - we.Template.Outputs.Parameters[i].Value = wfv1.Int64OrStringPtr(output) + we.Template.Outputs.Parameters[i].Value = wfv1.AnyStringPtr(output) log.Infof("Saved output parameter: %s, value: %s", param.Name, output) } err := we.AnnotateOutputs(nil) diff --git a/workflow/util/util.go b/workflow/util/util.go index f120b49d2c77..2ad1bf3ec06a 100644 --- a/workflow/util/util.go +++ b/workflow/util/util.go @@ -126,7 +126,7 @@ func FromUnstructured(un *unstructured.Unstructured) (*wfv1.Workflow, error) { func FromUnstructuredObj(un *unstructured.Unstructured, v interface{}) error { err := runtime.DefaultUnstructuredConverter.FromUnstructured(un.Object, v) if err != nil { - if err.Error() == "cannot convert int64 to v1alpha1.Int64OrString" { + if err.Error() == "cannot convert int64 to v1alpha1.AnyString" { data, err := json.Marshal(un) if err != nil { return err @@ -249,7 +249,7 @@ func ApplySubmitOpts(wf *wfv1.Workflow, opts *wfv1.SubmitOpts) error { if len(parts) != 2 { return fmt.Errorf("expected parameter of the form: NAME=VALUE. Received: %s", paramStr) } - param := wfv1.Parameter{Name: parts[0], Value: wfv1.Int64OrStringPtr(parts[1])} + param := wfv1.Parameter{Name: parts[0], Value: wfv1.AnyStringPtr(parts[1])} newParams = append(newParams, param) passedParams[param.Name] = true } @@ -283,7 +283,7 @@ func ApplySubmitOpts(wf *wfv1.Workflow, opts *wfv1.SubmitOpts) error { // the string is already clean. value = string(v) } - param := wfv1.Parameter{Name: k, Value: wfv1.Int64OrStringPtr(value)} + param := wfv1.Parameter{Name: k, Value: wfv1.AnyStringPtr(value)} if _, ok := passedParams[param.Name]; ok { // this parameter was overridden via command line continue @@ -477,7 +477,7 @@ func updateSuspendedNode(wfIf v1alpha1.WorkflowInterface, hydrator hydrator.Inte if param.ValueFrom == nil || param.ValueFrom.Supplied == nil { return true, fmt.Errorf("cannot set output parameter '%s' because it does not use valueFrom.raw or it was already set", param.Name) } - node.Outputs.Parameters[i].Value = wfv1.Int64OrStringPtr(val) + node.Outputs.Parameters[i].Value = wfv1.AnyStringPtr(val) node.Outputs.Parameters[i].ValueFrom = nil nodeUpdated = true hit = true diff --git a/workflow/util/util_test.go b/workflow/util/util_test.go index 53e52763baf8..7a60b1e9c5df 100644 --- a/workflow/util/util_test.go +++ b/workflow/util/util_test.go @@ -504,7 +504,7 @@ func TestApplySubmitOpts(t *testing.T) { wf := &wfv1.Workflow{ Spec: wfv1.WorkflowSpec{ Arguments: wfv1.Arguments{ - Parameters: []wfv1.Parameter{{Name: "a", Value: wfv1.Int64OrStringPtr("0")}}, + Parameters: []wfv1.Parameter{{Name: "a", Value: wfv1.AnyStringPtr("0")}}, }, }, } diff --git a/workflow/validate/validate.go b/workflow/validate/validate.go index b706c5904683..a6a18d8daf45 100644 --- a/workflow/validate/validate.go +++ b/workflow/validate/validate.go @@ -93,7 +93,7 @@ type FakeArguments struct{} func (args *FakeArguments) GetParameterByName(name string) *wfv1.Parameter { s := placeholderGenerator.NextPlaceholder() - return &wfv1.Parameter{Name: name, Value: wfv1.Int64OrStringPtr(s)} + return &wfv1.Parameter{Name: name, Value: wfv1.AnyStringPtr(s)} } func (args *FakeArguments) GetArtifactByName(name string) *wfv1.Artifact {