From 35e1b61fc8ac5d591a60fb7bbcc3fef3dc4f0a8c Mon Sep 17 00:00:00 2001 From: Parth Date: Tue, 15 Jun 2021 19:03:10 +0530 Subject: [PATCH] Add support for v13 + General improvments (#161) --- main_test.go | 8 +- rpc/author/submit_and_watch_extrinsic_test.go | 2 +- rpc/author/submit_extrinsic_test.go | 2 +- .../author_submit_and_watch_extrinsic_test.go | 2 +- teste2e/author_submit_extrinsic_test.go | 4 +- teste2e/main_test.go | 2 +- teste2e/state_subscribe_storage_test.go | 4 +- types/metadata.go | 48 ++ types/metadataV10.go | 29 ++ types/metadataV12.go | 122 +---- types/metadataV12_test.go | 60 +-- types/metadataV13.go | 433 ++++++++++++++++++ types/metadataV13_examplary.go | 5 + types/metadataV13_examplary_string.go | 3 + types/metadataV13_test.go | 152 ++++++ types/metadataV4.go | 14 + types/metadataV7.go | 21 + types/metadataV8.go | 13 + types/metadataV9.go | 13 + types/storage_key.go | 48 +- types/storage_key_test.go | 32 +- 21 files changed, 863 insertions(+), 154 deletions(-) create mode 100644 types/metadataV13.go create mode 100644 types/metadataV13_examplary.go create mode 100644 types/metadataV13_examplary_string.go create mode 100644 types/metadataV13_test.go diff --git a/main_test.go b/main_test.go index b4b7d5d7e..9930d29a1 100644 --- a/main_test.go +++ b/main_test.go @@ -102,7 +102,7 @@ func Example_listenToBalanceChange() { } alice := signature.TestKeyringPairAlice.PublicKey - key, err := types.CreateStorageKey(meta, "System", "Account", alice, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", alice) if err != nil { panic(err) } @@ -227,7 +227,7 @@ func Example_makeASimpleTransfer() { panic(err) } - key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey) if err != nil { panic(err) } @@ -280,7 +280,7 @@ func Example_displaySystemEvents() { } // Subscribe to system events via storage - key, err := types.CreateStorageKey(meta, "System", "Events", nil, nil) + key, err := types.CreateStorageKey(meta, "System", "Events", nil) if err != nil { panic(err) } @@ -441,7 +441,7 @@ func Example_transactionWithEvents() { } // Get the nonce for Alice - key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey) if err != nil { panic(err) } diff --git a/rpc/author/submit_and_watch_extrinsic_test.go b/rpc/author/submit_and_watch_extrinsic_test.go index 7562355fc..ecb94dd51 100644 --- a/rpc/author/submit_and_watch_extrinsic_test.go +++ b/rpc/author/submit_and_watch_extrinsic_test.go @@ -39,7 +39,7 @@ func TestAuthor_SubmitAndWatchExtrinsic(t *testing.T) { assert.NoError(t, err) // Get the nonce for Alice - key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey) assert.NoError(t, err) var accountInfo types.AccountInfo diff --git a/rpc/author/submit_extrinsic_test.go b/rpc/author/submit_extrinsic_test.go index c5804b07e..4fa4f1053 100644 --- a/rpc/author/submit_extrinsic_test.go +++ b/rpc/author/submit_extrinsic_test.go @@ -53,7 +53,7 @@ func TestAuthor_SubmitExtrinsic(t *testing.T) { assert.NoError(t, err) // Get the nonce for Alice - key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", signature.TestKeyringPairAlice.PublicKey) assert.NoError(t, err) var accountInfo types.AccountInfo diff --git a/teste2e/author_submit_and_watch_extrinsic_test.go b/teste2e/author_submit_and_watch_extrinsic_test.go index bf756beea..8264fdc23 100644 --- a/teste2e/author_submit_and_watch_extrinsic_test.go +++ b/teste2e/author_submit_and_watch_extrinsic_test.go @@ -61,7 +61,7 @@ func TestAuthor_SubmitAndWatchExtrinsic(t *testing.T) { rv, err := api.RPC.State.GetRuntimeVersionLatest() assert.NoError(t, err) - key, err := types.CreateStorageKey(meta, "System", "Account", from.PublicKey, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", from.PublicKey) assert.NoError(t, err) var sub *author.ExtrinsicStatusSubscription diff --git a/teste2e/author_submit_extrinsic_test.go b/teste2e/author_submit_extrinsic_test.go index 49b6da315..f55474008 100644 --- a/teste2e/author_submit_extrinsic_test.go +++ b/teste2e/author_submit_extrinsic_test.go @@ -34,7 +34,7 @@ func TestChain_Events(t *testing.T) { meta, err := api.RPC.State.GetMetadataLatest() assert.NoError(t, err) - key, err := types.CreateStorageKey(meta, "System", "Events", nil, nil) + key, err := types.CreateStorageKey(meta, "System", "Events", nil) assert.NoError(t, err) blockNUmber := uint64(0) // Replace with desired block to parse events @@ -80,7 +80,7 @@ func TestChain_SubmitExtrinsic(t *testing.T) { rv, err := api.RPC.State.GetRuntimeVersionLatest() assert.NoError(t, err) - key, err := types.CreateStorageKey(meta, "System", "Account", from.PublicKey, nil) + key, err := types.CreateStorageKey(meta, "System", "Account", from.PublicKey) assert.NoError(t, err) var accountInfo types.AccountInfo diff --git a/teste2e/main_test.go b/teste2e/main_test.go index 3cd2ec5e8..54573d14a 100644 --- a/teste2e/main_test.go +++ b/teste2e/main_test.go @@ -74,7 +74,7 @@ func TestEnd2end(t *testing.T) { meta, err := api.RPC.State.GetMetadataLatest() assert.NoError(t, err) - key, err := types.CreateStorageKey(meta, "Session", "Validators", nil, nil) + key, err := types.CreateStorageKey(meta, "Session", "Validators", nil) assert.NoError(t, err) var validators []types.AccountID diff --git a/teste2e/state_subscribe_storage_test.go b/teste2e/state_subscribe_storage_test.go index 48c1cb315..2c332ee5e 100644 --- a/teste2e/state_subscribe_storage_test.go +++ b/teste2e/state_subscribe_storage_test.go @@ -38,7 +38,7 @@ func TestState_SubscribeStorage_EventsRaw(t *testing.T) { meta, err := api.RPC.State.GetMetadataLatest() assert.NoError(t, err) - key, err := types.CreateStorageKey(meta, "System", "Events", nil, nil) + key, err := types.CreateStorageKey(meta, "System", "Events", nil) assert.NoError(t, err) sub, err := api.RPC.State.SubscribeStorageRaw([]types.StorageKey{key}) @@ -75,7 +75,7 @@ func TestState_SubscribeStorage_Events(t *testing.T) { meta, err := api.RPC.State.GetMetadataLatest() assert.NoError(t, err) - key, err := types.CreateStorageKey(meta, "System", "Events", nil, nil) + key, err := types.CreateStorageKey(meta, "System", "Events", nil) assert.NoError(t, err) sub, err := api.RPC.State.SubscribeStorageRaw([]types.StorageKey{key}) diff --git a/types/metadata.go b/types/metadata.go index 03a44a79b..b3978ec82 100644 --- a/types/metadata.go +++ b/types/metadata.go @@ -43,6 +43,8 @@ type Metadata struct { AsMetadataV11 MetadataV11 IsMetadataV12 bool AsMetadataV12 MetadataV12 + IsMetadataV13 bool + AsMetadataV13 MetadataV13 } func NewMetadataV4() *Metadata { @@ -81,6 +83,14 @@ func NewMetadataV12() *Metadata { } } +func NewMetadataV13() *Metadata { + return &Metadata{ + Version: 13, + IsMetadataV13: true, + AsMetadataV13: MetadataV13{Modules: make([]ModuleMetadataV13, 0)}, + } +} + func (m *Metadata) Decode(decoder scale.Decoder) error { err := decoder.Decode(&m.MagicNumber) if err != nil { @@ -117,6 +127,9 @@ func (m *Metadata) Decode(decoder scale.Decoder) error { case 12: m.IsMetadataV12 = true err = decoder.Decode(&m.AsMetadataV12) + case 13: + m.IsMetadataV13 = true + err = decoder.Decode(&m.AsMetadataV13) default: return fmt.Errorf("unsupported metadata version %v", m.Version) } @@ -150,6 +163,8 @@ func (m Metadata) Encode(encoder scale.Encoder) error { err = encoder.Encode(m.AsMetadataV11) case 12: err = encoder.Encode(m.AsMetadataV12) + case 13: + err = encoder.Encode(m.AsMetadataV13) default: return fmt.Errorf("unsupported metadata version %v", m.Version) } @@ -157,6 +172,31 @@ func (m Metadata) Encode(encoder scale.Encoder) error { return err } +func (m *Metadata) FindConstantValue(module string, constantName string) ([]byte, error) { + txtModule := Text(module) + txtConstantName := Text(constantName) + switch { + case m.IsMetadataV4: + return m.AsMetadataV4.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV7: + return m.AsMetadataV7.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV8: + return m.AsMetadataV8.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV9: + return m.AsMetadataV9.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV10: + return m.AsMetadataV10.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV11: + return m.AsMetadataV11.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV12: + return m.AsMetadataV12.FindConstantValue(txtModule, txtConstantName) + case m.IsMetadataV13: + return m.AsMetadataV13.FindConstantValue(txtModule, txtConstantName) + default: + return nil, fmt.Errorf("unsupported metadata version") + } +} + func (m *Metadata) FindCallIndex(call string) (CallIndex, error) { switch { case m.IsMetadataV4: @@ -173,6 +213,8 @@ func (m *Metadata) FindCallIndex(call string) (CallIndex, error) { return m.AsMetadataV11.FindCallIndex(call) case m.IsMetadataV12: return m.AsMetadataV12.FindCallIndex(call) + case m.IsMetadataV13: + return m.AsMetadataV13.FindCallIndex(call) default: return CallIndex{}, fmt.Errorf("unsupported metadata version") } @@ -194,6 +236,8 @@ func (m *Metadata) FindEventNamesForEventID(eventID EventID) (Text, Text, error) return m.AsMetadataV11.FindEventNamesForEventID(eventID) case m.IsMetadataV12: return m.AsMetadataV12.FindEventNamesForEventID(eventID) + case m.IsMetadataV13: + return m.AsMetadataV13.FindEventNamesForEventID(eventID) default: return "", "", fmt.Errorf("unsupported metadata version") } @@ -215,6 +259,8 @@ func (m *Metadata) FindStorageEntryMetadata(module string, fn string) (StorageEn return m.AsMetadataV11.FindStorageEntryMetadata(module, fn) case m.IsMetadataV12: return m.AsMetadataV12.FindStorageEntryMetadata(module, fn) + case m.IsMetadataV13: + return m.AsMetadataV13.FindStorageEntryMetadata(module, fn) default: return nil, fmt.Errorf("unsupported metadata version") } @@ -236,6 +282,8 @@ func (m *Metadata) ExistsModuleMetadata(module string) bool { return m.AsMetadataV11.ExistsModuleMetadata(module) case m.IsMetadataV12: return m.AsMetadataV12.ExistsModuleMetadata(module) + case m.IsMetadataV13: + return m.AsMetadataV13.ExistsModuleMetadata(module) default: return false } diff --git a/types/metadataV10.go b/types/metadataV10.go index 3a1a84019..9d50d6d77 100644 --- a/types/metadataV10.go +++ b/types/metadataV10.go @@ -87,6 +87,18 @@ func (m *MetadataV10) FindEventNamesForEventID(eventID EventID) (Text, Text, err return "", "", fmt.Errorf("module index %v out of range", eventID[0]) } +func (m *MetadataV10) FindConstantValue(module Text, constant Text) ([]byte, error) { + for _, mod := range m.Modules { + if mod.Name == module { + value, err := mod.FindConstantValue(constant) + if err == nil { + return value, nil + } + } + } + return nil, fmt.Errorf("could not find constant %s.%s", module, constant) +} + func (m *MetadataV10) FindStorageEntryMetadata(module string, fn string) (StorageEntryMetadata, error) { for _, mod := range m.Modules { if !mod.HasStorage { @@ -227,6 +239,15 @@ func (m ModuleMetadataV10) Encode(encoder scale.Encoder) error { return encoder.Encode(m.Errors) } +func (m *ModuleMetadataV10) FindConstantValue(constant Text) ([]byte, error) { + for _, cons := range m.Constants { + if cons.Name == constant { + return cons.Value, nil + } + } + return nil, fmt.Errorf("could not find constant %s", constant) +} + type StorageMetadataV10 struct { Prefix Text Items []StorageFunctionMetadataV10 @@ -252,6 +273,14 @@ func (s StorageFunctionMetadataV10) IsDoubleMap() bool { return s.Type.IsDoubleMap } +func (s StorageFunctionMetadataV10) IsNMap() bool { + return false +} + +func (s StorageFunctionMetadataV10) Hashers() ([]hash.Hash, error) { + return nil, fmt.Errorf("Hashers is not supported for metadata v10, please upgrade to use metadata v13 or newer") +} + func (s StorageFunctionMetadataV10) Hasher() (hash.Hash, error) { if s.Type.IsMap { return s.Type.AsMap.Hasher.HashFunc() diff --git a/types/metadataV12.go b/types/metadataV12.go index a8ba76cd3..c31903be8 100644 --- a/types/metadataV12.go +++ b/types/metadataV12.go @@ -83,6 +83,18 @@ func (m *MetadataV12) FindStorageEntryMetadata(module string, fn string) (Storag return nil, fmt.Errorf("module %v not found in metadata", module) } +func (m *MetadataV12) FindConstantValue(module Text, constant Text) ([]byte, error) { + for _, mod := range m.Modules { + if mod.Name == module { + value, err := mod.FindConstantValue(constant) + if err == nil { + return value, nil + } + } + } + return nil, fmt.Errorf("could not find constant %s.%s", module, constant) +} + func (m *MetadataV12) ExistsModuleMetadata(module string) bool { for _, mod := range m.Modules { if string(mod.Name) == module { @@ -93,124 +105,22 @@ func (m *MetadataV12) ExistsModuleMetadata(module string) bool { } type ModuleMetadataV12 struct { - Name Text - HasStorage bool - Storage StorageMetadataV10 - HasCalls bool - Calls []FunctionMetadataV4 - HasEvents bool - Events []EventMetadataV4 - Constants []ModuleConstantMetadataV6 - Errors []ErrorMetadataV8 - Index uint8 + ModuleMetadataV10 + Index uint8 } func (m *ModuleMetadataV12) Decode(decoder scale.Decoder) error { - err := decoder.Decode(&m.Name) - if err != nil { - return err - } - - err = decoder.Decode(&m.HasStorage) - if err != nil { - return err - } - - if m.HasStorage { - err = decoder.Decode(&m.Storage) - if err != nil { - return err - } - } - - err = decoder.Decode(&m.HasCalls) - if err != nil { - return err - } - - if m.HasCalls { - err = decoder.Decode(&m.Calls) - if err != nil { - return err - } - } - - err = decoder.Decode(&m.HasEvents) - if err != nil { - return err - } - - if m.HasEvents { - err = decoder.Decode(&m.Events) - if err != nil { - return err - } - } - - err = decoder.Decode(&m.Constants) - if err != nil { - return err - } - - err = decoder.Decode(&m.Errors) + err := decoder.Decode(&m.ModuleMetadataV10) if err != nil { return err } - return decoder.Decode(&m.Index) } func (m ModuleMetadataV12) Encode(encoder scale.Encoder) error { - err := encoder.Encode(m.Name) + err := encoder.Encode(&m.ModuleMetadataV10) if err != nil { return err } - - err = encoder.Encode(m.HasStorage) - if err != nil { - return err - } - - if m.HasStorage { - err = encoder.Encode(m.Storage) - if err != nil { - return err - } - } - - err = encoder.Encode(m.HasCalls) - if err != nil { - return err - } - - if m.HasCalls { - err = encoder.Encode(m.Calls) - if err != nil { - return err - } - } - - err = encoder.Encode(m.HasEvents) - if err != nil { - return err - } - - if m.HasEvents { - err = encoder.Encode(m.Events) - if err != nil { - return err - } - } - - err = encoder.Encode(m.Constants) - if err != nil { - return err - } - - err = encoder.Encode(m.Errors) - if err != nil { - return err - } - return encoder.Encode(m.Index) } diff --git a/types/metadataV12_test.go b/types/metadataV12_test.go index 56baa897b..42c9cb194 100644 --- a/types/metadataV12_test.go +++ b/types/metadataV12_test.go @@ -19,41 +19,47 @@ var exampleRuntimeMetadataV12 = MetadataV12{ } var exampleModuleMetadataV12Empty = ModuleMetadataV12{ - Name: "EmptyModule", - HasStorage: false, - Storage: StorageMetadataV10{}, - HasCalls: false, - Calls: nil, - HasEvents: false, - Events: nil, - Constants: nil, - Errors: nil, + ModuleMetadataV10: ModuleMetadataV10 { + Name: "EmptyModule", + HasStorage: false, + Storage: StorageMetadataV10{}, + HasCalls: false, + Calls: nil, + HasEvents: false, + Events: nil, + Constants: nil, + Errors: nil, + }, Index: 0, } var exampleModuleMetadataV121 = ModuleMetadataV12{ - Name: "Module1", - HasStorage: true, - Storage: exampleStorageMetadataV10, - HasCalls: true, - Calls: []FunctionMetadataV4{exampleFunctionMetadataV4}, - HasEvents: true, - Events: []EventMetadataV4{exampleEventMetadataV4}, - Constants: []ModuleConstantMetadataV6{exampleModuleConstantMetadataV6}, - Errors: []ErrorMetadataV8{exampleErrorMetadataV8}, + ModuleMetadataV10: ModuleMetadataV10 { + Name: "Module1", + HasStorage: true, + Storage: exampleStorageMetadataV10, + HasCalls: true, + Calls: []FunctionMetadataV4{exampleFunctionMetadataV4}, + HasEvents: true, + Events: []EventMetadataV4{exampleEventMetadataV4}, + Constants: []ModuleConstantMetadataV6{exampleModuleConstantMetadataV6}, + Errors: []ErrorMetadataV8{exampleErrorMetadataV8}, + }, Index: 1, } var exampleModuleMetadataV122 = ModuleMetadataV12{ - Name: "Module2", - HasStorage: true, - Storage: exampleStorageMetadataV10, - HasCalls: true, - Calls: []FunctionMetadataV4{exampleFunctionMetadataV4}, - HasEvents: true, - Events: []EventMetadataV4{exampleEventMetadataV4}, - Constants: []ModuleConstantMetadataV6{exampleModuleConstantMetadataV6}, - Errors: []ErrorMetadataV8{exampleErrorMetadataV8}, + ModuleMetadataV10: ModuleMetadataV10 { + Name: "Module2", + HasStorage: true, + Storage: exampleStorageMetadataV10, + HasCalls: true, + Calls: []FunctionMetadataV4{exampleFunctionMetadataV4}, + HasEvents: true, + Events: []EventMetadataV4{exampleEventMetadataV4}, + Constants: []ModuleConstantMetadataV6{exampleModuleConstantMetadataV6}, + Errors: []ErrorMetadataV8{exampleErrorMetadataV8}, + }, Index: 2, } diff --git a/types/metadataV13.go b/types/metadataV13.go new file mode 100644 index 000000000..614f14005 --- /dev/null +++ b/types/metadataV13.go @@ -0,0 +1,433 @@ +package types + +import ( + "fmt" + "hash" + "strings" + + "github.com/centrifuge/go-substrate-rpc-client/v3/scale" + "github.com/centrifuge/go-substrate-rpc-client/v3/xxhash" +) + +type MetadataV13 struct { + Modules []ModuleMetadataV13 + Extrinsic ExtrinsicV11 +} + +func (m *MetadataV13) Decode(decoder scale.Decoder) error { + err := decoder.Decode(&m.Modules) + if err != nil { + return err + } + return decoder.Decode(&m.Extrinsic) +} + +func (m MetadataV13) Encode(encoder scale.Encoder) error { + err := encoder.Encode(m.Modules) + if err != nil { + return err + } + return encoder.Encode(m.Extrinsic) +} + +func (m *MetadataV13) FindCallIndex(call string) (CallIndex, error) { + s := strings.Split(call, ".") + for _, mod := range m.Modules { + if !mod.HasCalls { + continue + } + if string(mod.Name) != s[0] { + continue + } + for ci, f := range mod.Calls { + if string(f.Name) == s[1] { + return CallIndex{mod.Index, uint8(ci)}, nil + } + } + return CallIndex{}, fmt.Errorf("method %v not found within module %v for call %v", s[1], mod.Name, call) + } + return CallIndex{}, fmt.Errorf("module %v not found in metadata for call %v", s[0], call) +} + +func (m *MetadataV13) FindEventNamesForEventID(eventID EventID) (Text, Text, error) { + for _, mod := range m.Modules { + if !mod.HasEvents { + continue + } + if mod.Index != eventID[0] { + continue + } + if int(eventID[1]) >= len(mod.Events) { + return "", "", fmt.Errorf("event index %v for module %v out of range", eventID[1], mod.Name) + } + return mod.Name, mod.Events[eventID[1]].Name, nil + } + return "", "", fmt.Errorf("module index %v out of range", eventID[0]) +} + +func (m *MetadataV13) FindStorageEntryMetadata(module string, fn string) (StorageEntryMetadata, error) { + for _, mod := range m.Modules { + if !mod.HasStorage { + continue + } + if string(mod.Storage.Prefix) != module { + continue + } + for _, s := range mod.Storage.Items { + if string(s.Name) != fn { + continue + } + return s, nil + } + return nil, fmt.Errorf("storage %v not found within module %v", fn, module) + } + return nil, fmt.Errorf("module %v not found in metadata", module) +} + +func (m *MetadataV13) FindConstantValue(module Text, constant Text) ([]byte, error) { + for _, mod := range m.Modules { + if mod.Name == module { + value, err := mod.FindConstantValue(constant) + if err == nil { + return value, nil + } + } + } + return nil, fmt.Errorf("could not find constant %s.%s", module, constant) +} + +func (m *MetadataV13) ExistsModuleMetadata(module string) bool { + for _, mod := range m.Modules { + if string(mod.Name) == module { + return true + } + } + return false +} + +type ModuleMetadataV13 struct { + Name Text + HasStorage bool + Storage StorageMetadataV13 + HasCalls bool + Calls []FunctionMetadataV4 + HasEvents bool + Events []EventMetadataV4 + Constants []ModuleConstantMetadataV6 + Errors []ErrorMetadataV8 + Index uint8 +} + +func (m *ModuleMetadataV13) Decode(decoder scale.Decoder) error { + err := decoder.Decode(&m.Name) + if err != nil { + return err + } + + err = decoder.Decode(&m.HasStorage) + if err != nil { + return err + } + + if m.HasStorage { + err = decoder.Decode(&m.Storage) + if err != nil { + return err + } + } + + err = decoder.Decode(&m.HasCalls) + if err != nil { + return err + } + + if m.HasCalls { + err = decoder.Decode(&m.Calls) + if err != nil { + return err + } + } + + err = decoder.Decode(&m.HasEvents) + if err != nil { + return err + } + + if m.HasEvents { + err = decoder.Decode(&m.Events) + if err != nil { + return err + } + } + + err = decoder.Decode(&m.Constants) + if err != nil { + return err + } + + err = decoder.Decode(&m.Errors) + if err != nil { + return err + } + + return decoder.Decode(&m.Index) +} + +func (m ModuleMetadataV13) Encode(encoder scale.Encoder) error { + err := encoder.Encode(m.Name) + if err != nil { + return err + } + + err = encoder.Encode(m.HasStorage) + if err != nil { + return err + } + + if m.HasStorage { + err = encoder.Encode(m.Storage) + if err != nil { + return err + } + } + + err = encoder.Encode(m.HasCalls) + if err != nil { + return err + } + + if m.HasCalls { + err = encoder.Encode(m.Calls) + if err != nil { + return err + } + } + + err = encoder.Encode(m.HasEvents) + if err != nil { + return err + } + + if m.HasEvents { + err = encoder.Encode(m.Events) + if err != nil { + return err + } + } + + err = encoder.Encode(m.Constants) + if err != nil { + return err + } + + err = encoder.Encode(m.Errors) + if err != nil { + return err + } + + return encoder.Encode(m.Index) +} + +func (m *ModuleMetadataV13) FindConstantValue(constant Text) ([]byte, error) { + for _, cons := range m.Constants { + if cons.Name == constant { + return cons.Value, nil + } + } + return nil, fmt.Errorf("could not find constant %s", constant) +} + +type StorageMetadataV13 struct { + Prefix Text + Items []StorageFunctionMetadataV13 +} + +type StorageFunctionMetadataV13 struct { + Name Text + Modifier StorageFunctionModifierV0 + Type StorageFunctionTypeV13 + Fallback Bytes + Documentation []Text +} + +func (s StorageFunctionMetadataV13) IsPlain() bool { + return s.Type.IsType +} + +func (s StorageFunctionMetadataV13) IsMap() bool { + return s.Type.IsMap +} + +func (s StorageFunctionMetadataV13) IsDoubleMap() bool { + return s.Type.IsDoubleMap +} + +func (s StorageFunctionMetadataV13) IsNMap() bool { + return s.Type.IsNMap +} + +func (s StorageFunctionMetadataV13) Hasher() (hash.Hash, error) { + if s.Type.IsMap { + return s.Type.AsMap.Hasher.HashFunc() + } + if s.Type.IsDoubleMap { + return s.Type.AsDoubleMap.Hasher.HashFunc() + } + if s.Type.IsNMap { + return nil, fmt.Errorf("only Map and DoubleMap have a Hasher") + } + return xxhash.New128(nil), nil +} + +func (s StorageFunctionMetadataV13) Hasher2() (hash.Hash, error) { + if !s.Type.IsDoubleMap { + return nil, fmt.Errorf("only DoubleMaps have a Hasher2") + } + return s.Type.AsDoubleMap.Key2Hasher.HashFunc() +} + +func (s StorageFunctionMetadataV13) Hashers() ([]hash.Hash, error) { + if !s.Type.IsNMap { + return nil, fmt.Errorf("only NMaps have Hashers") + } + + var hashers []hash.Hash + if s.Type.IsMap { + hashers = make([]hash.Hash, 1) + mapHasher, err := s.Type.AsMap.Hasher.HashFunc() + if err != nil { + return nil, err + } + hashers[0] = mapHasher + return hashers, nil + } + if s.Type.IsDoubleMap { + hashers = make([]hash.Hash, 2) + firstDoubleMapHasher, err := s.Type.AsDoubleMap.Hasher.HashFunc() + if err != nil { + return nil, err + } + hashers[0] = firstDoubleMapHasher + secondDoubleMapHasher, err := s.Type.AsDoubleMap.Key2Hasher.HashFunc() + if err != nil { + return nil, err + } + hashers[1] = secondDoubleMapHasher + return hashers, nil + } + if s.Type.IsNMap { + hashers = make([]hash.Hash, len(s.Type.AsNMap.Hashers)) + for i, hasher := range s.Type.AsNMap.Hashers { + hasherFn, err := hasher.HashFunc() + if err != nil { + return nil, err + } + hashers[i] = hasherFn + } + return hashers, nil + } + + hashers = make([]hash.Hash, 1) + hashers[0] = xxhash.New128(nil) + + return hashers, nil +} + +type StorageFunctionTypeV13 struct { + IsType bool + AsType Type // 0 + IsMap bool + AsMap MapTypeV10 // 1 + IsDoubleMap bool + AsDoubleMap DoubleMapTypeV10 // 2 + IsNMap bool + AsNMap NMapTypeV13 // 3 +} + +func (s *StorageFunctionTypeV13) Decode(decoder scale.Decoder) error { + var t uint8 + err := decoder.Decode(&t) + if err != nil { + return err + } + + switch t { + case 0: + s.IsType = true + err = decoder.Decode(&s.AsType) + if err != nil { + return err + } + case 1: + s.IsMap = true + err = decoder.Decode(&s.AsMap) + if err != nil { + return err + } + case 2: + s.IsDoubleMap = true + err = decoder.Decode(&s.AsDoubleMap) + if err != nil { + return err + } + case 3: + s.IsNMap = true + err = decoder.Decode(&s.AsNMap) + if err != nil { + return err + } + default: + return fmt.Errorf("received unexpected type %v", t) + } + return nil +} + +func (s StorageFunctionTypeV13) Encode(encoder scale.Encoder) error { + switch { + case s.IsType: + err := encoder.PushByte(0) + if err != nil { + return err + } + err = encoder.Encode(s.AsType) + if err != nil { + return err + } + case s.IsMap: + err := encoder.PushByte(1) + if err != nil { + return err + } + err = encoder.Encode(s.AsMap) + if err != nil { + return err + } + case s.IsDoubleMap: + err := encoder.PushByte(2) + if err != nil { + return err + } + err = encoder.Encode(s.AsDoubleMap) + if err != nil { + return err + } + case s.IsNMap: + err := encoder.PushByte(3) + if err != nil { + return err + } + err = encoder.Encode(s.AsNMap) + if err != nil { + return err + } + default: + return fmt.Errorf("expected to be either type, map, double map or nmap but none was set: %v", s) + } + return nil +} + +type NMapTypeV13 struct { + Keys []Type + Hashers []StorageHasherV10 + Value Type +} diff --git a/types/metadataV13_examplary.go b/types/metadataV13_examplary.go new file mode 100644 index 000000000..4626e1a37 --- /dev/null +++ b/types/metadataV13_examplary.go @@ -0,0 +1,5 @@ +package types + +var ExamplaryMetadataV13 = &Metadata{MagicNumber:0x6174656d, Version:0xd, IsMetadataV4:false, AsMetadataV4:MetadataV4{Modules:[]ModuleMetadataV4(nil)}, IsMetadataV7:false, AsMetadataV7:MetadataV7{Modules:[]ModuleMetadataV7(nil)}, IsMetadataV8:false, AsMetadataV8:MetadataV8{Modules:[]ModuleMetadataV8(nil)}, IsMetadataV9:false, AsMetadataV9:MetadataV9{Modules:[]ModuleMetadataV8(nil)}, IsMetadataV10:false, AsMetadataV10:MetadataV10{Modules:[]ModuleMetadataV10(nil)}, IsMetadataV11:false, AsMetadataV11:MetadataV11{MetadataV10:MetadataV10{Modules:[]ModuleMetadataV10(nil)}, Extrinsic:ExtrinsicV11{Version:0x0, SignedExtensions:[]string(nil)}}, IsMetadataV12:false, AsMetadataV12:MetadataV12{Modules:[]ModuleMetadataV12(nil), Extrinsic:ExtrinsicV11{Version:0x0, SignedExtensions:[]string(nil)}}, IsMetadataV13:true, AsMetadataV13:MetadataV13{Modules:[]ModuleMetadataV13{ModuleMetadataV13{Name:"System", HasStorage:true, Storage:StorageMetadataV13{Prefix:"System", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Account", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"AccountInfo", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The full account information for a particular account ID."}}, StorageFunctionMetadataV13{Name:"ExtrinsicCount", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Total extrinsics count for the current block."}}, StorageFunctionMetadataV13{Name:"BlockWeight", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ConsumedWeight", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The current weight for the block."}}, StorageFunctionMetadataV13{Name:"AllExtrinsicsLen", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV13{Name:"BlockHash", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::BlockNumber", Value:"T::Hash", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Map of block numbers to block hashes."}}, StorageFunctionMetadataV13{Name:"ExtrinsicData", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"u32", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, StorageFunctionMetadataV13{Name:"Number", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::BlockNumber", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The current block number being processed. Set by `execute_block`."}}, StorageFunctionMetadataV13{Name:"ParentHash", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::Hash", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Hash of the previous block."}}, StorageFunctionMetadataV13{Name:"Digest", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"DigestOf", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Digest of the current block, also part of the block header."}}, StorageFunctionMetadataV13{Name:"Events", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Events deposited for the current block."}}, StorageFunctionMetadataV13{Name:"EventCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"EventIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The number of events in the `Events` list."}}, StorageFunctionMetadataV13{Name:"EventTopics", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::Hash", Value:"Vec<(T::BlockNumber, EventIndex)>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}, StorageFunctionMetadataV13{Name:"LastRuntimeUpgrade", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"LastRuntimeUpgradeInfo", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."}}, StorageFunctionMetadataV13{Name:"UpgradedToU32RefCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."}}, StorageFunctionMetadataV13{Name:"UpgradedToTripleRefCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", " (default) if not."}}, StorageFunctionMetadataV13{Name:"ExecutionPhase", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Phase", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The execution phase of the block."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"fill_block", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"_ratio", Type:"Perbill"}}, Documentation:[]Text{" A dispatch that will fill the block weight up to the given ratio."}}, FunctionMetadataV4{Name:"remark", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"_remark", Type:"Vec"}}, Documentation:[]Text{" Make some on-chain remark.", "", " # ", " - `O(1)`", " # "}}, FunctionMetadataV4{Name:"set_heap_pages", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"pages", Type:"u64"}}, Documentation:[]Text{" Set the number of pages in the WebAssembly environment's heap.", "", " # ", " - `O(1)`", " - 1 storage write.", " - Base Weight: 1.405 µs", " - 1 write to HEAP_PAGES", " # "}}, FunctionMetadataV4{Name:"set_code", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"code", Type:"Vec"}}, Documentation:[]Text{" Set the new runtime code.", "", " # ", " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", " - 1 storage write (codec `O(C)`).", " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).", " - 1 event.", " The weight of this function is dependent on the runtime, but generally this is very expensive.", " We will treat this as a full block.", " # "}}, FunctionMetadataV4{Name:"set_code_without_checks", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"code", Type:"Vec"}}, Documentation:[]Text{" Set the new runtime code without doing any checks of the given `code`.", "", " # ", " - `O(C)` where `C` length of `code`", " - 1 storage write (codec `O(C)`).", " - 1 event.", " The weight of this function is dependent on the runtime. We will treat this as a full block.", " # "}}, FunctionMetadataV4{Name:"set_changes_trie_config", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"changes_trie_config", Type:"Option"}}, Documentation:[]Text{" Set the new changes trie configuration.", "", " # ", " - `O(1)`", " - 1 storage write or delete (codec `O(1)`).", " - 1 call to `deposit_log`: Uses `append` API, so O(1)", " - Base Weight: 7.218 µs", " - DB Weight:", " - Writes: Changes Trie, System Digest", " # "}}, FunctionMetadataV4{Name:"set_storage", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"items", Type:"Vec"}}, Documentation:[]Text{" Set some items of storage.", "", " # ", " - `O(I)` where `I` length of `items`", " - `I` storage writes (`O(1)`).", " - Base Weight: 0.568 * i µs", " - Writes: Number of items", " # "}}, FunctionMetadataV4{Name:"kill_storage", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"keys", Type:"Vec"}}, Documentation:[]Text{" Kill some items from storage.", "", " # ", " - `O(IK)` where `I` length of `keys` and `K` length of one key", " - `I` storage deletions.", " - Base Weight: .378 * i µs", " - Writes: Number of items", " # "}}, FunctionMetadataV4{Name:"kill_prefix", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"prefix", Type:"Key"}, FunctionArgumentMetadata{Name:"_subkeys", Type:"u32"}}, Documentation:[]Text{" Kill all storage items with a key that starts with the given prefix.", "", " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", " the prefix we are removing to accurately calculate the weight of this function.", "", " # ", " - `O(P)` where `P` amount of keys with prefix `prefix`", " - `P` storage deletions.", " - Base Weight: 0.834 * P µs", " - Writes: Number of subkeys + 1", " # "}}, FunctionMetadataV4{Name:"remark_with_event", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"remark", Type:"Vec"}}, Documentation:[]Text{" Make some on-chain remark and emit event.", "", " # ", " - `O(b)` where b is the length of the remark.", " - 1 event.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"ExtrinsicSuccess", Args:[]Type{"DispatchInfo"}, Documentation:[]Text{" An extrinsic completed successfully. \\[info\\]"}}, EventMetadataV4{Name:"ExtrinsicFailed", Args:[]Type{"DispatchError", "DispatchInfo"}, Documentation:[]Text{" An extrinsic failed. \\[error, info\\]"}}, EventMetadataV4{Name:"CodeUpdated", Args:[]Type(nil), Documentation:[]Text{" `:code` was updated."}}, EventMetadataV4{Name:"NewAccount", Args:[]Type{"AccountId"}, Documentation:[]Text{" A new \\[account\\] was created."}}, EventMetadataV4{Name:"KilledAccount", Args:[]Type{"AccountId"}, Documentation:[]Text{" An \\[account\\] was reaped."}}, EventMetadataV4{Name:"Remarked", Args:[]Type{"AccountId", "Hash"}, Documentation:[]Text{" On on-chain remark happened. \\[origin, remark_hash\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"BlockWeights", Type:"limits::BlockWeights", Value:Bytes{0x0, 0xf2, 0x5, 0x2a, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x4a, 0xa9, 0xd1, 0x1, 0x0, 0x0, 0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0x6e, 0x96, 0xa6, 0x2e, 0x1, 0x0, 0x0, 0x1, 0x0, 0x98, 0xf7, 0x3e, 0x5d, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0xf6, 0xe8, 0x10, 0xa3, 0x1, 0x0, 0x0, 0x1, 0x0, 0x20, 0x4a, 0xa9, 0xd1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x88, 0x52, 0x6a, 0x74, 0x0, 0x0, 0x0, 0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Block & extrinsics weights: base values and limits."}}, ModuleConstantMetadataV6{Name:"BlockLength", Type:"limits::BlockLength", Value:Bytes{0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x50, 0x0}, Documentation:[]Text{" The maximum length of a block (in bytes)."}}, ModuleConstantMetadataV6{Name:"BlockHashCount", Type:"T::BlockNumber", Value:Bytes{0x60, 0x9, 0x0, 0x0}, Documentation:[]Text{" Maximum number of block number to block hash mappings to keep (oldest pruned first)."}}, ModuleConstantMetadataV6{Name:"DbWeight", Type:"RuntimeDbWeight", Value:Bytes{0x40, 0x78, 0x7d, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0xf5, 0x5, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The weight of runtime database operations the runtime can invoke."}}, ModuleConstantMetadataV6{Name:"Version", Type:"RuntimeVersion", Value:Bytes{0x10, 0x6e, 0x6f, 0x64, 0x65, 0x38, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0xa, 0x0, 0x0, 0x0, 0xb, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x34, 0xdf, 0x6a, 0xcb, 0x68, 0x99, 0x7, 0x60, 0x9b, 0x3, 0x0, 0x0, 0x0, 0x37, 0xe3, 0x97, 0xfc, 0x7c, 0x91, 0xf5, 0xe4, 0x1, 0x0, 0x0, 0x0, 0x40, 0xfe, 0x3a, 0xd4, 0x1, 0xf8, 0x95, 0x9a, 0x5, 0x0, 0x0, 0x0, 0xd2, 0xbc, 0x98, 0x97, 0xee, 0xd0, 0x8f, 0x15, 0x2, 0x0, 0x0, 0x0, 0xf7, 0x8b, 0x27, 0x8b, 0xe5, 0x3f, 0x45, 0x4c, 0x2, 0x0, 0x0, 0x0, 0xed, 0x99, 0xc5, 0xac, 0xb2, 0x5e, 0xed, 0xf5, 0x2, 0x0, 0x0, 0x0, 0xcb, 0xca, 0x25, 0xe3, 0x9f, 0x14, 0x23, 0x87, 0x2, 0x0, 0x0, 0x0, 0x68, 0x7a, 0xd4, 0x4a, 0xd3, 0x7f, 0x3, 0xc2, 0x1, 0x0, 0x0, 0x0, 0xbc, 0x9d, 0x89, 0x90, 0x4f, 0x5b, 0x92, 0x3f, 0x1, 0x0, 0x0, 0x0, 0x68, 0xb6, 0x6b, 0xa1, 0x22, 0xc9, 0x3f, 0xa7, 0x1, 0x0, 0x0, 0x0, 0x37, 0xc8, 0xbb, 0x13, 0x50, 0xa9, 0xa2, 0xa8, 0x1, 0x0, 0x0, 0x0, 0x91, 0xd5, 0xdf, 0x18, 0xb0, 0xd2, 0xcf, 0x58, 0x1, 0x0, 0x0, 0x0, 0xab, 0x3c, 0x5, 0x72, 0x29, 0x1f, 0xeb, 0x8b, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0}, Documentation:[]Text{" Get the chain's current version."}}, ModuleConstantMetadataV6{Name:"SS58Prefix", Type:"u8", Value:Bytes{0x2a}, Documentation:[]Text{" The designated SS85 prefix of this chain.", "", " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", " that the runtime should know about the prefix in order to make use of it as", " an identifier of the chain."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InvalidSpecName", Documentation:[]Text{" The name of specification does not match between the current runtime", " and the new runtime."}}, ErrorMetadataV8{Name:"SpecVersionNeedsToIncrease", Documentation:[]Text{" The specification version is not allowed to decrease between the current runtime", " and the new runtime."}}, ErrorMetadataV8{Name:"FailedToExtractRuntimeVersion", Documentation:[]Text{" Failed to extract the runtime version from the new runtime.", "", " Either calling `Core_version` or decoding `RuntimeVersion` failed."}}, ErrorMetadataV8{Name:"NonDefaultComposite", Documentation:[]Text{" Suicide called when the account has non-default composite data."}}, ErrorMetadataV8{Name:"NonZeroRefCount", Documentation:[]Text{" There is a non-zero reference count preventing the account from being purged."}}}, Index:0x0}, ModuleMetadataV13{Name:"Utility", HasStorage:false, Storage:StorageMetadataV13{Prefix:"", Items:[]StorageFunctionMetadataV13(nil)}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"batch", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"calls", Type:"Vec<::Call>"}}, Documentation:[]Text{" Send a batch of dispatch calls.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " If origin is root then call are dispatch without checking origin filter. (This includes", " bypassing `frame_system::Config::BaseCallFilter`).", "", " # ", " - Complexity: O(C) where C is the number of calls to be batched.", " # ", "", " This will return `Ok` in all circumstances. To determine the success of the batch, an", " event is deposited. If a call failed and the batch was interrupted, then the", " `BatchInterrupted` event is deposited, along with the number of successful calls made", " and the error of the failed call. If all were successful, then the `BatchCompleted`", " event is deposited."}}, FunctionMetadataV4{Name:"as_derivative", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"u16"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Send a call through an indexed pseudonym of the sender.", "", " Filter from origin are passed along. The call will be dispatched with an origin which", " use the same filter as the origin of this call.", "", " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", " because you expect `proxy` to have been used prior in the call stack and you do not want", " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", " in the Multisig pallet instead.", "", " NOTE: Prior to version *12, this was called `as_limited_sub`.", "", " The dispatch origin for this call must be _Signed_."}}, FunctionMetadataV4{Name:"batch_all", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"calls", Type:"Vec<::Call>"}}, Documentation:[]Text{" Send a batch of dispatch calls and atomically execute them.", " The whole transaction will rollback and fail if any of the calls failed.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " If origin is root then call are dispatch without checking origin filter. (This includes", " bypassing `frame_system::Config::BaseCallFilter`).", "", " # ", " - Complexity: O(C) where C is the number of calls to be batched.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"BatchInterrupted", Args:[]Type{"u32", "DispatchError"}, Documentation:[]Text{" Batch of dispatches did not complete fully. Index of first failing dispatch given, as", " well as the error. \\[index, error\\]"}}, EventMetadataV4{Name:"BatchCompleted", Args:[]Type(nil), Documentation:[]Text{" Batch of dispatches completed fully with no error."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8(nil), Index:0x1}, ModuleMetadataV13{Name:"Babe", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Babe", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"EpochIndex", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u64", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Current epoch index."}}, StorageFunctionMetadataV13{Name:"Authorities", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Current epoch authorities."}}, StorageFunctionMetadataV13{Name:"GenesisSlot", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Slot", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, StorageFunctionMetadataV13{Name:"CurrentSlot", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Slot", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Current slot number."}}, StorageFunctionMetadataV13{Name:"Randomness", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"schnorrkel::Randomness", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, StorageFunctionMetadataV13{Name:"PendingEpochConfigChange", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"NextConfigDescriptor", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Pending epoch configuration change that will be applied when the next epoch is enacted."}}, StorageFunctionMetadataV13{Name:"NextRandomness", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"schnorrkel::Randomness", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Next epoch randomness."}}, StorageFunctionMetadataV13{Name:"NextAuthorities", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Next epoch authorities."}}, StorageFunctionMetadataV13{Name:"SegmentIndex", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, StorageFunctionMetadataV13{Name:"UnderConstruction", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"u32", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."}}, StorageFunctionMetadataV13{Name:"Initialized", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"MaybeRandomness", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}, StorageFunctionMetadataV13{Name:"AuthorVrfRandomness", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"MaybeRandomness", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Temporary value (cleared at block finalization) that includes the VRF output generated", " at this block. This field should always be populated during block processing unless", " secondary plain slots are enabled (which don't contain a VRF output)."}}, StorageFunctionMetadataV13{Name:"EpochStart", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"(T::BlockNumber, T::BlockNumber)", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The block numbers when the last and current epoch have started, respectively `N-1` and", " `N`.", " NOTE: We track this is in order to annotate the block number when a given pool of", " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", " slots, which may be skipped, the block numbers may not line up with the slot numbers."}}, StorageFunctionMetadataV13{Name:"Lateness", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::BlockNumber", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" How late the current block is compared to its parent.", "", " This entry is populated as part of block execution and is cleaned up", " on block finalization. Querying this storage entry outside of block", " execution context should always yield zero."}}, StorageFunctionMetadataV13{Name:"EpochConfig", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BabeEpochConfiguration", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The configuration for the current epoch. Should never be `None` as it is initialized in genesis."}}, StorageFunctionMetadataV13{Name:"NextEpochConfig", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BabeEpochConfiguration", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The configuration for the next epoch, `None` if the config will not change", " (you can fallback to `EpochConfig` instead in that case)."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"report_equivocation", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"equivocation_proof", Type:"EquivocationProof"}, FunctionArgumentMetadata{Name:"key_owner_proof", Type:"T::KeyOwnerProof"}}, Documentation:[]Text{" Report authority equivocation/misbehavior. This method will verify", " the equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence will", " be reported."}}, FunctionMetadataV4{Name:"report_equivocation_unsigned", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"equivocation_proof", Type:"EquivocationProof"}, FunctionArgumentMetadata{Name:"key_owner_proof", Type:"T::KeyOwnerProof"}}, Documentation:[]Text{" Report authority equivocation/misbehavior. This method will verify", " the equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence will", " be reported.", " This extrinsic must be called unsigned and it is expected that only", " block authors will call it (validated in `ValidateUnsigned`), as such", " if the block author is defined it will be defined as the equivocation", " reporter."}}, FunctionMetadataV4{Name:"plan_config_change", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"config", Type:"NextConfigDescriptor"}}, Documentation:[]Text{" Plan an epoch config change. The epoch config change is recorded and will be enacted on", " the next call to `enact_epoch_change`. The config will be activated one epoch after.", " Multiple calls to this method will replace any existing planned config change that had", " not been enacted yet."}}}, HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"EpochDuration", Type:"u64", Value:Bytes{0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of time, in slots, that each epoch should last.", " NOTE: Currently it is not possible to change the epoch duration after", " the chain has started. Attempting to do so will brick block production."}}, ModuleConstantMetadataV6{Name:"ExpectedBlockTime", Type:"T::Moment", Value:Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InvalidEquivocationProof", Documentation:[]Text{" An equivocation proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name:"InvalidKeyOwnershipProof", Documentation:[]Text{" A key ownership proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name:"DuplicateOffenceReport", Documentation:[]Text{" A given equivocation report is valid but already previously reported."}}}, Index:0x2}, ModuleMetadataV13{Name:"Timestamp", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Timestamp", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Now", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::Moment", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Current time for the current block."}}, StorageFunctionMetadataV13{Name:"DidUpdate", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Did the timestamp get updated in this block?"}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"set", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"now", Type:"Compact"}}, Documentation:[]Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`.", "", " # ", " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)", " - 1 event handler `on_timestamp_set`. Must be `O(1)`.", " # "}}}, HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"MinimumPeriod", Type:"T::Moment", Value:Bytes{0xdc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors:[]ErrorMetadataV8(nil), Index:0x3}, ModuleMetadataV13{Name:"Authorship", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Authorship", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Uncles", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Uncles"}}, StorageFunctionMetadataV13{Name:"Author", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Author of current block."}}, StorageFunctionMetadataV13{Name:"DidSetUncles", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Whether uncles were already set in this block."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"set_uncles", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new_uncles", Type:"Vec"}}, Documentation:[]Text{" Provide a set of uncles."}}}, HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InvalidUncleParent", Documentation:[]Text{" The uncle parent not in the chain."}}, ErrorMetadataV8{Name:"UnclesAlreadySet", Documentation:[]Text{" Uncles already set in the block."}}, ErrorMetadataV8{Name:"TooManyUncles", Documentation:[]Text{" Too many uncles."}}, ErrorMetadataV8{Name:"GenesisUncle", Documentation:[]Text{" The uncle is genesis."}}, ErrorMetadataV8{Name:"TooHighUncle", Documentation:[]Text{" The uncle is too high in chain."}}, ErrorMetadataV8{Name:"UncleAlreadyIncluded", Documentation:[]Text{" The uncle is already included."}}, ErrorMetadataV8{Name:"OldUncle", Documentation:[]Text{" The uncle isn't recent enough to be included."}}}, Index:0x4}, ModuleMetadataV13{Name:"Indices", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Indices", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Accounts", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountIndex", Value:"(T::AccountId, BalanceOf, bool)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The lookup from index to account."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"claim", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"T::AccountIndex"}}, Documentation:[]Text{" Assign an previously unassigned index.", "", " Payment: `Deposit` is reserved from the sender account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `index`: the index to be claimed. This must not be in use.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One reserve operation.", " - One event.", " -------------------", " - DB Weight: 1 Read/Write (Accounts)", " # "}}, FunctionMetadataV4{Name:"transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"index", Type:"T::AccountIndex"}}, Documentation:[]Text{" Assign an index already owned by the sender to another account. The balance reservation", " is effectively transferred to the new account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `index`: the index to be re-assigned. This must be owned by the sender.", " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One transfer operation.", " - One event.", " -------------------", " - DB Weight:", " - Reads: Indices Accounts, System Account (recipient)", " - Writes: Indices Accounts, System Account (recipient)", " # "}}, FunctionMetadataV4{Name:"free", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"T::AccountIndex"}}, Documentation:[]Text{" Free up an index owned by the sender.", "", " Payment: Any previous deposit placed for the index is unreserved in the sender account.", "", " The dispatch origin for this call must be _Signed_ and the sender must own the index.", "", " - `index`: the index to be freed. This must be owned by the sender.", "", " Emits `IndexFreed` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One reserve operation.", " - One event.", " -------------------", " - DB Weight: 1 Read/Write (Accounts)", " # "}}, FunctionMetadataV4{Name:"force_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"index", Type:"T::AccountIndex"}, FunctionArgumentMetadata{Name:"freeze", Type:"bool"}}, Documentation:[]Text{" Force an index to an account. This doesn't require a deposit. If the index is already", " held, then any deposit is reimbursed to its current owner.", "", " The dispatch origin for this call must be _Root_.", "", " - `index`: the index to be (re-)assigned.", " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - Up to one reserve operation.", " - One event.", " -------------------", " - DB Weight:", " - Reads: Indices Accounts, System Account (original owner)", " - Writes: Indices Accounts, System Account (original owner)", " # "}}, FunctionMetadataV4{Name:"freeze", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"T::AccountIndex"}}, Documentation:[]Text{" Freeze an index so it will always point to the sender account. This consumes the deposit.", "", " The dispatch origin for this call must be _Signed_ and the signing account must have a", " non-frozen account `index`.", "", " - `index`: the index to be frozen in place.", "", " Emits `IndexFrozen` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - Up to one slash operation.", " - One event.", " -------------------", " - DB Weight: 1 Read/Write (Accounts)", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"IndexAssigned", Args:[]Type{"AccountId", "AccountIndex"}, Documentation:[]Text{" A account index was assigned. \\[index, who\\]"}}, EventMetadataV4{Name:"IndexFreed", Args:[]Type{"AccountIndex"}, Documentation:[]Text{" A account index has been freed up (unassigned). \\[index\\]"}}, EventMetadataV4{Name:"IndexFrozen", Args:[]Type{"AccountIndex", "AccountId"}, Documentation:[]Text{" A account index has been frozen to its current account ID. \\[index, who\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"Deposit", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The deposit needed for reserving an index."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotAssigned", Documentation:[]Text{" The index was not already assigned."}}, ErrorMetadataV8{Name:"NotOwner", Documentation:[]Text{" The index is assigned to another account."}}, ErrorMetadataV8{Name:"InUse", Documentation:[]Text{" The index was not available."}}, ErrorMetadataV8{Name:"NotTransfer", Documentation:[]Text{" The source and destination accounts are identical."}}, ErrorMetadataV8{Name:"Permanent", Documentation:[]Text{" The index is permanent and may not be freed/changed."}}}, Index:0x5}, ModuleMetadataV13{Name:"Balances", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Balances", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"TotalIssuance", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::Balance", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The total units issued in the system."}}, StorageFunctionMetadataV13{Name:"Account", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"AccountData", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The balance of an account.", "", " NOTE: This is only used in the case that this pallet is used to store balances."}}, StorageFunctionMetadataV13{Name:"Locks", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"WeakBoundedVec, T::MaxLocks>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Any liquidity locks on some account balances.", " NOTE: Should only be accessed when setting, changing and freeing a lock."}}, StorageFunctionMetadataV13{Name:"Reserves", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"BoundedVec, T::\nMaxReserves>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Named reserves on some account balances."}}, StorageFunctionMetadataV13{Name:"StorageVersion", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Releases", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Storage version of the pallet.", "", " This is set to v2.0.0 for new networks."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"dest", Type:"::Source"}, FunctionArgumentMetadata{Name:"value", Type:"Compact"}}, Documentation:[]Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", " check that the transfer will not kill the origin account.", " ---------------------------------", " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", " - DB Weight: 1 Read and 1 Write to destination account", " - Origin account is already in memory, so no DB operations for them.", " # "}}, FunctionMetadataV4{Name:"set_balance", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"::Source"}, FunctionArgumentMetadata{Name:"new_free", Type:"Compact"}, FunctionArgumentMetadata{Name:"new_reserved", Type:"Compact"}}, Documentation:[]Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`frame_system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " ---------------------", " - Base Weight:", " - Creating: 27.56 µs", " - Killing: 35.11 µs", " - DB Weight: 1 Read, 1 Write to `who`", " # "}}, FunctionMetadataV4{Name:"force_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"source", Type:"::Source"}, FunctionArgumentMetadata{Name:"dest", Type:"::Source"}, FunctionArgumentMetadata{Name:"value", Type:"Compact"}}, Documentation:[]Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified.", " # ", " - Same as transfer, but additional read and write because the source account is", " not assumed to be in the overlay.", " # "}}, FunctionMetadataV4{Name:"transfer_keep_alive", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"dest", Type:"::Source"}, FunctionArgumentMetadata{Name:"value", Type:"Compact"}}, Documentation:[]Text{" Same as the [`transfer`] call, but with a check that the transfer will not kill the", " origin account.", "", " 99% of the time you want [`transfer`] instead.", "", " [`transfer`]: struct.Pallet.html#method.transfer", " # ", " - Cheaper than transfer because account cannot be killed.", " - Base Weight: 51.4 µs", " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", " #"}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Endowed", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" An account was created with some free balance. \\[account, free_balance\\]"}}, EventMetadataV4{Name:"DustLost", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" An account was removed whose balance was non-zero but below ExistentialDeposit,", " resulting in an outright loss. \\[account, balance\\]"}}, EventMetadataV4{Name:"Transfer", Args:[]Type{"AccountId", "AccountId", "Balance"}, Documentation:[]Text{" Transfer succeeded. \\[from, to, value\\]"}}, EventMetadataV4{Name:"BalanceSet", Args:[]Type{"AccountId", "Balance", "Balance"}, Documentation:[]Text{" A balance was set by root. \\[who, free, reserved\\]"}}, EventMetadataV4{Name:"Deposit", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]"}}, EventMetadataV4{Name:"Reserved", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" Some balance was reserved (moved from free to reserved). \\[who, value\\]"}}, EventMetadataV4{Name:"Unreserved", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" Some balance was unreserved (moved from reserved to free). \\[who, value\\]"}}, EventMetadataV4{Name:"ReserveRepatriated", Args:[]Type{"AccountId", "AccountId", "Balance", "Status"}, Documentation:[]Text{" Some balance was moved from the reserve of the first account to the second account.", " Final argument indicates the destination balance type.", " \\[from, to, balance, destination_status\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"ExistentialDeposit", Type:"T::Balance", Value:Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum amount required to keep an account open."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"VestingBalance", Documentation:[]Text{" Vesting balance too high to send value"}}, ErrorMetadataV8{Name:"LiquidityRestrictions", Documentation:[]Text{" Account liquidity restrictions prevent withdrawal"}}, ErrorMetadataV8{Name:"InsufficientBalance", Documentation:[]Text{" Balance too low to send value"}}, ErrorMetadataV8{Name:"ExistentialDeposit", Documentation:[]Text{" Value too low to create account due to existential deposit"}}, ErrorMetadataV8{Name:"KeepAlive", Documentation:[]Text{" Transfer/payment would kill account"}}, ErrorMetadataV8{Name:"ExistingVestingSchedule", Documentation:[]Text{" A vesting schedule already exists for this account"}}, ErrorMetadataV8{Name:"DeadAccount", Documentation:[]Text{" Beneficiary account must pre-exist"}}, ErrorMetadataV8{Name:"TooManyReserves", Documentation:[]Text{" Number of named reserves exceed MaxReserves"}}}, Index:0x6}, ModuleMetadataV13{Name:"TransactionPayment", HasStorage:true, Storage:StorageMetadataV13{Prefix:"TransactionPayment", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"NextFeeMultiplier", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Multiplier", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x64, 0xa7, 0xb3, 0xb6, 0xe0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text(nil)}, StorageFunctionMetadataV13{Name:"StorageVersion", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Releases", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text(nil)}}}, HasCalls:false, Calls:[]FunctionMetadataV4(nil), HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"TransactionByteFee", Type:"BalanceOf", Value:Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The fee to be paid for making a transaction; the per-byte portion."}}, ModuleConstantMetadataV6{Name:"WeightToFee", Type:"Vec>>", Value:Bytes{0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, Documentation:[]Text{" The polynomial that is applied in order to derive fee from weight."}}}, Errors:[]ErrorMetadataV8(nil), Index:0x7}, ModuleMetadataV13{Name:"ElectionProviderMultiPhase", HasStorage:true, Storage:StorageMetadataV13{Prefix:"ElectionProviderMultiPhase", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Round", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x1, 0x0, 0x0, 0x0}, Documentation:[]Text{" Internal counter for the number of rounds.", "", " This is useful for de-duplication of transactions submitted to the pool, and general", " diagnostics of the pallet.", "", " This is merely incremented once per every time that an upstream `elect` is called."}}, StorageFunctionMetadataV13{Name:"CurrentPhase", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Phase", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Current phase."}}, StorageFunctionMetadataV13{Name:"QueuedSolution", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ReadySolution", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Current best solution, signed or unsigned, queued to be returned upon `elect`."}}, StorageFunctionMetadataV13{Name:"Snapshot", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"RoundSnapshot", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Snapshot data of the round.", "", " This is created at the beginning of the signed phase and cleared upon calling `elect`."}}, StorageFunctionMetadataV13{Name:"DesiredTargets", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Desired number of targets to elect for this round.", "", " Only exists when [`Snapshot`] is present."}}, StorageFunctionMetadataV13{Name:"SnapshotMetadata", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"SolutionOrSnapshotSize", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The metadata of the [`RoundSnapshot`]", "", " Only exists when [`Snapshot`] is present."}}, StorageFunctionMetadataV13{Name:"MinimumUntrustedScore", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ElectionScore", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The minimum score that each 'untrusted' solution must attain in order to be considered", " feasible.", "", " Can be set via `set_minimum_untrusted_score`."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"submit_unsigned", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"solution", Type:"RawSolution>"}, FunctionArgumentMetadata{Name:"witness", Type:"SolutionOrSnapshotSize"}}, Documentation:[]Text{" Submit a solution for the unsigned phase.", "", " The dispatch origin fo this call must be __none__.", "", " This submission is checked on the fly. Moreover, this unsigned solution is only", " validated when submitted to the pool from the **local** node. Effectively, this means", " that only active validators can submit this transaction when authoring a block (similar", " to an inherent).", "", " To prevent any incorrect solution (and thus wasted time/weight), this transaction will", " panic if the solution submitted by the validator is invalid in any way, effectively", " putting their authoring reward at risk.", "", " No deposit or reward is associated with this submission."}}, FunctionMetadataV4{Name:"set_minimum_untrusted_score", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"maybe_next_score", Type:"Option"}}, Documentation:[]Text{" Set a new value for `MinimumUntrustedScore`.", "", " Dispatch origin must be aligned with `T::ForceOrigin`.", "", " This check can be turned off by setting the value to `None`."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"SolutionStored", Args:[]Type{"ElectionCompute"}, Documentation:[]Text{" A solution was stored with the given compute.", "", " If the solution is signed, this means that it hasn't yet been processed. If the", " solution is unsigned, this means that it has also been processed."}}, EventMetadataV4{Name:"ElectionFinalized", Args:[]Type{"Option"}, Documentation:[]Text{" The election has been finalized, with `Some` of the given computation, or else if the", " election failed, `None`."}}, EventMetadataV4{Name:"Rewarded", Args:[]Type{"AccountId"}, Documentation:[]Text{" An account has been rewarded for their signed submission being finalized."}}, EventMetadataV4{Name:"Slashed", Args:[]Type{"AccountId"}, Documentation:[]Text{" An account has been slashed for submitting an invalid signed submission."}}, EventMetadataV4{Name:"SignedPhaseStarted", Args:[]Type{"u32"}, Documentation:[]Text{" The signed phase of the given round has started."}}, EventMetadataV4{Name:"UnsignedPhaseStarted", Args:[]Type{"u32"}, Documentation:[]Text{" The unsigned phase of the given round has started."}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"UnsignedPhase", Type:"T::BlockNumber", Value:Bytes{0x32, 0x0, 0x0, 0x0}, Documentation:[]Text{" Duration of the unsigned phase."}}, ModuleConstantMetadataV6{Name:"SignedPhase", Type:"T::BlockNumber", Value:Bytes{0x32, 0x0, 0x0, 0x0}, Documentation:[]Text{" Duration of the signed phase."}}, ModuleConstantMetadataV6{Name:"SolutionImprovementThreshold", Type:"Perbill", Value:Bytes{0xa0, 0x86, 0x1, 0x0}, Documentation:[]Text{" The minimum amount of improvement to the solution score that defines a solution as", " \"better\" (in any phase)."}}, ModuleConstantMetadataV6{Name:"OffchainRepeat", Type:"T::BlockNumber", Value:Bytes{0x5, 0x0, 0x0, 0x0}, Documentation:[]Text{" The repeat threshold of the offchain worker.", "", " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", " to submit the worker's solution."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"PreDispatchEarlySubmission", Documentation:[]Text{" Submission was too early."}}, ErrorMetadataV8{Name:"PreDispatchWrongWinnerCount", Documentation:[]Text{" Wrong number of winners presented."}}, ErrorMetadataV8{Name:"PreDispatchWeakSubmission", Documentation:[]Text{" Submission was too weak, score-wise."}}, ErrorMetadataV8{Name:"OcwCallWrongEra", Documentation:[]Text{" OCW submitted solution for wrong round"}}}, Index:0x8}, ModuleMetadataV13{Name:"Staking", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Staking", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"HistoryDepth", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x54, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of eras to keep in history.", "", " Information is kept for eras in `[current_era - history_depth; current_era]`.", "", " Must be more than the number of eras delayed by session otherwise. I.e. active era must", " always be in history. I.e. `active_era > current_era - history_depth` must be", " guaranteed."}}, StorageFunctionMetadataV13{Name:"ValidatorCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The ideal number of staking participants."}}, StorageFunctionMetadataV13{Name:"MinimumValidatorCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Minimum number of staking participants before emergency conditions are imposed."}}, StorageFunctionMetadataV13{Name:"Invulnerables", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, StorageFunctionMetadataV13{Name:"Bonded", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"T::AccountId", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Map from all locked \"stash\" accounts to the controller account."}}, StorageFunctionMetadataV13{Name:"Ledger", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"StakingLedger>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, StorageFunctionMetadataV13{Name:"Payee", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"RewardDestination", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Where the reward payment should be made. Keyed by stash."}}, StorageFunctionMetadataV13{Name:"Validators", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"ValidatorPrefs", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0}, Documentation:[]Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, StorageFunctionMetadataV13{Name:"Nominators", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"Nominations", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The map from nominator stash key to the set of stash keys of all validators to nominate."}}, StorageFunctionMetadataV13{Name:"CurrentEra", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"EraIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current era index.", "", " This is the latest planned era, depending on how the Session pallet queues the validator", " set, it might be active or not."}}, StorageFunctionMetadataV13{Name:"ActiveEra", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ActiveEraInfo", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The active era information, it holds index and start.", "", " The active era is the era being currently rewarded. Validator set of this era must be", " equal to [`SessionInterface::validators`]."}}, StorageFunctionMetadataV13{Name:"ErasStartSessionIndex", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"EraIndex", Value:"SessionIndex", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The session index at which the era start for the last `HISTORY_DEPTH` eras.", "", " Note: This tracks the starting session (i.e. session index when era start being active)", " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`."}}, StorageFunctionMetadataV13{Name:"ErasStakers", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"EraIndex", Key2:"T::AccountId", Value:"Exposure>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0}, Documentation:[]Text{" Exposure of validator at era.", "", " This is keyed first by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras.", " If stakers hasn't been set or has been removed then empty exposure is returned."}}, StorageFunctionMetadataV13{Name:"ErasStakersClipped", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"EraIndex", Key2:"T::AccountId", Value:"Exposure>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0}, Documentation:[]Text{" Clipped Exposure of validator at era.", "", " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", " `T::MaxNominatorRewardedPerValidator` biggest stakers.", " (Note: the field `total` and `own` of the exposure remains unchanged).", " This is used to limit the i/o cost for the nominator payout.", "", " This is keyed fist by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras.", " If stakers hasn't been set or has been removed then empty exposure is returned."}}, StorageFunctionMetadataV13{Name:"ErasValidatorPrefs", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"EraIndex", Key2:"T::AccountId", Value:"ValidatorPrefs", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0}, Documentation:[]Text{" Similar to `ErasStakers`, this holds the preferences of validators.", "", " This is keyed first by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras."}}, StorageFunctionMetadataV13{Name:"ErasValidatorReward", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"EraIndex", Value:"BalanceOf", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The total validator era payout for the last `HISTORY_DEPTH` eras.", "", " Eras that haven't finished yet or has been removed doesn't have reward."}}, StorageFunctionMetadataV13{Name:"ErasRewardPoints", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"EraIndex", Value:"EraRewardPoints", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Rewards for the last `HISTORY_DEPTH` eras.", " If reward hasn't been set or has been removed then 0 reward is returned."}}, StorageFunctionMetadataV13{Name:"ErasTotalStake", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"EraIndex", Value:"BalanceOf", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The total amount staked for the last `HISTORY_DEPTH` eras.", " If total hasn't been set or has been removed then 0 stake is returned."}}, StorageFunctionMetadataV13{Name:"ForceEra", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Forcing", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Mode of era forcing."}}, StorageFunctionMetadataV13{Name:"SlashRewardFraction", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Perbill", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, StorageFunctionMetadataV13{Name:"CanceledSlashPayout", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BalanceOf", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of currency given to reporters of a slash event which was", " canceled by extraordinary circumstances (e.g. governance)."}}, StorageFunctionMetadataV13{Name:"UnappliedSlashes", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"EraIndex", Value:"Vec>>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" All unapplied slashes that are queued for later."}}, StorageFunctionMetadataV13{Name:"BondedEras", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(EraIndex, SessionIndex)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A mapping from still-bonded eras to the first session index of that era.", "", " Must contains information for eras for the range:", " `[active_era - bounding_duration; active_era]`"}}, StorageFunctionMetadataV13{Name:"ValidatorSlashInEra", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"EraIndex", Key2:"T::AccountId", Value:"(Perbill, BalanceOf)", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" All slashing events on validators, mapped by era to the highest slash proportion", " and slash value of the era."}}, StorageFunctionMetadataV13{Name:"NominatorSlashInEra", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"EraIndex", Key2:"T::AccountId", Value:"BalanceOf", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" All slashing events on nominators, mapped by era to the highest slash value of the era."}}, StorageFunctionMetadataV13{Name:"SlashingSpans", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"slashing::SlashingSpans", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Slashing spans for stash accounts."}}, StorageFunctionMetadataV13{Name:"SpanSlash", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"(T::AccountId, slashing::SpanIndex)", Value:"slashing::SpanRecord>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Records information about the maximum slash of a stash within a slashing span,", " as well as how much reward has been paid out."}}, StorageFunctionMetadataV13{Name:"EarliestUnappliedSlash", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"EraIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The earliest era for which we have a pending, unapplied slash."}}, StorageFunctionMetadataV13{Name:"CurrentPlannedSession", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"SessionIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The last planned session scheduled by the session pallet.", "", " This is basically in sync with the call to [`SessionManager::new_session`]."}}, StorageFunctionMetadataV13{Name:"StorageVersion", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Releases", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x5}, Documentation:[]Text{" True if network has been upgraded to this version.", " Storage version of the pallet.", "", " This is set to v6.0.0 for new networks."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"bond", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"controller", Type:"::Source"}, FunctionArgumentMetadata{Name:"value", Type:"Compact>"}, FunctionArgumentMetadata{Name:"payee", Type:"RewardDestination"}}, Documentation:[]Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " Emits `Bonded`.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", " unless the `origin` falls below _existential deposit_ and gets removed as dust.", " ------------------", " Weight: O(1)", " DB Weight:", " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks", " - Write: Bonded, Payee, [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name:"bond_extra", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"max_additional", Type:"Compact>"}}, Documentation:[]Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller and", " it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Bonded`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " ------------", " DB Weight:", " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks", " - Write: [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name:"unbond", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"value", Type:"Compact>"}}, Documentation:[]Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Unbonded`.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via", " `withdraw_unbonded`.", " - One DB entry.", " ----------", " Weight: O(1)", " DB Weight:", " - Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,", " - Write: Locks, Ledger, BalanceOf Stash,", " "}}, FunctionMetadataV4{Name:"withdraw_unbonded", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"num_slashing_spans", Type:"u32"}}, Documentation:[]Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Withdrawn`.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " ---------------", " Complexity O(S) where S is the number of slashing spans to remove", " Update:", " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]", " - Writes: [Origin Account], Locks, Ledger", " Kill:", " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin", " Account], Locks, BalanceOf stash", " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", " [Origin Account], Locks, BalanceOf stash.", " - Writes Each: SpanSlash * S", " NOTE: Weight annotation is the kill scenario, we refund otherwise.", " # "}}, FunctionMetadataV4{Name:"validate", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"prefs", Type:"ValidatorPrefs"}}, Documentation:[]Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " -----------", " Weight: O(1)", " DB Weight:", " - Read: Era Election Status, Ledger", " - Write: Nominators, Validators", " # "}}, FunctionMetadataV4{Name:"nominate", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"targets", Type:"Vec<::Source>"}}, Documentation:[]Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era. This can only be called when", " [`EraElectionStatus`] is `Closed`.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - The transaction's complexity is proportional to the size of `targets` (N)", " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", " - Both the reads and writes follow a similar pattern.", " ---------", " Weight: O(N)", " where N is the number of targets", " DB Weight:", " - Reads: Era Election Status, Ledger, Current Era", " - Writes: Validators, Nominators", " # "}}, FunctionMetadataV4{Name:"chill", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " --------", " Weight: O(1)", " DB Weight:", " - Read: EraElectionStatus, Ledger", " - Write: Validators, Nominators", " # "}}, FunctionMetadataV4{Name:"set_payee", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"payee", Type:"RewardDestination"}}, Documentation:[]Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " ---------", " - Weight: O(1)", " - DB Weight:", " - Read: Ledger", " - Write: Payee", " # "}}, FunctionMetadataV4{Name:"set_controller", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"controller", Type:"::Source"}}, Documentation:[]Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " ----------", " Weight: O(1)", " DB Weight:", " - Read: Bonded, Ledger New Controller, Ledger Old Controller", " - Write: Bonded, Ledger New Controller, Ledger Old Controller", " # "}}, FunctionMetadataV4{Name:"set_validator_count", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new", Type:"Compact"}}, Documentation:[]Text{" Sets the ideal number of validators.", "", " The dispatch origin must be Root.", "", " # ", " Weight: O(1)", " Write: Validator Count", " # "}}, FunctionMetadataV4{Name:"increase_validator_count", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"additional", Type:"Compact"}}, Documentation:[]Text{" Increments the ideal number of validators.", "", " The dispatch origin must be Root.", "", " # ", " Same as [`set_validator_count`].", " # "}}, FunctionMetadataV4{Name:"scale_validator_count", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"factor", Type:"Percent"}}, Documentation:[]Text{" Scale up the ideal number of validators by a factor.", "", " The dispatch origin must be Root.", "", " # ", " Same as [`set_validator_count`].", " # "}}, FunctionMetadataV4{Name:"force_no_eras", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Force there to be no new eras indefinitely.", "", " The dispatch origin must be Root.", "", " # ", " - No arguments.", " - Weight: O(1)", " - Write: ForceEra", " # "}}, FunctionMetadataV4{Name:"force_new_era", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " The dispatch origin must be Root.", "", " # ", " - No arguments.", " - Weight: O(1)", " - Write ForceEra", " # "}}, FunctionMetadataV4{Name:"set_invulnerables", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"invulnerables", Type:"Vec"}}, Documentation:[]Text{" Set the validators who cannot be slashed (if any).", "", " The dispatch origin must be Root.", "", " # ", " - O(V)", " - Write: Invulnerables", " # "}}, FunctionMetadataV4{Name:"force_unstake", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"stash", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"num_slashing_spans", Type:"u32"}}, Documentation:[]Text{" Force a current staker to become completely unstaked, immediately.", "", " The dispatch origin must be Root.", "", " # ", " O(S) where S is the number of slashing spans to be removed", " Reads: Bonded, Slashing Spans, Account, Locks", " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks", " Writes Each: SpanSlash * S", " # "}}, FunctionMetadataV4{Name:"force_new_era_always", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Force there to be a new era at the end of sessions indefinitely.", "", " The dispatch origin must be Root.", "", " # ", " - Weight: O(1)", " - Write: ForceEra", " # "}}, FunctionMetadataV4{Name:"cancel_deferred_slash", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"era", Type:"EraIndex"}, FunctionArgumentMetadata{Name:"slash_indices", Type:"Vec"}}, Documentation:[]Text{" Cancel enactment of a deferred slash.", "", " Can be called by the `T::SlashCancelOrigin`.", "", " Parameters: era and indices of the slashes for that era to kill.", "", " # ", " Complexity: O(U + S)", " with U unapplied slashes weighted with U=1000", " and S is the number of slash indices to be canceled.", " - Read: Unapplied Slashes", " - Write: Unapplied Slashes", " # "}}, FunctionMetadataV4{Name:"payout_stakers", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"validator_stash", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"era", Type:"EraIndex"}}, Documentation:[]Text{" Pay out all the stakers behind a single validator for a single era.", "", " - `validator_stash` is the stash account of the validator. Their nominators, up to", " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", " - `era` may be any era between `[current_era - history_depth; current_era]`.", "", " The origin of this call must be _Signed_. Any account can call this function, even if", " it is not one of the stakers.", "", " This can only be called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", " - Contains a limited number of reads and writes.", " -----------", " N is the Number of payouts for the validator (including the validator)", " Weight:", " - Reward Destination Staked: O(N)", " - Reward Destination Controller (Creating): O(N)", " DB Weight:", " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,", " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)", " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)", " - Write Each: System Account, Locks, Ledger (3 items)", "", " NOTE: weights are assuming that payouts are made to alive stash account (Staked).", " Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.", " # "}}, FunctionMetadataV4{Name:"rebond", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"value", Type:"Compact>"}}, Documentation:[]Text{" Rebond a portion of the stash scheduled to be unlocked.", "", " The dispatch origin must be signed by the controller, and it can be only called when", " [`EraElectionStatus`] is `Closed`.", "", " # ", " - Time complexity: O(L), where L is unlocking chunks", " - Bounded by `MAX_UNLOCKING_CHUNKS`.", " - Storage changes: Can't increase storage, only decrease it.", " ---------------", " - DB Weight:", " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]", " - Writes: [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name:"set_history_depth", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new_history_depth", Type:"Compact"}, FunctionArgumentMetadata{Name:"_era_items_deleted", Type:"Compact"}}, Documentation:[]Text{" Set `HistoryDepth` value. This function will delete any history information", " when `HistoryDepth` is reduced.", "", " Parameters:", " - `new_history_depth`: The new history depth you would like to set.", " - `era_items_deleted`: The number of items that will be deleted by this dispatch.", " This should report all the storage items that will be deleted by clearing old", " era history. Needed to report an accurate weight for the dispatch. Trusted by", " `Root` to report an accurate number.", "", " Origin must be root.", "", " # ", " - E: Number of history depths removed, i.e. 10 -> 7 = 3", " - Weight: O(E)", " - DB Weight:", " - Reads: Current Era, History Depth", " - Writes: History Depth", " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex", " # "}}, FunctionMetadataV4{Name:"reap_stash", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"stash", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"num_slashing_spans", Type:"u32"}}, Documentation:[]Text{" Remove all data structure concerning a staker/stash once its balance is at the minimum.", " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", " and the target `stash` must have no funds left beyond the ED.", "", " This can be called from any origin.", "", " - `stash`: The stash account to reap. Its balance must be zero.", "", " # ", " Complexity: O(S) where S is the number of slashing spans on the account.", " DB Weight:", " - Reads: Stash Account, Bonded, Slashing Spans, Locks", " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks", " - Writes Each: SpanSlash * S", " # "}}, FunctionMetadataV4{Name:"kick", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"Vec<::Source>"}}, Documentation:[]Text{" Remove the given nominations from the calling validator.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`. The controller", " account should represent a validator.", "", " - `who`: A list of nominator stash accounts who are nominating this validator which", " should no longer be nominating this validator.", "", " Note: Making this call only makes sense if you first set the validator preferences to", " block any further nominations."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"EraPayout", Args:[]Type{"EraIndex", "Balance", "Balance"}, Documentation:[]Text{" The era payout has been set; the first balance is the validator-payout; the second is", " the remainder from the maximum amount of reward.", " \\[era_index, validator_payout, remainder\\]"}}, EventMetadataV4{Name:"Reward", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" The staker has been rewarded by this amount. \\[stash, amount\\]"}}, EventMetadataV4{Name:"Slash", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" One validator (and its nominators) has been slashed by the given amount.", " \\[validator, amount\\]"}}, EventMetadataV4{Name:"OldSlashingReportDiscarded", Args:[]Type{"SessionIndex"}, Documentation:[]Text{" An old slashing report from a prior era was discarded because it could", " not be processed. \\[session_index\\]"}}, EventMetadataV4{Name:"StakingElection", Args:[]Type(nil), Documentation:[]Text{" A new set of stakers was elected."}}, EventMetadataV4{Name:"Bonded", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" An account has bonded this amount. \\[stash, amount\\]", "", " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", " it will not be emitted for staking rewards when they are added to stake."}}, EventMetadataV4{Name:"Unbonded", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" An account has unbonded this amount. \\[stash, amount\\]"}}, EventMetadataV4{Name:"Withdrawn", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", " from the unlocking queue. \\[stash, amount\\]"}}, EventMetadataV4{Name:"Kicked", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" A nominator has been kicked from a validator. \\[nominator, stash\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"SessionsPerEra", Type:"SessionIndex", Value:Bytes{0x6, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of sessions per era."}}, ModuleConstantMetadataV6{Name:"BondingDuration", Type:"EraIndex", Value:Bytes{0xa0, 0x2, 0x0, 0x0}, Documentation:[]Text{" Number of eras that staked funds must remain bonded for."}}, ModuleConstantMetadataV6{Name:"SlashDeferDuration", Type:"EraIndex", Value:Bytes{0xa8, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of eras that slashes are deferred by, after computation.", "", " This should be less than the bonding duration.", " Set to 0 if slashes should be applied immediately, without opportunity for", " intervention."}}, ModuleConstantMetadataV6{Name:"MaxNominatorRewardedPerValidator", Type:"u32", Value:Bytes{0x0, 0x1, 0x0, 0x0}, Documentation:[]Text{" The maximum number of nominators rewarded for each validator.", "", " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim", " their reward. This used to limit the i/o cost for the nominator payout."}}, ModuleConstantMetadataV6{Name:"MaxNominations", Type:"u32", Value:Bytes{0x10, 0x0, 0x0, 0x0}, Documentation:[]Text{" Maximum number of nominations per nominator."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotController", Documentation:[]Text{" Not a controller account."}}, ErrorMetadataV8{Name:"NotStash", Documentation:[]Text{" Not a stash account."}}, ErrorMetadataV8{Name:"AlreadyBonded", Documentation:[]Text{" Stash is already bonded."}}, ErrorMetadataV8{Name:"AlreadyPaired", Documentation:[]Text{" Controller is already paired."}}, ErrorMetadataV8{Name:"EmptyTargets", Documentation:[]Text{" Targets cannot be empty."}}, ErrorMetadataV8{Name:"DuplicateIndex", Documentation:[]Text{" Duplicate index."}}, ErrorMetadataV8{Name:"InvalidSlashIndex", Documentation:[]Text{" Slash record index out of bounds."}}, ErrorMetadataV8{Name:"InsufficientValue", Documentation:[]Text{" Can not bond with value less than minimum balance."}}, ErrorMetadataV8{Name:"NoMoreChunks", Documentation:[]Text{" Can not schedule more unlock chunks."}}, ErrorMetadataV8{Name:"NoUnlockChunk", Documentation:[]Text{" Can not rebond without unlocking chunks."}}, ErrorMetadataV8{Name:"FundedTarget", Documentation:[]Text{" Attempting to target a stash that still has funds."}}, ErrorMetadataV8{Name:"InvalidEraToReward", Documentation:[]Text{" Invalid era to reward."}}, ErrorMetadataV8{Name:"InvalidNumberOfNominations", Documentation:[]Text{" Invalid number of nominations."}}, ErrorMetadataV8{Name:"NotSortedAndUnique", Documentation:[]Text{" Items are not sorted and unique."}}, ErrorMetadataV8{Name:"AlreadyClaimed", Documentation:[]Text{" Rewards for this era have already been claimed for this validator."}}, ErrorMetadataV8{Name:"IncorrectHistoryDepth", Documentation:[]Text{" Incorrect previous history depth input provided."}}, ErrorMetadataV8{Name:"IncorrectSlashingSpans", Documentation:[]Text{" Incorrect number of slashing spans provided."}}, ErrorMetadataV8{Name:"BadState", Documentation:[]Text{" Internal state has become somehow corrupted and the operation cannot continue."}}, ErrorMetadataV8{Name:"TooManyTargets", Documentation:[]Text{" Too many nomination targets supplied."}}, ErrorMetadataV8{Name:"BadTarget", Documentation:[]Text{" A nomination target was supplied that was blocked or otherwise not a validator."}}}, Index:0x9}, ModuleMetadataV13{Name:"Session", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Session", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Validators", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current set of validators."}}, StorageFunctionMetadataV13{Name:"CurrentIndex", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"SessionIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Current index of the session."}}, StorageFunctionMetadataV13{Name:"QueuedChanged", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, StorageFunctionMetadataV13{Name:"QueuedKeys", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(T::ValidatorId, T::Keys)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, StorageFunctionMetadataV13{Name:"DisabledValidators", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, StorageFunctionMetadataV13{Name:"NextKeys", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::ValidatorId", Value:"T::Keys", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The next session keys for a validator."}}, StorageFunctionMetadataV13{Name:"KeyOwner", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"(KeyTypeId, Vec)", Value:"T::ValidatorId", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The owner of a key. The key is the `KeyTypeId` + the encoded key."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"set_keys", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"keys", Type:"T::Keys"}, FunctionArgumentMetadata{Name:"proof", Type:"Vec"}}, Documentation:[]Text{" Sets the session key(s) of the function caller to `keys`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - Complexity: `O(1)`", " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", " - DbWrites: `origin account`, `NextKeys`", " - DbReads per key id: `KeyOwner`", " - DbWrites per key id: `KeyOwner`", " # "}}, FunctionMetadataV4{Name:"purge_keys", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Removes any session key(s) of the function caller.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - Complexity: `O(1)` in number of key ", " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", " - DbWrites: `NextKeys`, `origin account`", " - DbWrites per key id: `KeyOwnder`", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"NewSession", Args:[]Type{"SessionIndex"}, Documentation:[]Text{" New session has happened. Note that the argument is the \\[session_index\\], not the block", " number as the type might suggest."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InvalidProof", Documentation:[]Text{" Invalid ownership proof."}}, ErrorMetadataV8{Name:"NoAssociatedValidatorId", Documentation:[]Text{" No associated validator ID for account."}}, ErrorMetadataV8{Name:"DuplicatedKey", Documentation:[]Text{" Registered duplicate key."}}, ErrorMetadataV8{Name:"NoKeys", Documentation:[]Text{" No keys are associated with this account."}}, ErrorMetadataV8{Name:"NoAccount", Documentation:[]Text{" Key setting account is not live, so it's impossible to associate keys."}}}, Index:0xa}, ModuleMetadataV13{Name:"Democracy", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Democracy", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"PublicPropCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"PropIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The number of (public) proposals that have been made so far."}}, StorageFunctionMetadataV13{Name:"PublicProps", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(PropIndex, T::Hash, T::AccountId)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The public proposals. Unsorted. The second item is the proposal's hash."}}, StorageFunctionMetadataV13{Name:"DepositOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"PropIndex", Value:"(Vec, BalanceOf)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Those who have locked a deposit.", "", " TWOX-NOTE: Safe, as increasing integer keys are safe."}}, StorageFunctionMetadataV13{Name:"Preimages", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:"PreimageStatus, T::BlockNumber>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Map of hashes to the proposal preimage, along with who registered it and their deposit.", " The block number is the block at which it was deposited."}}, StorageFunctionMetadataV13{Name:"ReferendumCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ReferendumIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The next free referendum index, aka the number of referenda started so far."}}, StorageFunctionMetadataV13{Name:"LowestUnbaked", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ReferendumIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The lowest referendum index representing an unbaked referendum. Equal to", " `ReferendumCount` if there isn't a unbaked referendum."}}, StorageFunctionMetadataV13{Name:"ReferendumInfoOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"ReferendumIndex", Value:"ReferendumInfo>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Information concerning any given referendum.", "", " TWOX-NOTE: SAFE as indexes are not under an attacker’s control."}}, StorageFunctionMetadataV13{Name:"VotingOf", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"Voting, T::AccountId, T::BlockNumber>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" All votes for a particular voter. We store the balance for the number of votes that we", " have recorded. The second item is the total amount of delegations, that will be added.", "", " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."}}, StorageFunctionMetadataV13{Name:"Locks", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"T::BlockNumber", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Accounts for which there are locks in action which may be removed at some point in the", " future. The value is the block number at which the lock expires and may be removed.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name:"LastTabledWasExternal", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, StorageFunctionMetadataV13{Name:"NextExternal", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"(T::Hash, VoteThreshold)", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, StorageFunctionMetadataV13{Name:"Blacklist", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:"(T::BlockNumber, Vec)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, StorageFunctionMetadataV13{Name:"Cancellations", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:"bool", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Record of all proposals that have been subject to emergency cancellation."}}, StorageFunctionMetadataV13{Name:"StorageVersion", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Releases", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Storage version of the pallet.", "", " New networks start with last version."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"propose", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"value", Type:"Compact>"}}, Documentation:[]Text{" Propose a sensitive action to be taken.", "", " The dispatch origin of this call must be _Signed_ and the sender must", " have funds to cover the deposit.", "", " - `proposal_hash`: The hash of the proposal preimage.", " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", "", " Emits `Proposed`.", "", " Weight: `O(p)`"}}, FunctionMetadataV4{Name:"second", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal", Type:"Compact"}, FunctionArgumentMetadata{Name:"seconds_upper_bound", Type:"Compact"}}, Documentation:[]Text{" Signals agreement with a particular proposal.", "", " The dispatch origin of this call must be _Signed_ and the sender", " must have funds to cover the deposit, equal to the original deposit.", "", " - `proposal`: The index of the proposal to second.", " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", " proposal. Extrinsic is weighted according to this value with no refund.", "", " Weight: `O(S)` where S is the number of seconds a proposal already has."}}, FunctionMetadataV4{Name:"vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"ref_index", Type:"Compact"}, FunctionArgumentMetadata{Name:"vote", Type:"AccountVote>"}}, Documentation:[]Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " The dispatch origin of this call must be _Signed_.", "", " - `ref_index`: The index of the referendum to vote for.", " - `vote`: The vote configuration.", "", " Weight: `O(R)` where R is the number of referendums the voter has voted on."}}, FunctionMetadataV4{Name:"emergency_cancel", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"ref_index", Type:"ReferendumIndex"}}, Documentation:[]Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum.", "", " The dispatch origin of this call must be `CancellationOrigin`.", "", " -`ref_index`: The index of the referendum to cancel.", "", " Weight: `O(1)`."}}, FunctionMetadataV4{Name:"external_propose", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}}, Documentation:[]Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum.", "", " The dispatch origin of this call must be `ExternalOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.", " Decoding vec of length V. Charged as maximum"}}, FunctionMetadataV4{Name:"external_propose_majority", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}}, Documentation:[]Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " The dispatch of this call must be `ExternalMajorityOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"external_propose_default", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}}, Documentation:[]Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " The dispatch of this call must be `ExternalDefaultOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"fast_track", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"voting_period", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"delay", Type:"T::BlockNumber"}}, Documentation:[]Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " The dispatch of this call must be `FastTrackOrigin`.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", " `FastTrackVotingPeriod` if too low.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. This doesn't have a minimum amount.", "", " Emits `Started`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"veto_external", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}}, Documentation:[]Text{" Veto and blacklist the external proposal hash.", "", " The dispatch origin of this call must be `VetoOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", "", " Emits `Vetoed`.", "", " Weight: `O(V + log(V))` where V is number of `existing vetoers`"}}, FunctionMetadataV4{Name:"cancel_referendum", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"ref_index", Type:"Compact"}}, Documentation:[]Text{" Remove a referendum.", "", " The dispatch origin of this call must be _Root_.", "", " - `ref_index`: The index of the referendum to cancel.", "", " # Weight: `O(1)`."}}, FunctionMetadataV4{Name:"cancel_queued", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"which", Type:"ReferendumIndex"}}, Documentation:[]Text{" Cancel a proposal queued for enactment.", "", " The dispatch origin of this call must be _Root_.", "", " - `which`: The index of the referendum to cancel.", "", " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`."}}, FunctionMetadataV4{Name:"delegate", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"to", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"conviction", Type:"Conviction"}, FunctionArgumentMetadata{Name:"balance", Type:"BalanceOf"}}, Documentation:[]Text{" Delegate the voting power (with some given conviction) of the sending account.", "", " The balance delegated is locked for as long as it's delegated, and thereafter for the", " time appropriate for the conviction's lock period.", "", " The dispatch origin of this call must be _Signed_, and the signing account must either:", " - be delegating already; or", " - have no voting activity (if there is, then it will need to be removed/consolidated", " through `reap_vote` or `unvote`).", "", " - `to`: The account whose voting the `target` account's voting power will follow.", " - `conviction`: The conviction that will be attached to the delegated votes. When the", " account is undelegated, the funds will be locked for the corresponding period.", " - `balance`: The amount of the account's balance to be used in delegating. This must", " not be more than the account's current balance.", "", " Emits `Delegated`.", "", " Weight: `O(R)` where R is the number of referendums the voter delegating to has", " voted on. Weight is charged as if maximum votes."}}, FunctionMetadataV4{Name:"undelegate", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Undelegate the voting power of the sending account.", "", " Tokens may be unlocked following once an amount of time consistent with the lock period", " of the conviction with which the delegation was issued.", "", " The dispatch origin of this call must be _Signed_ and the signing account must be", " currently delegating.", "", " Emits `Undelegated`.", "", " Weight: `O(R)` where R is the number of referendums the voter delegating to has", " voted on. Weight is charged as if maximum votes."}}, FunctionMetadataV4{Name:"clear_public_proposals", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Clears all public proposals.", "", " The dispatch origin of this call must be _Root_.", "", " Weight: `O(1)`."}}, FunctionMetadataV4{Name:"note_preimage", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"encoded_proposal", Type:"Vec"}}, Documentation:[]Text{" Register the preimage for an upcoming proposal. This doesn't require the proposal to be", " in the dispatch queue but does require a deposit, returned once enacted.", "", " The dispatch origin of this call must be _Signed_.", "", " - `encoded_proposal`: The preimage of a proposal.", "", " Emits `PreimageNoted`.", "", " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."}}, FunctionMetadataV4{Name:"note_preimage_operational", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"encoded_proposal", Type:"Vec"}}, Documentation:[]Text{" Same as `note_preimage` but origin is `OperationalPreimageOrigin`."}}, FunctionMetadataV4{Name:"note_imminent_preimage", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"encoded_proposal", Type:"Vec"}}, Documentation:[]Text{" Register the preimage for an upcoming proposal. This requires the proposal to be", " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", " the preimage has not been uploaded before and matches some imminent proposal,", " no fee is paid.", "", " The dispatch origin of this call must be _Signed_.", "", " - `encoded_proposal`: The preimage of a proposal.", "", " Emits `PreimageNoted`.", "", " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."}}, FunctionMetadataV4{Name:"note_imminent_preimage_operational", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"encoded_proposal", Type:"Vec"}}, Documentation:[]Text{" Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."}}, FunctionMetadataV4{Name:"reap_preimage", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"proposal_len_upper_bound", Type:"Compact"}}, Documentation:[]Text{" Remove an expired proposal preimage and collect the deposit.", "", " The dispatch origin of this call must be _Signed_.", "", " - `proposal_hash`: The preimage hash of a proposal.", " - `proposal_length_upper_bound`: an upper bound on length of the proposal.", " Extrinsic is weighted according to this value with no refund.", "", " This will only work after `VotingPeriod` blocks from the time that the preimage was", " noted, if it's the same account doing it. If it's a different account, then it'll only", " work an additional `EnactmentPeriod` later.", "", " Emits `PreimageReaped`.", "", " Weight: `O(D)` where D is length of proposal."}}, FunctionMetadataV4{Name:"unlock", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"target", Type:"T::AccountId"}}, Documentation:[]Text{" Unlock tokens that have an expired lock.", "", " The dispatch origin of this call must be _Signed_.", "", " - `target`: The account to remove the lock on.", "", " Weight: `O(R)` with R number of vote of target."}}, FunctionMetadataV4{Name:"remove_vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"ReferendumIndex"}}, Documentation:[]Text{" Remove a vote for a referendum.", "", " If:", " - the referendum was cancelled, or", " - the referendum is ongoing, or", " - the referendum has ended such that", " - the vote of the account was in opposition to the result; or", " - there was no conviction to the account's vote; or", " - the account made a split vote", " ...then the vote is removed cleanly and a following call to `unlock` may result in more", " funds being available.", "", " If, however, the referendum has ended and:", " - it finished corresponding to the vote of the account, and", " - the account made a standard vote with conviction, and", " - the lock period of the conviction is not over", " ...then the lock will be aggregated into the overall account's lock, which may involve", " *overlocking* (where the two locks are combined into a single lock that is the maximum", " of both the amount locked and the time is it locked for).", "", " The dispatch origin of this call must be _Signed_, and the signer must have a vote", " registered for referendum `index`.", "", " - `index`: The index of referendum of the vote to be removed.", "", " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", " Weight is calculated for the maximum number of vote."}}, FunctionMetadataV4{Name:"remove_other_vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"target", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"index", Type:"ReferendumIndex"}}, Documentation:[]Text{" Remove a vote for a referendum.", "", " If the `target` is equal to the signer, then this function is exactly equivalent to", " `remove_vote`. If not equal to the signer, then the vote must have expired,", " either because the referendum was cancelled, because the voter lost the referendum or", " because the conviction period is over.", "", " The dispatch origin of this call must be _Signed_.", "", " - `target`: The account of the vote to be removed; this account must have voted for", " referendum `index`.", " - `index`: The index of referendum of the vote to be removed.", "", " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", " Weight is calculated for the maximum number of vote."}}, FunctionMetadataV4{Name:"enact_proposal", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"index", Type:"ReferendumIndex"}}, Documentation:[]Text{" Enact a proposal from a referendum. For now we just make the weight be the maximum."}}, FunctionMetadataV4{Name:"blacklist", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"maybe_ref_index", Type:"Option"}}, Documentation:[]Text{" Permanently place a proposal into the blacklist. This prevents it from ever being", " proposed again.", "", " If called on a queued public or external proposal, then this will result in it being", " removed. If the `ref_index` supplied is an active referendum with the proposal hash,", " then it will be cancelled.", "", " The dispatch origin of this call must be `BlacklistOrigin`.", "", " - `proposal_hash`: The proposal hash to blacklist permanently.", " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", " cancelled.", "", " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", " reasonable value)."}}, FunctionMetadataV4{Name:"cancel_proposal", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"prop_index", Type:"Compact"}}, Documentation:[]Text{" Remove a proposal.", "", " The dispatch origin of this call must be `CancelProposalOrigin`.", "", " - `prop_index`: The index of the proposal to cancel.", "", " Weight: `O(p)` where `p = PublicProps::::decode_len()`"}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Proposed", Args:[]Type{"PropIndex", "Balance"}, Documentation:[]Text{" A motion has been proposed by a public account. \\[proposal_index, deposit\\]"}}, EventMetadataV4{Name:"Tabled", Args:[]Type{"PropIndex", "Balance", "Vec"}, Documentation:[]Text{" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"}}, EventMetadataV4{Name:"ExternalTabled", Args:[]Type(nil), Documentation:[]Text{" An external proposal has been tabled."}}, EventMetadataV4{Name:"Started", Args:[]Type{"ReferendumIndex", "VoteThreshold"}, Documentation:[]Text{" A referendum has begun. \\[ref_index, threshold\\]"}}, EventMetadataV4{Name:"Passed", Args:[]Type{"ReferendumIndex"}, Documentation:[]Text{" A proposal has been approved by referendum. \\[ref_index\\]"}}, EventMetadataV4{Name:"NotPassed", Args:[]Type{"ReferendumIndex"}, Documentation:[]Text{" A proposal has been rejected by referendum. \\[ref_index\\]"}}, EventMetadataV4{Name:"Cancelled", Args:[]Type{"ReferendumIndex"}, Documentation:[]Text{" A referendum has been cancelled. \\[ref_index\\]"}}, EventMetadataV4{Name:"Executed", Args:[]Type{"ReferendumIndex", "bool"}, Documentation:[]Text{" A proposal has been enacted. \\[ref_index, is_ok\\]"}}, EventMetadataV4{Name:"Delegated", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" An account has delegated their vote to another account. \\[who, target\\]"}}, EventMetadataV4{Name:"Undelegated", Args:[]Type{"AccountId"}, Documentation:[]Text{" An \\[account\\] has cancelled a previous delegation operation."}}, EventMetadataV4{Name:"Vetoed", Args:[]Type{"AccountId", "Hash", "BlockNumber"}, Documentation:[]Text{" An external proposal has been vetoed. \\[who, proposal_hash, until\\]"}}, EventMetadataV4{Name:"PreimageNoted", Args:[]Type{"Hash", "AccountId", "Balance"}, Documentation:[]Text{" A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]"}}, EventMetadataV4{Name:"PreimageUsed", Args:[]Type{"Hash", "AccountId", "Balance"}, Documentation:[]Text{" A proposal preimage was removed and used (the deposit was returned).", " \\[proposal_hash, provider, deposit\\]"}}, EventMetadataV4{Name:"PreimageInvalid", Args:[]Type{"Hash", "ReferendumIndex"}, Documentation:[]Text{" A proposal could not be executed because its preimage was invalid.", " \\[proposal_hash, ref_index\\]"}}, EventMetadataV4{Name:"PreimageMissing", Args:[]Type{"Hash", "ReferendumIndex"}, Documentation:[]Text{" A proposal could not be executed because its preimage was missing.", " \\[proposal_hash, ref_index\\]"}}, EventMetadataV4{Name:"PreimageReaped", Args:[]Type{"Hash", "AccountId", "Balance", "AccountId"}, Documentation:[]Text{" A registered preimage was removed and the deposit collected by the reaper.", " \\[proposal_hash, provider, deposit, reaper\\]"}}, EventMetadataV4{Name:"Unlocked", Args:[]Type{"AccountId"}, Documentation:[]Text{" An \\[account\\] has been unlocked successfully."}}, EventMetadataV4{Name:"Blacklisted", Args:[]Type{"Hash"}, Documentation:[]Text{" A proposal \\[hash\\] has been blacklisted permanently."}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"EnactmentPeriod", Type:"T::BlockNumber", Value:Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation:[]Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, ModuleConstantMetadataV6{Name:"LaunchPeriod", Type:"T::BlockNumber", Value:Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation:[]Text{" How often (in blocks) new public referenda are launched."}}, ModuleConstantMetadataV6{Name:"VotingPeriod", Type:"T::BlockNumber", Value:Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation:[]Text{" How often (in blocks) to check for new votes."}}, ModuleConstantMetadataV6{Name:"MinimumDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, ModuleConstantMetadataV6{Name:"FastTrackVotingPeriod", Type:"T::BlockNumber", Value:Bytes{0x80, 0x51, 0x1, 0x0}, Documentation:[]Text{" Minimum voting period allowed for a fast-track referendum."}}, ModuleConstantMetadataV6{Name:"CooloffPeriod", Type:"T::BlockNumber", Value:Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation:[]Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}, ModuleConstantMetadataV6{Name:"PreimageByteDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of balance that must be deposited per byte of preimage stored."}}, ModuleConstantMetadataV6{Name:"MaxVotes", Type:"u32", Value:Bytes{0x64, 0x0, 0x0, 0x0}, Documentation:[]Text{" The maximum number of votes for an account.", "", " Also used to compute weight, an overly big value can", " lead to extrinsic with very big weight: see `delegate` for instance."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"ValueLow", Documentation:[]Text{" Value too low"}}, ErrorMetadataV8{Name:"ProposalMissing", Documentation:[]Text{" Proposal does not exist"}}, ErrorMetadataV8{Name:"BadIndex", Documentation:[]Text{" Unknown index"}}, ErrorMetadataV8{Name:"AlreadyCanceled", Documentation:[]Text{" Cannot cancel the same proposal twice"}}, ErrorMetadataV8{Name:"DuplicateProposal", Documentation:[]Text{" Proposal already made"}}, ErrorMetadataV8{Name:"ProposalBlacklisted", Documentation:[]Text{" Proposal still blacklisted"}}, ErrorMetadataV8{Name:"NotSimpleMajority", Documentation:[]Text{" Next external proposal not simple majority"}}, ErrorMetadataV8{Name:"InvalidHash", Documentation:[]Text{" Invalid hash"}}, ErrorMetadataV8{Name:"NoProposal", Documentation:[]Text{" No external proposal"}}, ErrorMetadataV8{Name:"AlreadyVetoed", Documentation:[]Text{" Identity may not veto a proposal twice"}}, ErrorMetadataV8{Name:"NotDelegated", Documentation:[]Text{" Not delegated"}}, ErrorMetadataV8{Name:"DuplicatePreimage", Documentation:[]Text{" Preimage already noted"}}, ErrorMetadataV8{Name:"NotImminent", Documentation:[]Text{" Not imminent"}}, ErrorMetadataV8{Name:"TooEarly", Documentation:[]Text{" Too early"}}, ErrorMetadataV8{Name:"Imminent", Documentation:[]Text{" Imminent"}}, ErrorMetadataV8{Name:"PreimageMissing", Documentation:[]Text{" Preimage not found"}}, ErrorMetadataV8{Name:"ReferendumInvalid", Documentation:[]Text{" Vote given for invalid referendum"}}, ErrorMetadataV8{Name:"PreimageInvalid", Documentation:[]Text{" Invalid preimage"}}, ErrorMetadataV8{Name:"NoneWaiting", Documentation:[]Text{" No proposals waiting"}}, ErrorMetadataV8{Name:"NotLocked", Documentation:[]Text{" The target account does not have a lock."}}, ErrorMetadataV8{Name:"NotExpired", Documentation:[]Text{" The lock on the account to be unlocked has not yet expired."}}, ErrorMetadataV8{Name:"NotVoter", Documentation:[]Text{" The given account did not vote on the referendum."}}, ErrorMetadataV8{Name:"NoPermission", Documentation:[]Text{" The actor has no permission to conduct the action."}}, ErrorMetadataV8{Name:"AlreadyDelegating", Documentation:[]Text{" The account is already delegating."}}, ErrorMetadataV8{Name:"InsufficientFunds", Documentation:[]Text{" Too high a balance was provided that the account cannot afford."}}, ErrorMetadataV8{Name:"NotDelegating", Documentation:[]Text{" The account is not currently delegating."}}, ErrorMetadataV8{Name:"VotesExist", Documentation:[]Text{" The account currently has votes attached to it and the operation cannot succeed until", " these are removed, either through `unvote` or `reap_vote`."}}, ErrorMetadataV8{Name:"InstantNotAllowed", Documentation:[]Text{" The instant referendum origin is currently disallowed."}}, ErrorMetadataV8{Name:"Nonsense", Documentation:[]Text{" Delegation to oneself makes no sense."}}, ErrorMetadataV8{Name:"WrongUpperBound", Documentation:[]Text{" Invalid upper bound."}}, ErrorMetadataV8{Name:"MaxVotesReached", Documentation:[]Text{" Maximum number of votes reached."}}, ErrorMetadataV8{Name:"InvalidWitness", Documentation:[]Text{" The provided witness data is wrong."}}, ErrorMetadataV8{Name:"TooManyProposals", Documentation:[]Text{" Maximum number of proposals reached."}}}, Index:0xb}, ModuleMetadataV13{Name:"Council", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Instance1Collective", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Proposals", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BoundedVec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV13{Name:"ProposalOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:">::Proposal", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV13{Name:"Voting", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:"Votes", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV13{Name:"ProposalCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Proposals so far."}}, StorageFunctionMetadataV13{Name:"Members", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current members of the collective. This is stored sorted (just by value)."}}, StorageFunctionMetadataV13{Name:"Prime", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The prime member that helps determine the default vote behavior in case of absentations."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"set_members", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new_members", Type:"Vec"}, FunctionArgumentMetadata{Name:"prime", Type:"Option"}, FunctionArgumentMetadata{Name:"old_count", Type:"MemberCount"}}, Documentation:[]Text{" Set the collective's membership.", "", " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", " - `prime`: The prime member whose vote sets the default.", " - `old_count`: The upper bound for the previous number of members in storage.", " Used for weight estimation.", "", " Requires root origin.", "", " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", " the weight estimations rely on it to estimate dispatchable weight.", "", " # ", " ## Weight", " - `O(MP + N)` where:", " - `M` old-members-count (code- and governance-bounded)", " - `N` new-members-count (code- and governance-bounded)", " - `P` proposals-count (code-bounded)", " - DB:", " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", " - 1 storage read (codec `O(P)`) for reading the proposals", " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", " # "}}, FunctionMetadataV4{Name:"execute", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal", Type:"Box<>::Proposal>"}, FunctionArgumentMetadata{Name:"length_bound", Type:"Compact"}}, Documentation:[]Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective.", "", " # ", " ## Weight", " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", " - 1 event", " # "}}, FunctionMetadataV4{Name:"propose", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"threshold", Type:"Compact"}, FunctionArgumentMetadata{Name:"proposal", Type:"Box<>::Proposal>"}, FunctionArgumentMetadata{Name:"length_bound", Type:"Compact"}}, Documentation:[]Text{" Add a new proposal to either be voted on or executed directly.", "", " Requires the sender to be member.", "", " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", " or put up for voting.", "", " # ", " ## Weight", " - `O(B + M + P1)` or `O(B + M + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - branching is influenced by `threshold` where:", " - `P1` is proposal execution complexity (`threshold < 2`)", " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", " - DB:", " - 1 storage read `is_member` (codec `O(M)`)", " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", " - DB accesses influenced by `threshold`:", " - EITHER storage accesses done by `proposal` (`threshold < 2`)", " - OR proposal insertion (`threshold <= 2`)", " - 1 storage mutation `Proposals` (codec `O(P2)`)", " - 1 storage mutation `ProposalCount` (codec `O(1)`)", " - 1 storage write `ProposalOf` (codec `O(B)`)", " - 1 storage write `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name:"vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"approve", Type:"bool"}}, Documentation:[]Text{" Add an aye or nay vote for the sender to the given proposal.", "", " Requires the sender to be a member.", "", " Transaction fees will be waived if the member is voting on any particular proposal", " for the first time and the call is successful. Subsequent vote changes will charge a fee.", " # ", " ## Weight", " - `O(M)` where `M` is members-count (code- and governance-bounded)", " - DB:", " - 1 storage read `Members` (codec `O(M)`)", " - 1 storage mutation `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name:"close", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"proposal_weight_bound", Type:"Compact"}, FunctionArgumentMetadata{Name:"length_bound", Type:"Compact"}}, Documentation:[]Text{" Close a vote that is either approved, disapproved or whose voting period has ended.", "", " May be called by any signed account in order to finish voting and close the proposal.", "", " If called before the end of the voting period it will only close the vote if it is", " has enough votes to be approved or disapproved.", "", " If called after the end of the voting period abstentions are counted as rejections", " unless there is a prime member set and the prime member cast an approval.", "", " If the close operation completes successfully with disapproval, the transaction fee will", " be waived. Otherwise execution of the approved operation will be charged to the caller.", "", " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", " `storage::read` so it is `size_of::() == 4` larger than the pure length.", "", " # ", " ## Weight", " - `O(B + M + P1 + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - `P1` is the complexity of `proposal` preimage.", " - `P2` is proposal-count (code-bounded)", " - DB:", " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", " - any mutations done while executing `proposal` (`P1`)", " - up to 3 events", " # "}}, FunctionMetadataV4{Name:"disapprove_proposal", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}}, Documentation:[]Text{" Disapprove a proposal, close, and remove it from the system, regardless of its current state.", "", " Must be called by the Root origin.", "", " Parameters:", " * `proposal_hash`: The hash of the proposal that should be disapproved.", "", " # ", " Complexity: O(P) where P is the number of max proposals", " DB Weight:", " * Reads: Proposals", " * Writes: Voting, Proposals, ProposalOf", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Proposed", Args:[]Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation:[]Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`).", " \\[account, proposal_index, proposal_hash, threshold\\]"}}, EventMetadataV4{Name:"Voted", Args:[]Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation:[]Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`).", " \\[account, proposal_hash, voted, yes, no\\]"}}, EventMetadataV4{Name:"Approved", Args:[]Type{"Hash"}, Documentation:[]Text{" A motion was approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name:"Disapproved", Args:[]Type{"Hash"}, Documentation:[]Text{" A motion was not approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name:"Executed", Args:[]Type{"Hash", "DispatchResult"}, Documentation:[]Text{" A motion was executed; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name:"MemberExecuted", Args:[]Type{"Hash", "DispatchResult"}, Documentation:[]Text{" A single member did some action; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name:"Closed", Args:[]Type{"Hash", "MemberCount", "MemberCount"}, Documentation:[]Text{" A proposal was closed because its threshold was reached or after its duration was up.", " \\[proposal_hash, yes, no\\]"}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotMember", Documentation:[]Text{" Account is not a member"}}, ErrorMetadataV8{Name:"DuplicateProposal", Documentation:[]Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name:"ProposalMissing", Documentation:[]Text{" Proposal must exist"}}, ErrorMetadataV8{Name:"WrongIndex", Documentation:[]Text{" Mismatched index"}}, ErrorMetadataV8{Name:"DuplicateVote", Documentation:[]Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name:"AlreadyInitialized", Documentation:[]Text{" Members are already initialized!"}}, ErrorMetadataV8{Name:"TooEarly", Documentation:[]Text{" The close call was made too early, before the end of the voting."}}, ErrorMetadataV8{Name:"TooManyProposals", Documentation:[]Text{" There can only be a maximum of `MaxProposals` active proposals."}}, ErrorMetadataV8{Name:"WrongProposalWeight", Documentation:[]Text{" The given weight bound for the proposal was too low."}}, ErrorMetadataV8{Name:"WrongProposalLength", Documentation:[]Text{" The given length bound for the proposal was too low."}}}, Index:0xc}, ModuleMetadataV13{Name:"TechnicalCommittee", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Instance2Collective", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Proposals", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BoundedVec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV13{Name:"ProposalOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:">::Proposal", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV13{Name:"Voting", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:"Votes", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV13{Name:"ProposalCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Proposals so far."}}, StorageFunctionMetadataV13{Name:"Members", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current members of the collective. This is stored sorted (just by value)."}}, StorageFunctionMetadataV13{Name:"Prime", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The prime member that helps determine the default vote behavior in case of absentations."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"set_members", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new_members", Type:"Vec"}, FunctionArgumentMetadata{Name:"prime", Type:"Option"}, FunctionArgumentMetadata{Name:"old_count", Type:"MemberCount"}}, Documentation:[]Text{" Set the collective's membership.", "", " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", " - `prime`: The prime member whose vote sets the default.", " - `old_count`: The upper bound for the previous number of members in storage.", " Used for weight estimation.", "", " Requires root origin.", "", " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", " the weight estimations rely on it to estimate dispatchable weight.", "", " # ", " ## Weight", " - `O(MP + N)` where:", " - `M` old-members-count (code- and governance-bounded)", " - `N` new-members-count (code- and governance-bounded)", " - `P` proposals-count (code-bounded)", " - DB:", " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", " - 1 storage read (codec `O(P)`) for reading the proposals", " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", " # "}}, FunctionMetadataV4{Name:"execute", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal", Type:"Box<>::Proposal>"}, FunctionArgumentMetadata{Name:"length_bound", Type:"Compact"}}, Documentation:[]Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective.", "", " # ", " ## Weight", " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", " - 1 event", " # "}}, FunctionMetadataV4{Name:"propose", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"threshold", Type:"Compact"}, FunctionArgumentMetadata{Name:"proposal", Type:"Box<>::Proposal>"}, FunctionArgumentMetadata{Name:"length_bound", Type:"Compact"}}, Documentation:[]Text{" Add a new proposal to either be voted on or executed directly.", "", " Requires the sender to be member.", "", " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", " or put up for voting.", "", " # ", " ## Weight", " - `O(B + M + P1)` or `O(B + M + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - branching is influenced by `threshold` where:", " - `P1` is proposal execution complexity (`threshold < 2`)", " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", " - DB:", " - 1 storage read `is_member` (codec `O(M)`)", " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", " - DB accesses influenced by `threshold`:", " - EITHER storage accesses done by `proposal` (`threshold < 2`)", " - OR proposal insertion (`threshold <= 2`)", " - 1 storage mutation `Proposals` (codec `O(P2)`)", " - 1 storage mutation `ProposalCount` (codec `O(1)`)", " - 1 storage write `ProposalOf` (codec `O(B)`)", " - 1 storage write `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name:"vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"approve", Type:"bool"}}, Documentation:[]Text{" Add an aye or nay vote for the sender to the given proposal.", "", " Requires the sender to be a member.", "", " Transaction fees will be waived if the member is voting on any particular proposal", " for the first time and the call is successful. Subsequent vote changes will charge a fee.", " # ", " ## Weight", " - `O(M)` where `M` is members-count (code- and governance-bounded)", " - DB:", " - 1 storage read `Members` (codec `O(M)`)", " - 1 storage mutation `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name:"close", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"proposal_weight_bound", Type:"Compact"}, FunctionArgumentMetadata{Name:"length_bound", Type:"Compact"}}, Documentation:[]Text{" Close a vote that is either approved, disapproved or whose voting period has ended.", "", " May be called by any signed account in order to finish voting and close the proposal.", "", " If called before the end of the voting period it will only close the vote if it is", " has enough votes to be approved or disapproved.", "", " If called after the end of the voting period abstentions are counted as rejections", " unless there is a prime member set and the prime member cast an approval.", "", " If the close operation completes successfully with disapproval, the transaction fee will", " be waived. Otherwise execution of the approved operation will be charged to the caller.", "", " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", " `storage::read` so it is `size_of::() == 4` larger than the pure length.", "", " # ", " ## Weight", " - `O(B + M + P1 + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - `P1` is the complexity of `proposal` preimage.", " - `P2` is proposal-count (code-bounded)", " - DB:", " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", " - any mutations done while executing `proposal` (`P1`)", " - up to 3 events", " # "}}, FunctionMetadataV4{Name:"disapprove_proposal", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_hash", Type:"T::Hash"}}, Documentation:[]Text{" Disapprove a proposal, close, and remove it from the system, regardless of its current state.", "", " Must be called by the Root origin.", "", " Parameters:", " * `proposal_hash`: The hash of the proposal that should be disapproved.", "", " # ", " Complexity: O(P) where P is the number of max proposals", " DB Weight:", " * Reads: Proposals", " * Writes: Voting, Proposals, ProposalOf", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Proposed", Args:[]Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation:[]Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`).", " \\[account, proposal_index, proposal_hash, threshold\\]"}}, EventMetadataV4{Name:"Voted", Args:[]Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation:[]Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`).", " \\[account, proposal_hash, voted, yes, no\\]"}}, EventMetadataV4{Name:"Approved", Args:[]Type{"Hash"}, Documentation:[]Text{" A motion was approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name:"Disapproved", Args:[]Type{"Hash"}, Documentation:[]Text{" A motion was not approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name:"Executed", Args:[]Type{"Hash", "DispatchResult"}, Documentation:[]Text{" A motion was executed; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name:"MemberExecuted", Args:[]Type{"Hash", "DispatchResult"}, Documentation:[]Text{" A single member did some action; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name:"Closed", Args:[]Type{"Hash", "MemberCount", "MemberCount"}, Documentation:[]Text{" A proposal was closed because its threshold was reached or after its duration was up.", " \\[proposal_hash, yes, no\\]"}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotMember", Documentation:[]Text{" Account is not a member"}}, ErrorMetadataV8{Name:"DuplicateProposal", Documentation:[]Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name:"ProposalMissing", Documentation:[]Text{" Proposal must exist"}}, ErrorMetadataV8{Name:"WrongIndex", Documentation:[]Text{" Mismatched index"}}, ErrorMetadataV8{Name:"DuplicateVote", Documentation:[]Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name:"AlreadyInitialized", Documentation:[]Text{" Members are already initialized!"}}, ErrorMetadataV8{Name:"TooEarly", Documentation:[]Text{" The close call was made too early, before the end of the voting."}}, ErrorMetadataV8{Name:"TooManyProposals", Documentation:[]Text{" There can only be a maximum of `MaxProposals` active proposals."}}, ErrorMetadataV8{Name:"WrongProposalWeight", Documentation:[]Text{" The given weight bound for the proposal was too low."}}, ErrorMetadataV8{Name:"WrongProposalLength", Documentation:[]Text{" The given length bound for the proposal was too low."}}}, Index:0xd}, ModuleMetadataV13{Name:"Elections", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Elections", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Members", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec>>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current elected members.", "", " Invariant: Always sorted based on account id."}}, StorageFunctionMetadataV13{Name:"RunnersUp", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec>>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current reserved runners-up.", "", " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", " last (i.e. _best_) runner-up will be replaced."}}, StorageFunctionMetadataV13{Name:"Candidates", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(T::AccountId, BalanceOf)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The present candidate list. A current member or runner-up can never enter this vector", " and is always implicitly assumed to be a candidate.", "", " Second element is the deposit.", "", " Invariant: Always sorted based on account id."}}, StorageFunctionMetadataV13{Name:"ElectionRounds", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The total number of vote rounds that have happened, excluding the upcoming one."}}, StorageFunctionMetadataV13{Name:"Voting", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"Voter>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Votes and locked stake of a particular voter.", "", " TWOX-NOTE: SAFE as `AccountId` is a crypto hash."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"votes", Type:"Vec"}, FunctionArgumentMetadata{Name:"value", Type:"Compact>"}}, Documentation:[]Text{" Vote for a set of candidates for the upcoming round of election. This can be called to", " set the initial votes, or update already existing votes.", "", " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", " reserved. The deposit is based on the number of votes and can be updated over time.", "", " The `votes` should:", " - not be empty.", " - be less than the number of possible candidates. Note that all current members and", " runners-up are also automatically candidates for the next round.", "", " If `value` is more than `who`'s total balance, then the maximum of the two is used.", "", " The dispatch origin of this call must be signed.", "", " ### Warning", "", " It is the responsibility of the caller to **NOT** place all of their balance into the", " lock and keep some for further operations.", "", " # ", " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.", " # "}}, FunctionMetadataV4{Name:"remove_voter", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Remove `origin` as a voter.", "", " This removes the lock and returns the deposit.", "", " The dispatch origin of this call must be signed and be a voter."}}, FunctionMetadataV4{Name:"submit_candidacy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"candidate_count", Type:"Compact"}}, Documentation:[]Text{" Submit oneself for candidacy. A fixed amount of deposit is recorded.", "", " All candidates are wiped at the end of the term. They either become a member/runner-up,", " or leave the system while their deposit is slashed.", "", " The dispatch origin of this call must be signed.", "", " ### Warning", "", " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", " to get their deposit back. Losing the spot in an election will always lead to a slash.", "", " # ", " The number of current candidates must be provided as witness data.", " # "}}, FunctionMetadataV4{Name:"renounce_candidacy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"renouncing", Type:"Renouncing"}}, Documentation:[]Text{" Renounce one's intention to be a candidate for the next election round. 3 potential", " outcomes exist:", "", " - `origin` is a candidate and not elected in any set. In this case, the deposit is", " unreserved, returned and origin is removed as a candidate.", " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", " origin is removed as a runner-up.", " - `origin` is a current member. In this case, the deposit is unreserved and origin is", " removed as a member, consequently not being a candidate for the next round anymore.", " Similar to [`remove_members`], if replacement runners exists, they are immediately", " used. If the prime is renouncing, then no prime will exist until the next round.", "", " The dispatch origin of this call must be signed, and have one of the above roles.", "", " # ", " The type of renouncing must be provided as witness data.", " # "}}, FunctionMetadataV4{Name:"remove_member", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"::Source"}, FunctionArgumentMetadata{Name:"has_replacement", Type:"bool"}}, Documentation:[]Text{" Remove a particular member from the set. This is effective immediately and the bond of", " the outgoing member is slashed.", "", " If a runner-up is available, then the best runner-up will be removed and replaces the", " outgoing member. Otherwise, a new phragmen election is started.", "", " The dispatch origin of this call must be root.", "", " Note that this does not affect the designated block number of the next election.", "", " # ", " If we have a replacement, we use a small weight. Else, since this is a root call and", " will go into phragmen, we assume full block for now.", " # "}}, FunctionMetadataV4{Name:"clean_defunct_voters", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"_num_voters", Type:"u32"}, FunctionArgumentMetadata{Name:"_num_defunct", Type:"u32"}}, Documentation:[]Text{" Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", " deposit of the removed voters are returned.", "", " This is an root function to be used only for cleaning the state.", "", " The dispatch origin of this call must be root.", "", " # ", " The total number of voters and those that are defunct must be provided as witness data.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"NewTerm", Args:[]Type{"Vec<(AccountId, Balance)>"}, Documentation:[]Text{" A new term with \\[new_members\\]. This indicates that enough candidates existed to run", " the election, not that enough have has been elected. The inner value must be examined", " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", " begin with."}}, EventMetadataV4{Name:"EmptyTerm", Args:[]Type(nil), Documentation:[]Text{" No (or not enough) candidates existed for this round. This is different from", " `NewTerm(\\[\\])`. See the description of `NewTerm`."}}, EventMetadataV4{Name:"ElectionError", Args:[]Type(nil), Documentation:[]Text{" Internal error happened while trying to perform election."}}, EventMetadataV4{Name:"MemberKicked", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[member\\] has been removed. This should always be followed by either `NewTerm` or", " `EmptyTerm`."}}, EventMetadataV4{Name:"Renounced", Args:[]Type{"AccountId"}, Documentation:[]Text{" Someone has renounced their candidacy."}}, EventMetadataV4{Name:"CandidateSlashed", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or", " runner-up.", "", " Note that old members and runners-up are also candidates."}}, EventMetadataV4{Name:"SeatHolderSlashed", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set."}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"PalletId", Type:"LockIdentifier", Value:Bytes{0x70, 0x68, 0x72, 0x65, 0x6c, 0x65, 0x63, 0x74}, Documentation:[]Text{" Identifier for the elections-phragmen pallet's lock"}}, ModuleConstantMetadataV6{Name:"CandidacyBond", Type:"BalanceOf", Value:Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" How much should be locked up in order to submit one's candidacy."}}, ModuleConstantMetadataV6{Name:"VotingBondBase", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0x43, 0x6d, 0xe3, 0x6a, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Base deposit associated with voting.", "", " This should be sensibly high to economically ensure the pallet cannot be attacked by", " creating a gigantic number of votes."}}, ModuleConstantMetadataV6{Name:"VotingBondFactor", Type:"BalanceOf", Value:Bytes{0x0, 0x0, 0xcc, 0x7b, 0x9f, 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of bond that need to be locked for each vote (32 bytes)."}}, ModuleConstantMetadataV6{Name:"DesiredMembers", Type:"u32", Value:Bytes{0xd, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of members to elect."}}, ModuleConstantMetadataV6{Name:"DesiredRunnersUp", Type:"u32", Value:Bytes{0x7, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of runners_up to keep."}}, ModuleConstantMetadataV6{Name:"TermDuration", Type:"T::BlockNumber", Value:Bytes{0x80, 0x13, 0x3, 0x0}, Documentation:[]Text{" How long each seat is kept. This defines the next block number at which an election", " round will happen. If set to zero, no elections are ever triggered and the module will", " be in passive mode."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"UnableToVote", Documentation:[]Text{" Cannot vote when no candidates or members exist."}}, ErrorMetadataV8{Name:"NoVotes", Documentation:[]Text{" Must vote for at least one candidate."}}, ErrorMetadataV8{Name:"TooManyVotes", Documentation:[]Text{" Cannot vote more than candidates."}}, ErrorMetadataV8{Name:"MaximumVotesExceeded", Documentation:[]Text{" Cannot vote more than maximum allowed."}}, ErrorMetadataV8{Name:"LowBalance", Documentation:[]Text{" Cannot vote with stake less than minimum balance."}}, ErrorMetadataV8{Name:"UnableToPayBond", Documentation:[]Text{" Voter can not pay voting bond."}}, ErrorMetadataV8{Name:"MustBeVoter", Documentation:[]Text{" Must be a voter."}}, ErrorMetadataV8{Name:"ReportSelf", Documentation:[]Text{" Cannot report self."}}, ErrorMetadataV8{Name:"DuplicatedCandidate", Documentation:[]Text{" Duplicated candidate submission."}}, ErrorMetadataV8{Name:"MemberSubmit", Documentation:[]Text{" Member cannot re-submit candidacy."}}, ErrorMetadataV8{Name:"RunnerUpSubmit", Documentation:[]Text{" Runner cannot re-submit candidacy."}}, ErrorMetadataV8{Name:"InsufficientCandidateFunds", Documentation:[]Text{" Candidate does not have enough funds."}}, ErrorMetadataV8{Name:"NotMember", Documentation:[]Text{" Not a member."}}, ErrorMetadataV8{Name:"InvalidWitnessData", Documentation:[]Text{" The provided count of number of candidates is incorrect."}}, ErrorMetadataV8{Name:"InvalidVoteCount", Documentation:[]Text{" The provided count of number of votes is incorrect."}}, ErrorMetadataV8{Name:"InvalidRenouncing", Documentation:[]Text{" The renouncing origin presented a wrong `Renouncing` parameter."}}, ErrorMetadataV8{Name:"InvalidReplacement", Documentation:[]Text{" Prediction regarding replacement after member removal is wrong."}}}, Index:0xe}, ModuleMetadataV13{Name:"TechnicalMembership", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Instance1Membership", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Members", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current membership, stored as an ordered Vec."}}, StorageFunctionMetadataV13{Name:"Prime", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current prime member, if one exists."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"add_member", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}}, Documentation:[]Text{" Add a member `who` to the set.", "", " May only be called from `T::AddOrigin`."}}, FunctionMetadataV4{Name:"remove_member", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}}, Documentation:[]Text{" Remove a member `who` from the set.", "", " May only be called from `T::RemoveOrigin`."}}, FunctionMetadataV4{Name:"swap_member", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"remove", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"add", Type:"T::AccountId"}}, Documentation:[]Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `T::SwapOrigin`.", "", " Prime membership is *not* passed from `remove` to `add`, if extant."}}, FunctionMetadataV4{Name:"reset_members", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"members", Type:"Vec"}}, Documentation:[]Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `T::ResetOrigin`."}}, FunctionMetadataV4{Name:"change_key", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new", Type:"T::AccountId"}}, Documentation:[]Text{" Swap out the sending member for some other key `new`.", "", " May only be called from `Signed` origin of a current member.", "", " Prime membership is passed from the origin account to `new`, if extant."}}, FunctionMetadataV4{Name:"set_prime", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}}, Documentation:[]Text{" Set the prime member. Must be a current member.", "", " May only be called from `T::PrimeOrigin`."}}, FunctionMetadataV4{Name:"clear_prime", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Remove the prime member if it exists.", "", " May only be called from `T::PrimeOrigin`."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"MemberAdded", Args:[]Type(nil), Documentation:[]Text{" The given member was added; see the transaction for who."}}, EventMetadataV4{Name:"MemberRemoved", Args:[]Type(nil), Documentation:[]Text{" The given member was removed; see the transaction for who."}}, EventMetadataV4{Name:"MembersSwapped", Args:[]Type(nil), Documentation:[]Text{" Two members were swapped; see the transaction for who."}}, EventMetadataV4{Name:"MembersReset", Args:[]Type(nil), Documentation:[]Text{" The membership was reset; see the transaction for who the new set is."}}, EventMetadataV4{Name:"KeyChanged", Args:[]Type(nil), Documentation:[]Text{" One of the members' keys changed."}}, EventMetadataV4{Name:"Dummy", Args:[]Type{"sp_std::marker::PhantomData<(AccountId, Event)>"}, Documentation:[]Text{" Phantom member, never used."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"AlreadyMember", Documentation:[]Text{" Already a member."}}, ErrorMetadataV8{Name:"NotMember", Documentation:[]Text{" Not a member."}}}, Index:0xf}, ModuleMetadataV13{Name:"Grandpa", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Grandpa", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"State", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"StoredState", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" State of the current authority set."}}, StorageFunctionMetadataV13{Name:"PendingChange", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"StoredPendingChange", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Pending change: (signaled at, scheduled change)."}}, StorageFunctionMetadataV13{Name:"NextForced", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::BlockNumber", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" next block number where we can force a change."}}, StorageFunctionMetadataV13{Name:"Stalled", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"(T::BlockNumber, T::BlockNumber)", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" `true` if we are currently stalled."}}, StorageFunctionMetadataV13{Name:"CurrentSetId", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"SetId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, StorageFunctionMetadataV13{Name:"SetIdSession", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"SetId", Value:"SessionIndex", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its", " members were responsible.", "", " TWOX-NOTE: `SetId` is not under user control."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"report_equivocation", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"equivocation_proof", Type:"EquivocationProof"}, FunctionArgumentMetadata{Name:"key_owner_proof", Type:"T::KeyOwnerProof"}}, Documentation:[]Text{" Report voter equivocation/misbehavior. This method will verify the", " equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence", " will be reported."}}, FunctionMetadataV4{Name:"report_equivocation_unsigned", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"equivocation_proof", Type:"EquivocationProof"}, FunctionArgumentMetadata{Name:"key_owner_proof", Type:"T::KeyOwnerProof"}}, Documentation:[]Text{" Report voter equivocation/misbehavior. This method will verify the", " equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence", " will be reported.", "", " This extrinsic must be called unsigned and it is expected that only", " block authors will call it (validated in `ValidateUnsigned`), as such", " if the block author is defined it will be defined as the equivocation", " reporter."}}, FunctionMetadataV4{Name:"note_stalled", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"delay", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"best_finalized_block_number", Type:"T::BlockNumber"}}, Documentation:[]Text{" Note that the current authority set of the GRANDPA finality gadget has", " stalled. This will trigger a forced authority set change at the beginning", " of the next session, to be enacted `delay` blocks after that. The delay", " should be high enough to safely assume that the block signalling the", " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", " will start the new authority set using the given finalized block as base.", " Only callable by root."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"NewAuthorities", Args:[]Type{"AuthorityList"}, Documentation:[]Text{" New authority set has been applied. \\[authority_set\\]"}}, EventMetadataV4{Name:"Paused", Args:[]Type(nil), Documentation:[]Text{" Current authority set has been paused."}}, EventMetadataV4{Name:"Resumed", Args:[]Type(nil), Documentation:[]Text{" Current authority set has been resumed."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"PauseFailed", Documentation:[]Text{" Attempt to signal GRANDPA pause when the authority set isn't live", " (either paused or already pending pause)."}}, ErrorMetadataV8{Name:"ResumeFailed", Documentation:[]Text{" Attempt to signal GRANDPA resume when the authority set isn't paused", " (either live or already pending resume)."}}, ErrorMetadataV8{Name:"ChangePending", Documentation:[]Text{" Attempt to signal GRANDPA change with one already pending."}}, ErrorMetadataV8{Name:"TooSoon", Documentation:[]Text{" Cannot signal forced change so soon after last."}}, ErrorMetadataV8{Name:"InvalidKeyOwnershipProof", Documentation:[]Text{" A key ownership proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name:"InvalidEquivocationProof", Documentation:[]Text{" An equivocation proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name:"DuplicateOffenceReport", Documentation:[]Text{" A given equivocation report is valid but already previously reported."}}}, Index:0x10}, ModuleMetadataV13{Name:"Treasury", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Treasury", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"ProposalCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ProposalIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of proposals that have been made."}}, StorageFunctionMetadataV13{Name:"Proposals", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"ProposalIndex", Value:"Proposal>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Proposals that have been made."}}, StorageFunctionMetadataV13{Name:"Approvals", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BoundedVec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Proposal indices that have been approved but not yet awarded."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"propose_spend", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"value", Type:"Compact>"}, FunctionArgumentMetadata{Name:"beneficiary", Type:"::Source"}}, Documentation:[]Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - Complexity: O(1)", " - DbReads: `ProposalCount`, `origin account`", " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", " # "}}, FunctionMetadataV4{Name:"reject_proposal", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_id", Type:"Compact"}}, Documentation:[]Text{" Reject a proposed spend. The original deposit will be slashed.", "", " May only be called from `T::RejectOrigin`.", "", " # ", " - Complexity: O(1)", " - DbReads: `Proposals`, `rejected proposer account`", " - DbWrites: `Proposals`, `rejected proposer account`", " # "}}, FunctionMetadataV4{Name:"approve_proposal", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proposal_id", Type:"Compact"}}, Documentation:[]Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - Complexity: O(1).", " - DbReads: `Proposals`, `Approvals`", " - DbWrite: `Approvals`", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Proposed", Args:[]Type{"ProposalIndex"}, Documentation:[]Text{" New proposal. \\[proposal_index\\]"}}, EventMetadataV4{Name:"Spending", Args:[]Type{"Balance"}, Documentation:[]Text{" We have ended a spend period and will now allocate funds. \\[budget_remaining\\]"}}, EventMetadataV4{Name:"Awarded", Args:[]Type{"ProposalIndex", "Balance", "AccountId"}, Documentation:[]Text{" Some funds have been allocated. \\[proposal_index, award, beneficiary\\]"}}, EventMetadataV4{Name:"Rejected", Args:[]Type{"ProposalIndex", "Balance"}, Documentation:[]Text{" A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]"}}, EventMetadataV4{Name:"Burnt", Args:[]Type{"Balance"}, Documentation:[]Text{" Some of our funds have been burnt. \\[burn\\]"}}, EventMetadataV4{Name:"Rollover", Args:[]Type{"Balance"}, Documentation:[]Text{" Spending has finished; this is the amount that rolls over until next spend.", " \\[budget_remaining\\]"}}, EventMetadataV4{Name:"Deposit", Args:[]Type{"Balance"}, Documentation:[]Text{" Some funds have been deposited. \\[deposit\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"ProposalBond", Type:"Permill", Value:Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation:[]Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, ModuleConstantMetadataV6{Name:"ProposalBondMinimum", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, ModuleConstantMetadataV6{Name:"SpendPeriod", Type:"T::BlockNumber", Value:Bytes{0x80, 0x70, 0x0, 0x0}, Documentation:[]Text{" Period between successive spends."}}, ModuleConstantMetadataV6{Name:"Burn", Type:"Permill", Value:Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation:[]Text{" Percentage of spare funds (if any) that are burnt per spend period."}}, ModuleConstantMetadataV6{Name:"PalletId", Type:"PalletId", Value:Bytes{0x70, 0x79, 0x2f, 0x74, 0x72, 0x73, 0x72, 0x79}, Documentation:[]Text{" The treasury's module id, used for deriving its sovereign account ID."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InsufficientProposersBalance", Documentation:[]Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name:"InvalidIndex", Documentation:[]Text{" No proposal or bounty at that index."}}, ErrorMetadataV8{Name:"TooManyApprovals", Documentation:[]Text{" Too many approvals in the queue."}}}, Index:0x11}, ModuleMetadataV13{Name:"Contracts", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Contracts", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"PristineCode", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"CodeHash", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, StorageFunctionMetadataV13{Name:"CodeStorage", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"CodeHash", Value:"PrefabWasmModule", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A mapping between an original code hash and instrumented wasm code, ready for execution."}}, StorageFunctionMetadataV13{Name:"AccountCounter", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u64", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The subtrie counter."}}, StorageFunctionMetadataV13{Name:"ContractInfoOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"ContractInfo", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The code associated with a given account.", "", " TWOX-NOTE: SAFE since `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name:"DeletionQueue", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Evicted contracts that await child trie deletion.", "", " Child trie deletion is a heavy operation depending on the amount of storage items", " stored in said trie. Therefore this operation is performed lazily in `on_initialize`."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"call", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"dest", Type:"::Source"}, FunctionArgumentMetadata{Name:"value", Type:"Compact>"}, FunctionArgumentMetadata{Name:"gas_limit", Type:"Compact"}, FunctionArgumentMetadata{Name:"data", Type:"Vec"}}, Documentation:[]Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, FunctionMetadataV4{Name:"instantiate_with_code", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"endowment", Type:"Compact>"}, FunctionArgumentMetadata{Name:"gas_limit", Type:"Compact"}, FunctionArgumentMetadata{Name:"code", Type:"Vec"}, FunctionArgumentMetadata{Name:"data", Type:"Vec"}, FunctionArgumentMetadata{Name:"salt", Type:"Vec"}}, Documentation:[]Text{" Instantiates a new contract from the supplied `code` optionally transferring", " some balance.", "", " This is the only function that can deploy new code to the chain.", "", " # Parameters", "", " * `endowment`: The balance to transfer from the `origin` to the newly created contract.", " * `gas_limit`: The gas limit enforced when executing the constructor.", " * `code`: The contract code to deploy in raw bytes.", " * `data`: The input data to pass to the contract constructor.", " * `salt`: Used for the address derivation. See [`Pallet::contract_address`].", "", " Instantiation is executed as follows:", "", " - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.", " - If the `code_hash` already exists on the chain the underlying `code` will be shared.", " - The destination address is computed based on the sender, code_hash and the salt.", " - The smart-contract account is created at the computed address.", " - The `endowment` is transferred to the new account.", " - The `deploy` function is executed in the context of the newly-created account."}}, FunctionMetadataV4{Name:"instantiate", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"endowment", Type:"Compact>"}, FunctionArgumentMetadata{Name:"gas_limit", Type:"Compact"}, FunctionArgumentMetadata{Name:"code_hash", Type:"CodeHash"}, FunctionArgumentMetadata{Name:"data", Type:"Vec"}, FunctionArgumentMetadata{Name:"salt", Type:"Vec"}}, Documentation:[]Text{" Instantiates a contract from a previously deployed wasm binary.", "", " This function is identical to [`Self::instantiate_with_code`] but without the", " code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", " must be supplied."}}, FunctionMetadataV4{Name:"claim_surcharge", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"dest", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"aux_sender", Type:"Option"}}, Documentation:[]Text{" Allows block producers to claim a small reward for evicting a contract. If a block", " producer fails to do so, a regular users will be allowed to claim the reward.", "", " In case of a successful eviction no fees are charged from the sender. However, the", " reward is capped by the total amount of rent that was paid by the contract while", " it was alive.", "", " If contract is not evicted as a result of this call, [`Error::ContractNotEvictable`]", " is returned and the sender is not eligible for the reward."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Instantiated", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" Contract deployed by address at the specified address. \\[deployer, contract\\]"}}, EventMetadataV4{Name:"Evicted", Args:[]Type{"AccountId"}, Documentation:[]Text{" Contract has been evicted and is now in tombstone state. \\[contract\\]"}}, EventMetadataV4{Name:"Terminated", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" Contract has been terminated without leaving a tombstone.", " \\[contract, beneficiary\\]", "", " # Params", "", " - `contract`: The contract that was terminated.", " - `beneficiary`: The account that received the contracts remaining balance.", "", " # Note", "", " The only way for a contract to be removed without a tombstone and emitting", " this event is by calling `seal_terminate`."}}, EventMetadataV4{Name:"Restored", Args:[]Type{"AccountId", "AccountId", "Hash", "Balance"}, Documentation:[]Text{" Restoration of a contract has been successful.", " \\[restorer, dest, code_hash, rent_allowance\\]", "", " # Params", "", " - `restorer`: Account ID of the restoring contract.", " - `dest`: Account ID of the restored contract.", " - `code_hash`: Code hash of the restored contract.", " - `rent_allowance`: Rent allowance of the restored contract."}}, EventMetadataV4{Name:"CodeStored", Args:[]Type{"Hash"}, Documentation:[]Text{" Code with the specified hash has been stored. \\[code_hash\\]"}}, EventMetadataV4{Name:"ScheduleUpdated", Args:[]Type{"u32"}, Documentation:[]Text{" Triggered when the current schedule is updated.", " \\[version\\]", "", " # Params", "", " - `version`: The version of the newly set schedule."}}, EventMetadataV4{Name:"ContractEmitted", Args:[]Type{"AccountId", "Vec"}, Documentation:[]Text{" A custom event emitted by the contract.", " \\[contract, data\\]", "", " # Params", "", " - `contract`: The contract that emitted the event.", " - `data`: Data supplied by the contract. Metadata generated during contract", " compilation is needed to decode it."}}, EventMetadataV4{Name:"CodeRemoved", Args:[]Type{"Hash"}, Documentation:[]Text{" A code with the specified hash was removed.", " \\[code_hash\\]", "", " This happens when the last contract that uses this code hash was removed or evicted."}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"Schedule", Type:"Schedule", Value:Bytes{0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x0, 0x8e, 0x6, 0x0, 0x0, 0xe2, 0xfc, 0x1, 0x0, 0xcd, 0xf, 0x3, 0x0, 0x9, 0x17, 0x0, 0x0, 0x86, 0x1d, 0x0, 0x0, 0x3, 0xc, 0x0, 0x0, 0x1f, 0x18, 0x0, 0x0, 0x56, 0x29, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0, 0xb0, 0x59, 0x1, 0x0, 0x55, 0x81, 0x2, 0x0, 0xc0, 0xb, 0x0, 0x0, 0x29, 0x7, 0x0, 0x0, 0x59, 0x8, 0x0, 0x0, 0x3b, 0x6, 0x0, 0x0, 0xb8, 0x16, 0x0, 0x0, 0xa6, 0x1a, 0x0, 0x0, 0x60, 0x7, 0x0, 0x0, 0xd, 0xe8, 0xb6, 0x7, 0xb1, 0x6, 0x0, 0x0, 0x7d, 0x6, 0x0, 0x0, 0xe6, 0x9, 0x0, 0x0, 0xdc, 0x7, 0x0, 0x0, 0xd5, 0x5, 0x0, 0x0, 0xd7, 0x5, 0x0, 0x0, 0x5b, 0x6, 0x0, 0x0, 0x43, 0x9, 0x0, 0x0, 0x39, 0x9, 0x0, 0x0, 0x1c, 0x9, 0x0, 0x0, 0x4d, 0x9, 0x0, 0x0, 0x1d, 0x9, 0x0, 0x0, 0x30, 0x9, 0x0, 0x0, 0x18, 0x9, 0x0, 0x0, 0x41, 0x9, 0x0, 0x0, 0x38, 0x9, 0x0, 0x0, 0x68, 0x9, 0x0, 0x0, 0x7d, 0x8, 0x0, 0x0, 0xf8, 0x8, 0x0, 0x0, 0x8e, 0x8, 0x0, 0x0, 0x3, 0x22, 0x0, 0x0, 0x37, 0x1e, 0x0, 0x0, 0xfd, 0x21, 0x0, 0x0, 0xe7, 0x1d, 0x0, 0x0, 0xa6, 0x8, 0x0, 0x0, 0xab, 0x8, 0x0, 0x0, 0xd5, 0x8, 0x0, 0x0, 0xdb, 0x9, 0x0, 0x0, 0xd8, 0x9, 0x0, 0x0, 0x19, 0xa, 0x0, 0x0, 0x1e, 0xb, 0x0, 0x0, 0xc, 0x9, 0x0, 0x0, 0x52, 0xf7, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6e, 0xe5, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9c, 0x21, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x39, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x2a, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x4f, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x3a, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdc, 0x54, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x18, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x31, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xc1, 0x47, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9a, 0x12, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x40, 0x6d, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x54, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3a, 0x7d, 0x20, 0x0, 0x0, 0x0, 0x0, 0x67, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xa9, 0xe7, 0x29, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x65, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, 0x13, 0xaa, 0x9, 0x0, 0x0, 0x0, 0x0, 0x6c, 0x83, 0x5b, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc2, 0x29, 0x87, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, 0xd6, 0xc9, 0x7, 0x0, 0x0, 0x0, 0x0, 0x94, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x68, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xb, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0xb2, 0x9, 0x0, 0x0, 0x0, 0x0, 0xb5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0xe1, 0x30, 0x8, 0x0, 0x0, 0x0, 0x0, 0xc2, 0x74, 0x8, 0x2, 0x0, 0x0, 0x0, 0x0, 0xdb, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c, 0x54, 0x8a, 0xa, 0x0, 0x0, 0x0, 0x0, 0xaa, 0xb1, 0xda, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf5, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x8b, 0x39, 0x8, 0x0, 0x0, 0x0, 0x0, 0x50, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8e, 0x63, 0xf0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x67, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x29, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x1f, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc3, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xa6, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbd, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6, 0xa8, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Cost schedule and limits."}}, ModuleConstantMetadataV6{Name:"SignedClaimHandicap", Type:"T::BlockNumber", Value:Bytes{0x2, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of block delay an extrinsic claim surcharge has.", "", " When claim surcharge is called by an extrinsic the rent is checked", " for current_block - delay"}}, ModuleConstantMetadataV6{Name:"TombstoneDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0xe8, 0x85, 0x7a, 0x9c, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum amount required to generate a tombstone."}}, ModuleConstantMetadataV6{Name:"DepositPerContract", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0xe8, 0x85, 0x7a, 0x9c, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The balance every contract needs to deposit to stay alive indefinitely.", "", " This is different from the [`Self::TombstoneDeposit`] because this only needs to be", " deposited while the contract is alive. Costs for additional storage are added to", " this base cost.", "", " This is a simple way to ensure that contracts with empty storage eventually get deleted by", " making them pay rent. This creates an incentive to remove them early in order to save rent."}}, ModuleConstantMetadataV6{Name:"DepositPerStorageByte", Type:"BalanceOf", Value:Bytes{0x0, 0x60, 0xde, 0xfb, 0x74, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The balance a contract needs to deposit per storage byte to stay alive indefinitely.", "", " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", " then it would pay 500 BU/day."}}, ModuleConstantMetadataV6{Name:"DepositPerStorageItem", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0xab, 0x75, 0xa4, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The balance a contract needs to deposit per storage item to stay alive indefinitely.", "", " It works the same as [`Self::DepositPerStorageByte`] but for storage items."}}, ModuleConstantMetadataV6{Name:"RentFraction", Type:"Perbill", Value:Bytes{0x85, 0x4, 0x0, 0x0}, Documentation:[]Text{" The fraction of the deposit that should be used as rent per block.", "", " When a contract hasn't enough balance deposited to stay alive indefinitely it needs", " to pay per block for the storage it consumes that is not covered by the deposit.", " This determines how high this rent payment is per block as a fraction of the deposit."}}, ModuleConstantMetadataV6{Name:"SurchargeReward", Type:"BalanceOf", Value:Bytes{0x0, 0x5c, 0xb2, 0xec, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Reward that is received by the party whose touch has led", " to removal of a contract."}}, ModuleConstantMetadataV6{Name:"DeletionQueueDepth", Type:"u32", Value:Bytes{0x85, 0x4, 0x0, 0x0}, Documentation:[]Text{" The maximum number of tries that can be queued for deletion."}}, ModuleConstantMetadataV6{Name:"DeletionWeightLimit", Type:"Weight", Value:Bytes{0x0, 0xd0, 0xed, 0x90, 0x2e, 0x0, 0x0, 0x0}, Documentation:[]Text{" The maximum amount of weight that can be consumed per block for lazy trie removal."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InvalidScheduleVersion", Documentation:[]Text{" A new schedule must have a greater version than the current one."}}, ErrorMetadataV8{Name:"InvalidSurchargeClaim", Documentation:[]Text{" An origin must be signed or inherent and auxiliary sender only provided on inherent."}}, ErrorMetadataV8{Name:"InvalidSourceContract", Documentation:[]Text{" Cannot restore from nonexisting or tombstone contract."}}, ErrorMetadataV8{Name:"InvalidDestinationContract", Documentation:[]Text{" Cannot restore to nonexisting or alive contract."}}, ErrorMetadataV8{Name:"InvalidTombstone", Documentation:[]Text{" Tombstones don't match."}}, ErrorMetadataV8{Name:"InvalidContractOrigin", Documentation:[]Text{" An origin TrieId written in the current block."}}, ErrorMetadataV8{Name:"OutOfGas", Documentation:[]Text{" The executed contract exhausted its gas limit."}}, ErrorMetadataV8{Name:"OutputBufferTooSmall", Documentation:[]Text{" The output buffer supplied to a contract API call was too small."}}, ErrorMetadataV8{Name:"BelowSubsistenceThreshold", Documentation:[]Text{" Performing the requested transfer would have brought the contract below", " the subsistence threshold. No transfer is allowed to do this in order to allow", " for a tombstone to be created. Use `seal_terminate` to remove a contract without", " leaving a tombstone behind."}}, ErrorMetadataV8{Name:"NewContractNotFunded", Documentation:[]Text{" The newly created contract is below the subsistence threshold after executing", " its contructor. No contracts are allowed to exist below that threshold."}}, ErrorMetadataV8{Name:"TransferFailed", Documentation:[]Text{" Performing the requested transfer failed for a reason originating in the", " chosen currency implementation of the runtime. Most probably the balance is", " too low or locks are placed on it."}}, ErrorMetadataV8{Name:"MaxCallDepthReached", Documentation:[]Text{" Performing a call was denied because the calling depth reached the limit", " of what is specified in the schedule."}}, ErrorMetadataV8{Name:"ContractNotFound", Documentation:[]Text{" No contract was found at the specified address."}}, ErrorMetadataV8{Name:"ContractIsTombstone", Documentation:[]Text{" A tombstone exist at the specified address.", "", " Tombstone cannot be called. Anyone can use `seal_restore_to` in order to revive", " the contract, though."}}, ErrorMetadataV8{Name:"RentNotPaid", Documentation:[]Text{" The called contract does not have enough balance to pay for its storage.", "", " The contract ran out of balance and is therefore eligible for eviction into a", " tombstone. Anyone can evict the contract by submitting a `claim_surcharge`", " extrinsic. Alternatively, a plain balance transfer can be used in order to", " increase the contracts funds so that it can be called again."}}, ErrorMetadataV8{Name:"CodeTooLarge", Documentation:[]Text{" The code supplied to `instantiate_with_code` exceeds the limit specified in the", " current schedule."}}, ErrorMetadataV8{Name:"CodeNotFound", Documentation:[]Text{" No code could be found at the supplied code hash."}}, ErrorMetadataV8{Name:"OutOfBounds", Documentation:[]Text{" A buffer outside of sandbox memory was passed to a contract API function."}}, ErrorMetadataV8{Name:"DecodingFailed", Documentation:[]Text{" Input passed to a contract API function failed to decode as expected type."}}, ErrorMetadataV8{Name:"ContractTrapped", Documentation:[]Text{" Contract trapped during execution."}}, ErrorMetadataV8{Name:"ValueTooLarge", Documentation:[]Text{" The size defined in `T::MaxValueSize` was exceeded."}}, ErrorMetadataV8{Name:"ReentranceDenied", Documentation:[]Text{" The action performed is not allowed while the contract performing it is already", " on the call stack. Those actions are contract self destruction and restoration", " of a tombstone."}}, ErrorMetadataV8{Name:"InputAlreadyRead", Documentation:[]Text{" `seal_input` was called twice from the same contract execution context."}}, ErrorMetadataV8{Name:"RandomSubjectTooLong", Documentation:[]Text{" The subject passed to `seal_random` exceeds the limit."}}, ErrorMetadataV8{Name:"TooManyTopics", Documentation:[]Text{" The amount of topics passed to `seal_deposit_events` exceeds the limit."}}, ErrorMetadataV8{Name:"DuplicateTopics", Documentation:[]Text{" The topics passed to `seal_deposit_events` contains at least one duplicate."}}, ErrorMetadataV8{Name:"NoChainExtension", Documentation:[]Text{" The chain does not provide a chain extension. Calling the chain extension results", " in this error. Note that this usually shouldn't happen as deploying such contracts", " is rejected."}}, ErrorMetadataV8{Name:"DeletionQueueFull", Documentation:[]Text{" Removal of a contract failed because the deletion queue is full.", "", " This can happen when either calling [`Pallet::claim_surcharge`] or `seal_terminate`.", " The queue is filled by deleting contracts and emptied by a fixed amount each block.", " Trying again during another block is the only way to resolve this issue."}}, ErrorMetadataV8{Name:"ContractNotEvictable", Documentation:[]Text{" A contract could not be evicted because it has enough balance to pay rent.", "", " This can be returned from [`Pallet::claim_surcharge`] because the target", " contract has enough balance to pay for its rent."}}, ErrorMetadataV8{Name:"StorageExhausted", Documentation:[]Text{" A storage modification exhausted the 32bit type that holds the storage size.", "", " This can either happen when the accumulated storage in bytes is too large or", " when number of storage items is too large."}}, ErrorMetadataV8{Name:"DuplicateContract", Documentation:[]Text{" A contract with the same AccountId already exists."}}, ErrorMetadataV8{Name:"TerminatedInConstructor", Documentation:[]Text{" A contract self destructed in its constructor.", "", " This can be triggered by a call to `seal_terminate` or `seal_restore_to`."}}, ErrorMetadataV8{Name:"DebugMessageInvalidUTF8", Documentation:[]Text{" The debug message specified to `seal_debug_message` does contain invalid UTF-8."}}}, Index:0x12}, ModuleMetadataV13{Name:"Sudo", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Sudo", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Key", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The `AccountId` of the sudo key."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"sudo", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Weight of derivative `call` execution + 10,000.", " # "}}, FunctionMetadataV4{Name:"sudo_unchecked_weight", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}, FunctionArgumentMetadata{Name:"_weight", Type:"Weight"}}, Documentation:[]Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", " This function does not check the weight of the call, and instead allows the", " Sudo user to specify the weight of the call.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - The weight of this call is defined by the caller.", " # "}}, FunctionMetadataV4{Name:"set_key", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"new", Type:"::Source"}}, Documentation:[]Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}, FunctionMetadataV4{Name:"sudo_as", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"::Source"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Authenticates the sudo key and dispatches a function call with `Signed` origin from", " a given account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Weight of derivative `call` execution + 10,000.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Sudid", Args:[]Type{"DispatchResult"}, Documentation:[]Text{" A sudo just took place. \\[result\\]"}}, EventMetadataV4{Name:"KeyChanged", Args:[]Type{"AccountId"}, Documentation:[]Text{" The \\[sudoer\\] just switched identity; the old key is supplied."}}, EventMetadataV4{Name:"SudoAsDone", Args:[]Type{"DispatchResult"}, Documentation:[]Text{" A sudo just took place. \\[result\\]"}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"RequireSudo", Documentation:[]Text{" Sender must be the Sudo account"}}}, Index:0x13}, ModuleMetadataV13{Name:"ImOnline", HasStorage:true, Storage:StorageMetadataV13{Prefix:"ImOnline", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"HeartbeatAfter", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::BlockNumber", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The block number after which it's ok to send heartbeats in the current", " session.", "", " At the beginning of each session we set this to a value that should fall", " roughly in the middle of the session duration. The idea is to first wait for", " the validators to produce a block in the current session, so that the", " heartbeat later on will not be necessary.", "", " This value will only be used as a fallback if we fail to get a proper session", " progress estimate from `NextSessionRotation`, as those estimates should be", " more accurate then the value we calculate for `HeartbeatAfter`."}}, StorageFunctionMetadataV13{Name:"Keys", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current set of keys that may issue a heartbeat."}}, StorageFunctionMetadataV13{Name:"ReceivedHeartbeats", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"SessionIndex", Key2:"AuthIndex", Value:"Vec", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" For each session index, we keep a mapping of `AuthIndex` to", " `offchain::OpaqueNetworkState`."}}, StorageFunctionMetadataV13{Name:"AuthoredBlocks", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"SessionIndex", Key2:"ValidatorId", Value:"u32", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" For each session index, we keep a mapping of `ValidatorId` to the", " number of blocks authored by the given authority."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"heartbeat", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"heartbeat", Type:"Heartbeat"}, FunctionArgumentMetadata{Name:"_signature", Type:"::Signature"}}, Documentation:[]Text{" # ", " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)", " and E is length of `heartbeat.network_state.external_address`", " - `O(K)`: decoding of length `K`", " - `O(E)`: decoding/encoding of length `E`", " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", " `ReceivedHeartbeats`", " - DbWrites: `ReceivedHeartbeats`", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"HeartbeatReceived", Args:[]Type{"AuthorityId"}, Documentation:[]Text{" A new heartbeat was received from `AuthorityId` \\[authority_id\\]"}}, EventMetadataV4{Name:"AllGood", Args:[]Type(nil), Documentation:[]Text{" At the end of the session, no offence was committed."}}, EventMetadataV4{Name:"SomeOffline", Args:[]Type{"Vec"}, Documentation:[]Text{" At the end of the session, at least one validator was found to be \\[offline\\]."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InvalidKey", Documentation:[]Text{" Non existent public key."}}, ErrorMetadataV8{Name:"DuplicatedHeartbeat", Documentation:[]Text{" Duplicated heartbeat."}}}, Index:0x14}, ModuleMetadataV13{Name:"AuthorityDiscovery", HasStorage:false, Storage:StorageMetadataV13{Prefix:"", Items:[]StorageFunctionMetadataV13(nil)}, HasCalls:true, Calls:[]FunctionMetadataV4(nil), HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8(nil), Index:0x15}, ModuleMetadataV13{Name:"Offences", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Offences", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Reports", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"ReportIdOf", Value:"OffenceDetails", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The primary structure that holds all offence records keyed by report identifiers."}}, StorageFunctionMetadataV13{Name:"ConcurrentReportsIndex", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"Kind", Key2:"OpaqueTimeSlot", Value:"Vec>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A vector of reports of the same kind that happened at the same time slot."}}, StorageFunctionMetadataV13{Name:"ReportsByKindIndex", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"Kind", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4(nil), HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Offence", Args:[]Type{"Kind", "OpaqueTimeSlot"}, Documentation:[]Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes.", " \\[kind, timeslot\\]."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8(nil), Index:0x16}, ModuleMetadataV13{Name:"Historical", HasStorage:false, Storage:StorageMetadataV13{Prefix:"", Items:[]StorageFunctionMetadataV13(nil)}, HasCalls:false, Calls:[]FunctionMetadataV4(nil), HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8(nil), Index:0x17}, ModuleMetadataV13{Name:"RandomnessCollectiveFlip", HasStorage:true, Storage:StorageMetadataV13{Prefix:"RandomnessCollectiveFlip", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"RandomMaterial", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4(nil), HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8(nil), Index:0x18}, ModuleMetadataV13{Name:"Identity", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Identity", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"IdentityOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"Registration>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Information that is pertinent to identify the entity behind an account.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name:"SuperOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"(T::AccountId, Data)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The super-identity of an alternative \"sub\" identity together with its name, within that", " context. If the account is not some other account's sub-identity, then just `None`."}}, StorageFunctionMetadataV13{Name:"SubsOf", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"(BalanceOf, Vec)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Alternative \"sub\" identities of this account.", "", " The first item is the deposit, the second is a vector of the accounts.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name:"Registrars", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec, T::AccountId>>>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The set of registrars. Not expected to get very big as can only be added through a", " special origin (likely a council motion).", "", " The index into this can be cast to `RegistrarIndex` to get a valid value."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"add_registrar", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"account", Type:"T::AccountId"}}, Documentation:[]Text{" Add a registrar to the system.", "", " The dispatch origin for this call must be `T::RegistrarOrigin`.", "", " - `account`: the account of the registrar.", "", " Emits `RegistrarAdded` if successful.", "", " # ", " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", " - One storage mutation (codec `O(R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name:"set_identity", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"info", Type:"IdentityInfo"}}, Documentation:[]Text{" Set an account's identity information and reserve the appropriate deposit.", "", " If the account already has identity information, the deposit is taken as part payment", " for the new deposit.", "", " The dispatch origin for this call must be _Signed_.", "", " - `info`: The identity information.", "", " Emits `IdentitySet` if successful.", "", " # ", " - `O(X + X' + R)`", " - where `X` additional-field-count (deposit-bounded and code-bounded)", " - where `R` judgements-count (registrar-count-bounded)", " - One balance reserve operation.", " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name:"set_subs", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"subs", Type:"Vec<(T::AccountId, Data)>"}}, Documentation:[]Text{" Set the sub-accounts of the sender.", "", " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " - `subs`: The identity's (new) sub-accounts.", "", " # ", " - `O(P + S)`", " - where `P` old-subs-count (hard- and deposit-bounded).", " - where `S` subs-count (hard- and deposit-bounded).", " - At most one balance operations.", " - DB:", " - `P + S` storage mutations (codec complexity `O(1)`)", " - One storage read (codec complexity `O(P)`).", " - One storage write (codec complexity `O(S)`).", " - One storage-exists (`IdentityOf::contains_key`).", " # "}}, FunctionMetadataV4{Name:"clear_identity", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Clear an account's identity info and all sub-accounts and return all deposits.", "", " Payment: All reserved balances on the account are returned.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " Emits `IdentityCleared` if successful.", "", " # ", " - `O(R + S + X)`", " - where `R` registrar-count (governance-bounded).", " - where `S` subs-count (hard- and deposit-bounded).", " - where `X` additional-field-count (deposit-bounded and code-bounded).", " - One balance-unreserve operation.", " - `2` storage reads and `S + 2` storage deletions.", " - One event.", " # "}}, FunctionMetadataV4{Name:"request_judgement", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"reg_index", Type:"Compact"}, FunctionArgumentMetadata{Name:"max_fee", Type:"Compact>"}}, Documentation:[]Text{" Request a judgement from a registrar.", "", " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", " given.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is requested.", " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", "", " ```nocompile", " Self::registrars().get(reg_index).unwrap().fee", " ```", "", " Emits `JudgementRequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", " - One event.", " # "}}, FunctionMetadataV4{Name:"cancel_request", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"reg_index", Type:"RegistrarIndex"}}, Documentation:[]Text{" Cancel a previous request.", "", " Payment: A previously reserved deposit is returned on success.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is no longer requested.", "", " Emits `JudgementUnrequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - One storage mutation `O(R + X)`.", " - One event", " # "}}, FunctionMetadataV4{Name:"set_fee", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"fee", Type:"Compact>"}}, Documentation:[]Text{" Set the fee required for a judgement to be requested from a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fee`: the new fee.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name:"set_account_id", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"new", Type:"T::AccountId"}}, Documentation:[]Text{" Change the account associated with a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `new`: the new account ID.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name:"set_fields", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"Compact"}, FunctionArgumentMetadata{Name:"fields", Type:"IdentityFields"}}, Documentation:[]Text{" Set the field information for a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fields`: the fields that the registrar concerns themselves with.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name:"provide_judgement", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"reg_index", Type:"Compact"}, FunctionArgumentMetadata{Name:"target", Type:"::Source"}, FunctionArgumentMetadata{Name:"judgement", Type:"Judgement>"}}, Documentation:[]Text{" Provide a judgement for an account's identity.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `reg_index`.", "", " - `reg_index`: the index of the registrar whose judgement is being made.", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", "", " Emits `JudgementGiven` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-transfer operation.", " - Up to one account-lookup operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", " - One event.", " # "}}, FunctionMetadataV4{Name:"kill_identity", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"target", Type:"::Source"}}, Documentation:[]Text{" Remove an account's identity and sub-account information and slash the deposits.", "", " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", " `Slash`. Verification request deposits are not returned; they should be cancelled", " manually using `cancel_request`.", "", " The dispatch origin for this call must match `T::ForceOrigin`.", "", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", "", " Emits `IdentityKilled` if successful.", "", " # ", " - `O(R + S + X)`.", " - One balance-reserve operation.", " - `S + 2` storage mutations.", " - One event.", " # "}}, FunctionMetadataV4{Name:"add_sub", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"sub", Type:"::Source"}, FunctionArgumentMetadata{Name:"data", Type:"Data"}}, Documentation:[]Text{" Add the given account to the sender's subs.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name:"rename_sub", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"sub", Type:"::Source"}, FunctionArgumentMetadata{Name:"data", Type:"Data"}}, Documentation:[]Text{" Alter the associated name of the given sub-account.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name:"remove_sub", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"sub", Type:"::Source"}}, Documentation:[]Text{" Remove the given account from the sender's subs.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name:"quit_sub", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Remove the sender as a sub-account.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender (*not* the original depositor).", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " super-identity.", "", " NOTE: This should not normally be used, but is provided in the case that the non-", " controller of an account is maliciously registered as a sub-account."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"IdentitySet", Args:[]Type{"AccountId"}, Documentation:[]Text{" A name was set or reset (which will remove all judgements). \\[who\\]"}}, EventMetadataV4{Name:"IdentityCleared", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" A name was cleared, and the given balance returned. \\[who, deposit\\]"}}, EventMetadataV4{Name:"IdentityKilled", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" A name was removed and the given balance slashed. \\[who, deposit\\]"}}, EventMetadataV4{Name:"JudgementRequested", Args:[]Type{"AccountId", "RegistrarIndex"}, Documentation:[]Text{" A judgement was asked from a registrar. \\[who, registrar_index\\]"}}, EventMetadataV4{Name:"JudgementUnrequested", Args:[]Type{"AccountId", "RegistrarIndex"}, Documentation:[]Text{" A judgement request was retracted. \\[who, registrar_index\\]"}}, EventMetadataV4{Name:"JudgementGiven", Args:[]Type{"AccountId", "RegistrarIndex"}, Documentation:[]Text{" A judgement was given by a registrar. \\[target, registrar_index\\]"}}, EventMetadataV4{Name:"RegistrarAdded", Args:[]Type{"RegistrarIndex"}, Documentation:[]Text{" A registrar was added. \\[registrar_index\\]"}}, EventMetadataV4{Name:"SubIdentityAdded", Args:[]Type{"AccountId", "AccountId", "Balance"}, Documentation:[]Text{" A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]"}}, EventMetadataV4{Name:"SubIdentityRemoved", Args:[]Type{"AccountId", "AccountId", "Balance"}, Documentation:[]Text{" A sub-identity was removed from an identity and the deposit freed.", " \\[sub, main, deposit\\]"}}, EventMetadataV4{Name:"SubIdentityRevoked", Args:[]Type{"AccountId", "AccountId", "Balance"}, Documentation:[]Text{" A sub-identity was cleared, and the given deposit repatriated from the", " main identity account to the sub-identity account. \\[sub, main, deposit\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"BasicDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit for a registered identity"}}, ModuleConstantMetadataV6{Name:"FieldDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit per additional field for a registered identity."}}, ModuleConstantMetadataV6{Name:"SubAccountDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit for a registered subaccount. This should account for the fact", " that one storage item's value will increase by the size of an account ID, and there will be", " another trie item whose value is the size of an account ID plus 32 bytes."}}, ModuleConstantMetadataV6{Name:"MaxSubAccounts", Type:"u32", Value:Bytes{0x64, 0x0, 0x0, 0x0}, Documentation:[]Text{" The maximum number of sub-accounts allowed per identified account."}}, ModuleConstantMetadataV6{Name:"MaxAdditionalFields", Type:"u32", Value:Bytes{0x64, 0x0, 0x0, 0x0}, Documentation:[]Text{" Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", " required to access an identity, but can be pretty high."}}, ModuleConstantMetadataV6{Name:"MaxRegistrars", Type:"u32", Value:Bytes{0x14, 0x0, 0x0, 0x0}, Documentation:[]Text{" Maxmimum number of registrars allowed in the system. Needed to bound the complexity", " of, e.g., updating judgements."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"TooManySubAccounts", Documentation:[]Text{" Too many subs-accounts."}}, ErrorMetadataV8{Name:"NotFound", Documentation:[]Text{" Account isn't found."}}, ErrorMetadataV8{Name:"NotNamed", Documentation:[]Text{" Account isn't named."}}, ErrorMetadataV8{Name:"EmptyIndex", Documentation:[]Text{" Empty index."}}, ErrorMetadataV8{Name:"FeeChanged", Documentation:[]Text{" Fee is changed."}}, ErrorMetadataV8{Name:"NoIdentity", Documentation:[]Text{" No identity found."}}, ErrorMetadataV8{Name:"StickyJudgement", Documentation:[]Text{" Sticky judgement."}}, ErrorMetadataV8{Name:"JudgementGiven", Documentation:[]Text{" Judgement given."}}, ErrorMetadataV8{Name:"InvalidJudgement", Documentation:[]Text{" Invalid judgement."}}, ErrorMetadataV8{Name:"InvalidIndex", Documentation:[]Text{" The index is invalid."}}, ErrorMetadataV8{Name:"InvalidTarget", Documentation:[]Text{" The target is invalid."}}, ErrorMetadataV8{Name:"TooManyFields", Documentation:[]Text{" Too many additional fields."}}, ErrorMetadataV8{Name:"TooManyRegistrars", Documentation:[]Text{" Maximum amount of registrars reached. Cannot add any more."}}, ErrorMetadataV8{Name:"AlreadyClaimed", Documentation:[]Text{" Account ID is already named."}}, ErrorMetadataV8{Name:"NotSub", Documentation:[]Text{" Sender is not a sub-account."}}, ErrorMetadataV8{Name:"NotOwned", Documentation:[]Text{" Sub-account isn't owned by sender."}}}, Index:0x19}, ModuleMetadataV13{Name:"Society", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Society", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Founder", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The first member."}}, StorageFunctionMetadataV13{Name:"Rules", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::Hash", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" A hash of the rules of this society concerning membership. Can only be set once and", " only by the founder."}}, StorageFunctionMetadataV13{Name:"Candidates", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec>>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current set of candidates; bidders that are attempting to become members."}}, StorageFunctionMetadataV13{Name:"SuspendedCandidates", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"(BalanceOf, BidKind>)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The set of suspended candidates."}}, StorageFunctionMetadataV13{Name:"Pot", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BalanceOf", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Amount of our account balance that is specifically for the next round's bid(s)."}}, StorageFunctionMetadataV13{Name:"Head", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The most primary from the most recently approved members."}}, StorageFunctionMetadataV13{Name:"Members", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current set of members, ordered."}}, StorageFunctionMetadataV13{Name:"SuspendedMembers", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"bool", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The set of suspended members."}}, StorageFunctionMetadataV13{Name:"Bids", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec>>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The current bids, stored ordered by the value of the bid."}}, StorageFunctionMetadataV13{Name:"Vouching", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"VouchingStatus", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Members currently vouching or banned from vouching again"}}, StorageFunctionMetadataV13{Name:"Payouts", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"Vec<(T::BlockNumber, BalanceOf)>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Pending payouts; ordered by block number, with the amount that should be paid out."}}, StorageFunctionMetadataV13{Name:"Strikes", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"StrikeCount", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The ongoing number of losing votes cast by the member."}}, StorageFunctionMetadataV13{Name:"Votes", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"T::AccountId", Key2:"T::AccountId", Value:"Vote", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Double map from Candidate -> Voter -> (Maybe) Vote."}}, StorageFunctionMetadataV13{Name:"Defender", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::AccountId", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The defending member currently being challenged."}}, StorageFunctionMetadataV13{Name:"DefenderVotes", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"Vote", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Votes for the defender."}}, StorageFunctionMetadataV13{Name:"MaxMembers", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The max number of members for the society at one time."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"bid", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"value", Type:"BalanceOf"}}, Documentation:[]Text{" A user outside of the society can make a bid for entry.", "", " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", " when the bid becomes a member, or if the bid calls `unbid`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `value`: A one time payment the bid would like to receive when joining the society.", "", " # ", " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", " - Storage Reads:", " \t- One storage read to check for suspended candidate. O(1)", " \t- One storage read to check for suspended member. O(1)", " \t- One storage read to retrieve all current bids. O(B)", " \t- One storage read to retrieve all current candidates. O(C)", " \t- One storage read to retrieve all members. O(M)", " - Storage Writes:", " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", " - Notable Computation:", " \t- O(B + C + log M) search to check user is not already a part of society.", " \t- O(log B) search to insert the new bid sorted.", " - External Module Operations:", " \t- One balance reserve operation. O(X)", " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", " - Events:", " \t- One event for new bid.", " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", "", " Total Complexity: O(M + B + C + logM + logB + X)", " # "}}, FunctionMetadataV4{Name:"unbid", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"pos", Type:"u32"}}, Documentation:[]Text{" A bidder can remove their bid for entry into society.", " By doing so, they will have their candidate deposit returned or", " they will unvouch their voucher.", "", " Payment: The bid deposit is unreserved if the user made a bid.", "", " The dispatch origin for this call must be _Signed_ and a bidder.", "", " Parameters:", " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", "", " # ", " Key: B (len of bids), X (balance unreserve)", " - One storage read and write to retrieve and update the bids. O(B)", " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", " - One event.", "", " Total Complexity: O(B + X)", " # "}}, FunctionMetadataV4{Name:"vouch", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"value", Type:"BalanceOf"}, FunctionArgumentMetadata{Name:"tip", Type:"BalanceOf"}}, Documentation:[]Text{" As a member, vouch for someone to join society by placing a bid on their behalf.", "", " There is no deposit required to vouch for a new bid, but a member can only vouch for", " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", " the suspension judgement origin, the member will be banned from vouching again.", "", " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", " be paid as a portion of the reward the member will receive for joining the society.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `who`: The user who you would like to vouch for.", " - `value`: The total reward to be paid between you and the candidate if they become", " a member in the society.", " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", " the society. Tips larger than `value` will be saturated upon payout.", "", " # ", " Key: B (len of bids), C (len of candidates), M (len of members)", " - Storage Reads:", " \t- One storage read to retrieve all members. O(M)", " \t- One storage read to check member is not already vouching. O(1)", " \t- One storage read to check for suspended candidate. O(1)", " \t- One storage read to check for suspended member. O(1)", " \t- One storage read to retrieve all current bids. O(B)", " \t- One storage read to retrieve all current candidates. O(C)", " - Storage Writes:", " \t- One storage write to insert vouching status to the member. O(1)", " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", " - Notable Computation:", " \t- O(log M) search to check sender is a member.", " \t- O(B + C + log M) search to check user is not already a part of society.", " \t- O(log B) search to insert the new bid sorted.", " - External Module Operations:", " \t- One balance reserve operation. O(X)", " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", " - Events:", " \t- One event for vouch.", " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", "", " Total Complexity: O(M + B + C + logM + logB + X)", " # "}}, FunctionMetadataV4{Name:"unvouch", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"pos", Type:"u32"}}, Documentation:[]Text{" As a vouching member, unvouch a bid. This only works while vouched user is", " only a bidder (and not a candidate).", "", " The dispatch origin for this call must be _Signed_ and a vouching member.", "", " Parameters:", " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", "", " # ", " Key: B (len of bids)", " - One storage read O(1) to check the signer is a vouching member.", " - One storage mutate to retrieve and update the bids. O(B)", " - One vouching storage removal. O(1)", " - One event.", "", " Total Complexity: O(B)", " # "}}, FunctionMetadataV4{Name:"vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"candidate", Type:"::Source"}, FunctionArgumentMetadata{Name:"approve", Type:"bool"}}, Documentation:[]Text{" As a member, vote on a candidate.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `candidate`: The candidate that the member would like to bid on.", " - `approve`: A boolean which says if the candidate should be", " approved (`true`) or rejected (`false`).", "", " # ", " Key: C (len of candidates), M (len of members)", " - One storage read O(M) and O(log M) search to check user is a member.", " - One account lookup.", " - One storage read O(C) and O(C) search to check that user is a candidate.", " - One storage write to add vote to votes. O(1)", " - One event.", "", " Total Complexity: O(M + logM + C)", " # "}}, FunctionMetadataV4{Name:"defender_vote", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"approve", Type:"bool"}}, Documentation:[]Text{" As a member, vote on the defender.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `approve`: A boolean which says if the candidate should be", " approved (`true`) or rejected (`false`).", "", " # ", " - Key: M (len of members)", " - One storage read O(M) and O(log M) search to check user is a member.", " - One storage write to add vote to votes. O(1)", " - One event.", "", " Total Complexity: O(M + logM)", " # "}}, FunctionMetadataV4{Name:"payout", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Transfer the first matured payout for the sender and remove it from the records.", "", " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", "", " Payment: The member will receive a payment equal to their first matured", " payout to their free balance.", "", " The dispatch origin for this call must be _Signed_ and a member with", " payouts remaining.", "", " # ", " Key: M (len of members), P (number of payouts for a particular member)", " - One storage read O(M) and O(log M) search to check signer is a member.", " - One storage read O(P) to get all payouts for a member.", " - One storage read O(1) to get the current block number.", " - One currency transfer call. O(X)", " - One storage write or removal to update the member's payouts. O(P)", "", " Total Complexity: O(M + logM + P + X)", " # "}}, FunctionMetadataV4{Name:"found", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"founder", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"max_members", Type:"u32"}, FunctionArgumentMetadata{Name:"rules", Type:"Vec"}}, Documentation:[]Text{" Found the society.", "", " This is done as a discrete action in order to allow for the", " module to be included into a running chain and can only be done once.", "", " The dispatch origin for this call must be from the _FounderSetOrigin_.", "", " Parameters:", " - `founder` - The first member and head of the newly founded society.", " - `max_members` - The initial max number of members for the society.", " - `rules` - The rules of this society concerning membership.", "", " # ", " - Two storage mutates to set `Head` and `Founder`. O(1)", " - One storage write to add the first member to society. O(1)", " - One event.", "", " Total Complexity: O(1)", " # "}}, FunctionMetadataV4{Name:"unfound", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Annul the founding of the society.", "", " The dispatch origin for this call must be Signed, and the signing account must be both", " the `Founder` and the `Head`. This implies that it may only be done when there is one", " member.", "", " # ", " - Two storage reads O(1).", " - Four storage removals O(1).", " - One event.", "", " Total Complexity: O(1)", " # "}}, FunctionMetadataV4{Name:"judge_suspended_member", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"forgive", Type:"bool"}}, Documentation:[]Text{" Allow suspension judgement origin to make judgement on a suspended member.", "", " If a suspended member is forgiven, we simply add them back as a member, not affecting", " any of the existing storage items for that member.", "", " If a suspended member is rejected, remove all associated storage items, including", " their payouts, and remove any vouched bids they currently have.", "", " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", "", " Parameters:", " - `who` - The suspended member to be judged.", " - `forgive` - A boolean representing whether the suspension judgement origin", " forgives (`true`) or rejects (`false`) a suspended member.", "", " # ", " Key: B (len of bids), M (len of members)", " - One storage read to check `who` is a suspended member. O(1)", " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", " - Up to 3 storage removals O(1) to clean up a removed member.", " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", " - Up to one additional event if unvouch takes place.", " - One storage removal. O(1)", " - One event for the judgement.", "", " Total Complexity: O(M + logM + B)", " # "}}, FunctionMetadataV4{Name:"judge_suspended_candidate", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"judgement", Type:"Judgement"}}, Documentation:[]Text{" Allow suspended judgement origin to make judgement on a suspended candidate.", "", " If the judgement is `Approve`, we add them to society as a member with the appropriate", " payment for joining society.", "", " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", " to the society treasury, or we ban the voucher from vouching again.", "", " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", " through the induction process again.", "", " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", "", " Parameters:", " - `who` - The suspended candidate to be judged.", " - `judgement` - `Approve`, `Reject`, or `Rebid`.", "", " # ", " Key: B (len of bids), M (len of members), X (balance action)", " - One storage read to check `who` is a suspended candidate.", " - One storage removal of the suspended candidate.", " - Approve Logic", " \t- One storage read to get the available pot to pay users with. O(1)", " \t- One storage write to update the available pot. O(1)", " \t- One storage read to get the current block number. O(1)", " \t- One storage read to get all members. O(M)", " \t- Up to one unreserve currency action.", " \t- Up to two new storage writes to payouts.", " \t- Up to one storage write with O(log M) binary search to add a member to society.", " - Reject Logic", " \t- Up to one repatriate reserved currency action. O(X)", " \t- Up to one storage write to ban the vouching member from vouching again.", " - Rebid Logic", " \t- Storage mutate with O(log B) binary search to place the user back into bids.", " - Up to one additional event if unvouch takes place.", " - One storage removal.", " - One event for the judgement.", "", " Total Complexity: O(M + logM + B + X)", " # "}}, FunctionMetadataV4{Name:"set_max_members", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"max", Type:"u32"}}, Documentation:[]Text{" Allows root origin to change the maximum number of members in society.", " Max membership count must be greater than 1.", "", " The dispatch origin for this call must be from _ROOT_.", "", " Parameters:", " - `max` - The maximum number of members for the society.", "", " # ", " - One storage write to update the max. O(1)", " - One event.", "", " Total Complexity: O(1)", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Founded", Args:[]Type{"AccountId"}, Documentation:[]Text{" The society is founded by the given identity. \\[founder\\]"}}, EventMetadataV4{Name:"Bid", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" A membership bid just happened. The given account is the candidate's ID and their offer", " is the second. \\[candidate_id, offer\\]"}}, EventMetadataV4{Name:"Vouch", Args:[]Type{"AccountId", "Balance", "AccountId"}, Documentation:[]Text{" A membership bid just happened by vouching. The given account is the candidate's ID and", " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]"}}, EventMetadataV4{Name:"AutoUnbid", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[candidate\\] was dropped (due to an excess of bids in the system)."}}, EventMetadataV4{Name:"Unbid", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[candidate\\] was dropped (by their request)."}}, EventMetadataV4{Name:"Unvouch", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[candidate\\] was dropped (by request of who vouched for them)."}}, EventMetadataV4{Name:"Inducted", Args:[]Type{"AccountId", "Vec"}, Documentation:[]Text{" A group of candidates have been inducted. The batch's primary is the first value, the", " batch in full is the second. \\[primary, candidates\\]"}}, EventMetadataV4{Name:"SuspendedMemberJudgement", Args:[]Type{"AccountId", "bool"}, Documentation:[]Text{" A suspended member has been judged. \\[who, judged\\]"}}, EventMetadataV4{Name:"CandidateSuspended", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[candidate\\] has been suspended"}}, EventMetadataV4{Name:"MemberSuspended", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[member\\] has been suspended"}}, EventMetadataV4{Name:"Challenged", Args:[]Type{"AccountId"}, Documentation:[]Text{" A \\[member\\] has been challenged"}}, EventMetadataV4{Name:"Vote", Args:[]Type{"AccountId", "AccountId", "bool"}, Documentation:[]Text{" A vote has been placed \\[candidate, voter, vote\\]"}}, EventMetadataV4{Name:"DefenderVote", Args:[]Type{"AccountId", "bool"}, Documentation:[]Text{" A vote has been placed for a defending member \\[voter, vote\\]"}}, EventMetadataV4{Name:"NewMaxMembers", Args:[]Type{"u32"}, Documentation:[]Text{" A new \\[max\\] member count has been set"}}, EventMetadataV4{Name:"Unfounded", Args:[]Type{"AccountId"}, Documentation:[]Text{" Society is unfounded. \\[founder\\]"}}, EventMetadataV4{Name:"Deposit", Args:[]Type{"Balance"}, Documentation:[]Text{" Some funds were deposited into the society account. \\[value\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"CandidateDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum amount of a deposit required for a bid to be made."}}, ModuleConstantMetadataV6{Name:"WrongSideDeduction", Type:"BalanceOf", Value:Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of the unpaid reward that gets deducted in the case that either a skeptic", " doesn't vote or someone votes in the wrong way."}}, ModuleConstantMetadataV6{Name:"MaxStrikes", Type:"u32", Value:Bytes{0xa, 0x0, 0x0, 0x0}, Documentation:[]Text{" The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", " before they become suspended."}}, ModuleConstantMetadataV6{Name:"PeriodSpend", Type:"BalanceOf", Value:Bytes{0x0, 0x0, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of incentive paid within each period. Doesn't include VoterTip."}}, ModuleConstantMetadataV6{Name:"RotationPeriod", Type:"T::BlockNumber", Value:Bytes{0x0, 0x77, 0x1, 0x0}, Documentation:[]Text{" The number of blocks between candidate/membership rotation periods."}}, ModuleConstantMetadataV6{Name:"ChallengePeriod", Type:"T::BlockNumber", Value:Bytes{0x80, 0x13, 0x3, 0x0}, Documentation:[]Text{" The number of blocks between membership challenges."}}, ModuleConstantMetadataV6{Name:"PalletId", Type:"PalletId", Value:Bytes{0x70, 0x79, 0x2f, 0x73, 0x6f, 0x63, 0x69, 0x65}, Documentation:[]Text{" The societies's module id"}}, ModuleConstantMetadataV6{Name:"MaxCandidateIntake", Type:"u32", Value:Bytes{0xa, 0x0, 0x0, 0x0}, Documentation:[]Text{" Maximum candidate intake per round."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"BadPosition", Documentation:[]Text{" An incorrect position was provided."}}, ErrorMetadataV8{Name:"NotMember", Documentation:[]Text{" User is not a member."}}, ErrorMetadataV8{Name:"AlreadyMember", Documentation:[]Text{" User is already a member."}}, ErrorMetadataV8{Name:"Suspended", Documentation:[]Text{" User is suspended."}}, ErrorMetadataV8{Name:"NotSuspended", Documentation:[]Text{" User is not suspended."}}, ErrorMetadataV8{Name:"NoPayout", Documentation:[]Text{" Nothing to payout."}}, ErrorMetadataV8{Name:"AlreadyFounded", Documentation:[]Text{" Society already founded."}}, ErrorMetadataV8{Name:"InsufficientPot", Documentation:[]Text{" Not enough in pot to accept candidate."}}, ErrorMetadataV8{Name:"AlreadyVouching", Documentation:[]Text{" Member is already vouching or banned from vouching again."}}, ErrorMetadataV8{Name:"NotVouching", Documentation:[]Text{" Member is not vouching."}}, ErrorMetadataV8{Name:"Head", Documentation:[]Text{" Cannot remove the head of the chain."}}, ErrorMetadataV8{Name:"Founder", Documentation:[]Text{" Cannot remove the founder."}}, ErrorMetadataV8{Name:"AlreadyBid", Documentation:[]Text{" User has already made a bid."}}, ErrorMetadataV8{Name:"AlreadyCandidate", Documentation:[]Text{" User is already a candidate."}}, ErrorMetadataV8{Name:"NotCandidate", Documentation:[]Text{" User is not a candidate."}}, ErrorMetadataV8{Name:"MaxMembers", Documentation:[]Text{" Too many members in the society."}}, ErrorMetadataV8{Name:"NotFounder", Documentation:[]Text{" The caller is not the founder."}}, ErrorMetadataV8{Name:"NotHead", Documentation:[]Text{" The caller is not the head."}}}, Index:0x1a}, ModuleMetadataV13{Name:"Recovery", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Recovery", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Recoverable", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"RecoveryConfig, T::AccountId>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The set of recoverable accounts and their recovery configuration."}}, StorageFunctionMetadataV13{Name:"ActiveRecoveries", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"T::AccountId", Key2:"T::AccountId", Value:"ActiveRecovery, T::AccountId>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Active recovery attempts.", "", " First account is the account to be recovered, and the second account", " is the user trying to recover the account."}}, StorageFunctionMetadataV13{Name:"Proxy", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"T::AccountId", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The list of allowed proxy accounts.", "", " Map from the user who can access it to the recovered account."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"as_recovered", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"account", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Send a call through a recovered account.", "", " The dispatch origin for this call must be _Signed_ and registered to", " be able to make calls on behalf of the recovered account.", "", " Parameters:", " - `account`: The recovered account you want to make a call on-behalf-of.", " - `call`: The call you want to make with the recovered account.", "", " # ", " - The weight of the `call` + 10,000.", " - One storage lookup to check account is recovered by `who`. O(1)", " # "}}, FunctionMetadataV4{Name:"set_recovered", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"lost", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"rescuer", Type:"T::AccountId"}}, Documentation:[]Text{" Allow ROOT to bypass the recovery process and set an a rescuer account", " for a lost account directly.", "", " The dispatch origin for this call must be _ROOT_.", "", " Parameters:", " - `lost`: The \"lost account\" to be recovered.", " - `rescuer`: The \"rescuer account\" which can call as the lost account.", "", " # ", " - One storage write O(1)", " - One event", " # "}}, FunctionMetadataV4{Name:"create_recovery", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"friends", Type:"Vec"}, FunctionArgumentMetadata{Name:"threshold", Type:"u16"}, FunctionArgumentMetadata{Name:"delay_period", Type:"T::BlockNumber"}}, Documentation:[]Text{" Create a recovery configuration for your account. This makes your account recoverable.", "", " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", " will be reserved for storing the recovery configuration. This deposit is returned", " in full when the user calls `remove_recovery`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `friends`: A list of friends you trust to vouch for recovery attempts.", " Should be ordered and contain no duplicate values.", " - `threshold`: The number of friends that must vouch for a recovery attempt", " before the account can be recovered. Should be less than or equal to", " the length of the list of friends.", " - `delay_period`: The number of blocks after a recovery attempt is initialized", " that needs to pass before the account can be recovered.", "", " # ", " - Key: F (len of friends)", " - One storage read to check that account is not already recoverable. O(1).", " - A check that the friends list is sorted and unique. O(F)", " - One currency reserve operation. O(X)", " - One storage write. O(1). Codec O(F).", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name:"initiate_recovery", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"account", Type:"T::AccountId"}}, Documentation:[]Text{" Initiate the process for recovering a recoverable account.", "", " Payment: `RecoveryDeposit` balance will be reserved for initiating the", " recovery process. This deposit will always be repatriated to the account", " trying to be recovered. See `close_recovery`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `account`: The lost account that you want to recover. This account", " needs to be recoverable (i.e. have a recovery configuration).", "", " # ", " - One storage read to check that account is recoverable. O(F)", " - One storage read to check that this recovery process hasn't already started. O(1)", " - One currency reserve operation. O(X)", " - One storage read to get the current block number. O(1)", " - One storage write. O(1).", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name:"vouch_recovery", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"lost", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"rescuer", Type:"T::AccountId"}}, Documentation:[]Text{" Allow a \"friend\" of a recoverable account to vouch for an active recovery", " process for that account.", "", " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", " for the recoverable account.", "", " Parameters:", " - `lost`: The lost account that you want to recover.", " - `rescuer`: The account trying to rescue the lost account that you", " want to vouch for.", "", " The combination of these two parameters must point to an active recovery", " process.", "", " # ", " Key: F (len of friends in config), V (len of vouching friends)", " - One storage read to get the recovery configuration. O(1), Codec O(F)", " - One storage read to get the active recovery process. O(1), Codec O(V)", " - One binary search to confirm caller is a friend. O(logF)", " - One binary search to confirm caller has not already vouched. O(logV)", " - One storage write. O(1), Codec O(V).", " - One event.", "", " Total Complexity: O(F + logF + V + logV)", " # "}}, FunctionMetadataV4{Name:"claim_recovery", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"account", Type:"T::AccountId"}}, Documentation:[]Text{" Allow a successful rescuer to claim their recovered account.", "", " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", " who has successfully completed the account recovery process: collected", " `threshold` or more vouches, waited `delay_period` blocks since initiation.", "", " Parameters:", " - `account`: The lost account that you want to claim has been successfully", " recovered by you.", "", " # ", " Key: F (len of friends in config), V (len of vouching friends)", " - One storage read to get the recovery configuration. O(1), Codec O(F)", " - One storage read to get the active recovery process. O(1), Codec O(V)", " - One storage read to get the current block number. O(1)", " - One storage write. O(1), Codec O(V).", " - One event.", "", " Total Complexity: O(F + V)", " # "}}, FunctionMetadataV4{Name:"close_recovery", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"rescuer", Type:"T::AccountId"}}, Documentation:[]Text{" As the controller of a recoverable account, close an active recovery", " process for your account.", "", " Payment: By calling this function, the recoverable account will receive", " the recovery deposit `RecoveryDeposit` placed by the rescuer.", "", " The dispatch origin for this call must be _Signed_ and must be a", " recoverable account with an active recovery process for it.", "", " Parameters:", " - `rescuer`: The account trying to rescue this recoverable account.", "", " # ", " Key: V (len of vouching friends)", " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", " - One balance call to repatriate reserved. O(X)", " - One event.", "", " Total Complexity: O(V + X)", " # "}}, FunctionMetadataV4{Name:"remove_recovery", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Remove the recovery process for your account. Recovered accounts are still accessible.", "", " NOTE: The user must make sure to call `close_recovery` on all active", " recovery attempts before calling this function else it will fail.", "", " Payment: By calling this function the recoverable account will unreserve", " their recovery configuration deposit.", " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", "", " The dispatch origin for this call must be _Signed_ and must be a", " recoverable account (i.e. has a recovery configuration).", "", " # ", " Key: F (len of friends)", " - One storage read to get the prefix iterator for active recoveries. O(1)", " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", " - One balance call to unreserved. O(X)", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name:"cancel_recovered", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"account", Type:"T::AccountId"}}, Documentation:[]Text{" Cancel the ability to use `as_recovered` for `account`.", "", " The dispatch origin for this call must be _Signed_ and registered to", " be able to make calls on behalf of the recovered account.", "", " Parameters:", " - `account`: The recovered account you are able to call on-behalf-of.", "", " # ", " - One storage mutation to check account is recovered by `who`. O(1)", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"RecoveryCreated", Args:[]Type{"AccountId"}, Documentation:[]Text{" A recovery process has been set up for an \\[account\\]."}}, EventMetadataV4{Name:"RecoveryInitiated", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" A recovery process has been initiated for lost account by rescuer account.", " \\[lost, rescuer\\]"}}, EventMetadataV4{Name:"RecoveryVouched", Args:[]Type{"AccountId", "AccountId", "AccountId"}, Documentation:[]Text{" A recovery process for lost account by rescuer account has been vouched for by sender.", " \\[lost, rescuer, sender\\]"}}, EventMetadataV4{Name:"RecoveryClosed", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" A recovery process for lost account by rescuer account has been closed.", " \\[lost, rescuer\\]"}}, EventMetadataV4{Name:"AccountRecovered", Args:[]Type{"AccountId", "AccountId"}, Documentation:[]Text{" Lost account has been successfully recovered by rescuer account.", " \\[lost, rescuer\\]"}}, EventMetadataV4{Name:"RecoveryRemoved", Args:[]Type{"AccountId"}, Documentation:[]Text{" A recovery process has been removed for an \\[account\\]."}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"ConfigDepositBase", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The base amount of currency needed to reserve for creating a recovery configuration.", "", " This is held for an additional storage item whose value size is", " `2 + sizeof(BlockNumber, Balance)` bytes."}}, ModuleConstantMetadataV6{Name:"FriendDepositFactor", Type:"BalanceOf", Value:Bytes{0x0, 0x20, 0x3d, 0x88, 0x79, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of currency needed per additional user when creating a recovery configuration.", "", " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage value."}}, ModuleConstantMetadataV6{Name:"MaxFriends", Type:"u16", Value:Bytes{0x9, 0x0}, Documentation:[]Text{" The maximum amount of friends allowed in a recovery configuration."}}, ModuleConstantMetadataV6{Name:"RecoveryDeposit", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The base amount of currency needed to reserve for starting a recovery.", "", " This is primarily held for deterring malicious recovery attempts, and should", " have a value large enough that a bad actor would choose not to place this", " deposit. It also acts to fund additional storage item whose value size is", " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", " threshold."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotAllowed", Documentation:[]Text{" User is not allowed to make a call on behalf of this account"}}, ErrorMetadataV8{Name:"ZeroThreshold", Documentation:[]Text{" Threshold must be greater than zero"}}, ErrorMetadataV8{Name:"NotEnoughFriends", Documentation:[]Text{" Friends list must be greater than zero and threshold"}}, ErrorMetadataV8{Name:"MaxFriends", Documentation:[]Text{" Friends list must be less than max friends"}}, ErrorMetadataV8{Name:"NotSorted", Documentation:[]Text{" Friends list must be sorted and free of duplicates"}}, ErrorMetadataV8{Name:"NotRecoverable", Documentation:[]Text{" This account is not set up for recovery"}}, ErrorMetadataV8{Name:"AlreadyRecoverable", Documentation:[]Text{" This account is already set up for recovery"}}, ErrorMetadataV8{Name:"AlreadyStarted", Documentation:[]Text{" A recovery process has already started for this account"}}, ErrorMetadataV8{Name:"NotStarted", Documentation:[]Text{" A recovery process has not started for this rescuer"}}, ErrorMetadataV8{Name:"NotFriend", Documentation:[]Text{" This account is not a friend who can vouch"}}, ErrorMetadataV8{Name:"DelayPeriod", Documentation:[]Text{" The friend must wait until the delay period to vouch for this recovery"}}, ErrorMetadataV8{Name:"AlreadyVouched", Documentation:[]Text{" This user has already vouched for this recovery"}}, ErrorMetadataV8{Name:"Threshold", Documentation:[]Text{" The threshold for recovering this account has not been met"}}, ErrorMetadataV8{Name:"StillActive", Documentation:[]Text{" There are still active recovery attempts that need to be closed"}}, ErrorMetadataV8{Name:"AlreadyProxy", Documentation:[]Text{" This account is already set up for recovery"}}, ErrorMetadataV8{Name:"BadState", Documentation:[]Text{" Some internal state is broken."}}}, Index:0x1b}, ModuleMetadataV13{Name:"Vesting", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Vesting", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Vesting", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AccountId", Value:"VestingInfo, T::BlockNumber>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Information regarding the vesting of a given account."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"vest", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Unlock any vested funds of the sender account.", "", " The dispatch origin for this call must be _Signed_ and the sender must have funds still", " locked under this pallet.", "", " Emits either `VestingCompleted` or `VestingUpdated`.", "", " # ", " - `O(1)`.", " - DbWeight: 2 Reads, 2 Writes", " - Reads: Vesting Storage, Balances Locks, [Sender Account]", " - Writes: Vesting Storage, Balances Locks, [Sender Account]", " # "}}, FunctionMetadataV4{Name:"vest_other", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"target", Type:"::Source"}}, Documentation:[]Text{" Unlock any vested funds of a `target` account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `target`: The account whose vested funds should be unlocked. Must have funds still", " locked under this pallet.", "", " Emits either `VestingCompleted` or `VestingUpdated`.", "", " # ", " - `O(1)`.", " - DbWeight: 3 Reads, 3 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account", " - Writes: Vesting Storage, Balances Locks, Target Account", " # "}}, FunctionMetadataV4{Name:"vested_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"target", Type:"::Source"}, FunctionArgumentMetadata{Name:"schedule", Type:"VestingInfo, T::BlockNumber>"}}, Documentation:[]Text{" Create a vested transfer.", "", " The dispatch origin for this call must be _Signed_.", "", " - `target`: The account that should be transferred the vested funds.", " - `amount`: The amount of funds to transfer and will be vested.", " - `schedule`: The vesting schedule attached to the transfer.", "", " Emits `VestingCreated`.", "", " # ", " - `O(1)`.", " - DbWeight: 3 Reads, 3 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", " # "}}, FunctionMetadataV4{Name:"force_vested_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"source", Type:"::Source"}, FunctionArgumentMetadata{Name:"target", Type:"::Source"}, FunctionArgumentMetadata{Name:"schedule", Type:"VestingInfo, T::BlockNumber>"}}, Documentation:[]Text{" Force a vested transfer.", "", " The dispatch origin for this call must be _Root_.", "", " - `source`: The account whose funds should be transferred.", " - `target`: The account that should be transferred the vested funds.", " - `amount`: The amount of funds to transfer and will be vested.", " - `schedule`: The vesting schedule attached to the transfer.", "", " Emits `VestingCreated`.", "", " # ", " - `O(1)`.", " - DbWeight: 4 Reads, 4 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"VestingUpdated", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" The amount vested has been updated. This could indicate more funds are available. The", " balance given is the amount which is left unvested (and thus locked).", " \\[account, unvested\\]"}}, EventMetadataV4{Name:"VestingCompleted", Args:[]Type{"AccountId"}, Documentation:[]Text{" An \\[account\\] has become fully vested. No further vesting can happen."}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"MinVestedTransfer", Type:"BalanceOf", Value:Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum amount transferred to call `vested_transfer`."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotVesting", Documentation:[]Text{" The account given is not vesting."}}, ErrorMetadataV8{Name:"ExistingVestingSchedule", Documentation:[]Text{" An existing vesting schedule already exists for this account that cannot be clobbered."}}, ErrorMetadataV8{Name:"AmountLow", Documentation:[]Text{" Amount being transferred is too low to create a vesting schedule."}}}, Index:0x1c}, ModuleMetadataV13{Name:"Scheduler", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Scheduler", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Agenda", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::BlockNumber", Value:"Vec::Call, T::BlockNumber, T::\nPalletsOrigin, T::AccountId>>>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Items to be executed, indexed by the block number that they should be executed on."}}, StorageFunctionMetadataV13{Name:"Lookup", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"Vec", Value:"TaskAddress", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Lookup from identity to the block number and index of the task."}}, StorageFunctionMetadataV13{Name:"StorageVersion", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Releases", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Storage version of the pallet.", "", " New networks start with last version."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"schedule", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"when", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"maybe_periodic", Type:"Option>"}, FunctionArgumentMetadata{Name:"priority", Type:"schedule::Priority"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Anonymously schedule a task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 22.29 + .126 * S µs", " - DB Weight:", " - Read: Agenda", " - Write: Agenda", " - Will use base weight of 25 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name:"cancel", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"when", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"index", Type:"u32"}}, Documentation:[]Text{" Cancel an anonymously scheduled task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 22.15 + 2.869 * S µs", " - DB Weight:", " - Read: Agenda", " - Write: Agenda, Lookup", " - Will use base weight of 100 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name:"schedule_named", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Vec"}, FunctionArgumentMetadata{Name:"when", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"maybe_periodic", Type:"Option>"}, FunctionArgumentMetadata{Name:"priority", Type:"schedule::Priority"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Schedule a named task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 29.6 + .159 * S µs", " - DB Weight:", " - Read: Agenda, Lookup", " - Write: Agenda, Lookup", " - Will use base weight of 35 which should be good for more than 30 scheduled calls", " # "}}, FunctionMetadataV4{Name:"cancel_named", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Vec"}}, Documentation:[]Text{" Cancel a named scheduled task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 24.91 + 2.907 * S µs", " - DB Weight:", " - Read: Agenda, Lookup", " - Write: Agenda, Lookup", " - Will use base weight of 100 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name:"schedule_after", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"after", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"maybe_periodic", Type:"Option>"}, FunctionArgumentMetadata{Name:"priority", Type:"schedule::Priority"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Anonymously schedule a task after a delay.", "", " # ", " Same as [`schedule`].", " # "}}, FunctionMetadataV4{Name:"schedule_named_after", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Vec"}, FunctionArgumentMetadata{Name:"after", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"maybe_periodic", Type:"Option>"}, FunctionArgumentMetadata{Name:"priority", Type:"schedule::Priority"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Schedule a named task after a delay.", "", " # ", " Same as [`schedule_named`].", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Scheduled", Args:[]Type{"BlockNumber", "u32"}, Documentation:[]Text{" Scheduled some task. \\[when, index\\]"}}, EventMetadataV4{Name:"Canceled", Args:[]Type{"BlockNumber", "u32"}, Documentation:[]Text{" Canceled some task. \\[when, index\\]"}}, EventMetadataV4{Name:"Dispatched", Args:[]Type{"TaskAddress", "Option>", "DispatchResult"}, Documentation:[]Text{" Dispatched some task. \\[task, id, result\\]"}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"FailedToSchedule", Documentation:[]Text{" Failed to schedule a call"}}, ErrorMetadataV8{Name:"NotFound", Documentation:[]Text{" Cannot find the scheduled call."}}, ErrorMetadataV8{Name:"TargetBlockNumberInPast", Documentation:[]Text{" Given target block number is in the past."}}, ErrorMetadataV8{Name:"RescheduleNoChange", Documentation:[]Text{" Reschedule failed because it does not change scheduled time."}}}, Index:0x1d}, ModuleMetadataV13{Name:"Proxy", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Proxy", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Proxies", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"(BoundedVec, T::MaxProxies,>, BalanceOf)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The set of account proxies. Maps the account which has delegated to the accounts", " which are being delegated to, together with the amount held on deposit."}}, StorageFunctionMetadataV13{Name:"Announcements", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"(BoundedVec, T::\n BlockNumber>, T::MaxPending,>, BalanceOf,)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The announcements made by the proxy (key)."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"proxy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"real", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"force_proxy_type", Type:"Option"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Dispatch the given `call` from an account that the sender is authorised for through", " `add_proxy`.", "", " Removes any corresponding announcement(s).", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", " - `call`: The call to be made by the `real` account.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name:"add_proxy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"delegate", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"proxy_type", Type:"T::ProxyType"}, FunctionArgumentMetadata{Name:"delay", Type:"T::BlockNumber"}}, Documentation:[]Text{" Register a proxy account for the sender that is able to make calls on its behalf.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `proxy`: The account that the `caller` would like to make a proxy.", " - `proxy_type`: The permissions allowed for this proxy account.", " - `delay`: The announcement period required of the initial proxy. Will generally be", " zero.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name:"remove_proxy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"delegate", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"proxy_type", Type:"T::ProxyType"}, FunctionArgumentMetadata{Name:"delay", Type:"T::BlockNumber"}}, Documentation:[]Text{" Unregister a proxy account for the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `proxy`: The account that the `caller` would like to remove as a proxy.", " - `proxy_type`: The permissions currently enabled for the removed proxy account.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name:"remove_proxies", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" Unregister all proxy accounts for the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " WARNING: This may be called on accounts created by `anonymous`, however if done, then", " the unreserved fees will be inaccessible. **All access to this account will be lost.**", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name:"anonymous", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proxy_type", Type:"T::ProxyType"}, FunctionArgumentMetadata{Name:"delay", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"index", Type:"u16"}}, Documentation:[]Text{" Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", " initialize it with a proxy of `proxy_type` for `origin` sender.", "", " Requires a `Signed` origin.", "", " - `proxy_type`: The type of the proxy that the sender will be registered as over the", " new account. This will almost always be the most permissive `ProxyType` possible to", " allow for maximum flexibility.", " - `index`: A disambiguation index, in case this is called multiple times in the same", " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", " want to use `0`.", " - `delay`: The announcement period required of the initial proxy. Will generally be", " zero.", "", " Fails with `Duplicate` if this has already been called in this transaction, from the", " same sender, with the same parameters.", "", " Fails if there are insufficient funds to pay for deposit.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # ", " TODO: Might be over counting 1 read"}}, FunctionMetadataV4{Name:"kill_anonymous", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"spawner", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"proxy_type", Type:"T::ProxyType"}, FunctionArgumentMetadata{Name:"index", Type:"u16"}, FunctionArgumentMetadata{Name:"height", Type:"Compact"}, FunctionArgumentMetadata{Name:"ext_index", Type:"Compact"}}, Documentation:[]Text{" Removes a previously spawned anonymous proxy.", "", " WARNING: **All access to this account will be lost.** Any funds held in it will be", " inaccessible.", "", " Requires a `Signed` origin, and the sender account must have been created by a call to", " `anonymous` with corresponding parameters.", "", " - `spawner`: The account that originally called `anonymous` to create this account.", " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", " - `proxy_type`: The proxy type originally passed to `anonymous`.", " - `height`: The height of the chain when the call to `anonymous` was processed.", " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", "", " Fails with `NoPermission` in case the caller is not a previously created anonymous", " account whose `anonymous` call has corresponding parameters.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name:"announce", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"real", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"call_hash", Type:"CallHashOf"}}, Documentation:[]Text{" Publish the hash of a proxy-call that will be made in the future.", "", " This must be called some number of blocks before the corresponding `proxy` is attempted", " if the delay associated with the proxy relationship is greater than zero.", "", " No more than `MaxPending` announcements may be made at any one time.", "", " This will take a deposit of `AnnouncementDepositFactor` as well as", " `AnnouncementDepositBase` if there are no other pending announcements.", "", " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `call_hash`: The hash of the call to be made by the `real` account.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}, FunctionMetadataV4{Name:"remove_announcement", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"real", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"call_hash", Type:"CallHashOf"}}, Documentation:[]Text{" Remove a given announcement.", "", " May be called by a proxy account to remove a call they previously announced and return", " the deposit.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `call_hash`: The hash of the call to be made by the `real` account.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}, FunctionMetadataV4{Name:"reject_announcement", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"delegate", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"call_hash", Type:"CallHashOf"}}, Documentation:[]Text{" Remove the given announcement of a delegate.", "", " May be called by a target (proxied) account to remove a call that one of their delegates", " (`delegate`) has announced they want to execute. The deposit is returned.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `delegate`: The account that previously announced the call.", " - `call_hash`: The hash of the call to be made.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}, FunctionMetadataV4{Name:"proxy_announced", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"delegate", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"real", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"force_proxy_type", Type:"Option"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Dispatch the given `call` from an account that the sender is authorized for through", " `add_proxy`.", "", " Removes any corresponding announcement(s).", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", " - `call`: The call to be made by the `real` account.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"ProxyExecuted", Args:[]Type{"DispatchResult"}, Documentation:[]Text{" A proxy was executed correctly, with the given \\[result\\]."}}, EventMetadataV4{Name:"AnonymousCreated", Args:[]Type{"AccountId", "AccountId", "ProxyType", "u16"}, Documentation:[]Text{" Anonymous account has been created by new proxy with given", " disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"}}, EventMetadataV4{Name:"Announced", Args:[]Type{"AccountId", "AccountId", "Hash"}, Documentation:[]Text{" An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"ProxyDepositBase", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0x9e, 0x54, 0x4c, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The base amount of currency needed to reserve for creating a proxy.", "", " This is held for an additional storage item whose value size is", " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."}}, ModuleConstantMetadataV6{Name:"ProxyDepositFactor", Type:"BalanceOf", Value:Bytes{0x0, 0x60, 0xaa, 0x77, 0x14, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of currency needed per proxy added.", "", " This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing", " storage value. Thus, when configuring `ProxyDepositFactor` one should take into account", " `32 + proxy_type.encode().len()` bytes of data."}}, ModuleConstantMetadataV6{Name:"MaxProxies", Type:"u32", Value:Bytes{0x20, 0x0, 0x0, 0x0}, Documentation:[]Text{" The maximum amount of proxies allowed for a single account."}}, ModuleConstantMetadataV6{Name:"MaxPending", Type:"u32", Value:Bytes{0x20, 0x0, 0x0, 0x0}, Documentation:[]Text{" The maximum amount of time-delayed announcements that are allowed to be pending."}}, ModuleConstantMetadataV6{Name:"AnnouncementDepositBase", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0x9e, 0x54, 0x4c, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The base amount of currency needed to reserve for creating an announcement.", "", " This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."}}, ModuleConstantMetadataV6{Name:"AnnouncementDepositFactor", Type:"BalanceOf", Value:Bytes{0x0, 0xc0, 0x54, 0xef, 0x28, 0x68, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of currency needed per announcement made.", "", " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", " into a pre-existing storage value."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"TooMany", Documentation:[]Text{" There are too many proxies registered or too many announcements pending."}}, ErrorMetadataV8{Name:"NotFound", Documentation:[]Text{" Proxy registration not found."}}, ErrorMetadataV8{Name:"NotProxy", Documentation:[]Text{" Sender is not a proxy of the account to be proxied."}}, ErrorMetadataV8{Name:"Unproxyable", Documentation:[]Text{" A call which is incompatible with the proxy type's filter was attempted."}}, ErrorMetadataV8{Name:"Duplicate", Documentation:[]Text{" Account is already a proxy."}}, ErrorMetadataV8{Name:"NoPermission", Documentation:[]Text{" Call may not be made by proxy because it may escalate its privileges."}}, ErrorMetadataV8{Name:"Unannounced", Documentation:[]Text{" Announcement, if made at all, was made too recently."}}, ErrorMetadataV8{Name:"NoSelfProxy", Documentation:[]Text{" Cannot add self as proxy."}}}, Index:0x1e}, ModuleMetadataV13{Name:"Multisig", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Multisig", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Multisigs", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key1:"T::AccountId", Key2:"[u8; 32]", Value:"Multisig, T::AccountId>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The set of open multisig operations."}}, StorageFunctionMetadataV13{Name:"Calls", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"[u8; 32]", Value:"(OpaqueCall, T::AccountId, BalanceOf)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text(nil)}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"as_multi_threshold_1", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"other_signatories", Type:"Vec"}, FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Immediately dispatch a multi-signature call using a single approval from the caller.", "", " The dispatch origin for this call must be _Signed_.", "", " - `other_signatories`: The accounts (other than the sender) who are part of the", " multi-signature, but do not participate in the approval process.", " - `call`: The call to be executed.", "", " Result is equivalent to the dispatched result.", "", " # ", " O(Z + C) where Z is the length of the call and C its execution weight.", " -------------------------------", " - DB Weight: None", " - Plus Call Weight", " # "}}, FunctionMetadataV4{Name:"as_multi", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"threshold", Type:"u16"}, FunctionArgumentMetadata{Name:"other_signatories", Type:"Vec"}, FunctionArgumentMetadata{Name:"maybe_timepoint", Type:"Option>"}, FunctionArgumentMetadata{Name:"call", Type:"OpaqueCall"}, FunctionArgumentMetadata{Name:"store_call", Type:"bool"}, FunctionArgumentMetadata{Name:"max_weight", Type:"Weight"}}, Documentation:[]Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " If there are enough, then dispatch the call.", "", " Payment: `DepositBase` will be reserved if this is the first approval, plus", " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call`: The call to be executed.", "", " NOTE: Unless this is the final approval, you will generally want to use", " `approve_as_multi` instead, since it only requires a hash of the call.", "", " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", " on success, result is `Ok` and the result from the interior call, if it was executed,", " may be found in the deposited `MultisigExecuted` event.", "", " # ", " - `O(S + Z + Call)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - The weight of the `call`.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `DepositBase + threshold * DepositFactor`.", " -------------------------------", " - DB Weight:", " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", " - Plus Call Weight", " # "}}, FunctionMetadataV4{Name:"approve_as_multi", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"threshold", Type:"u16"}, FunctionArgumentMetadata{Name:"other_signatories", Type:"Vec"}, FunctionArgumentMetadata{Name:"maybe_timepoint", Type:"Option>"}, FunctionArgumentMetadata{Name:"call_hash", Type:"[u8; 32]"}, FunctionArgumentMetadata{Name:"max_weight", Type:"Weight"}}, Documentation:[]Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " Payment: `DepositBase` will be reserved if this is the first approval, plus", " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call_hash`: The hash of the call to be executed.", "", " NOTE: If this is the final approval, you will want to use `as_multi` instead.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `DepositBase + threshold * DepositFactor`.", " ----------------------------------", " - DB Weight:", " - Read: Multisig Storage, [Caller Account]", " - Write: Multisig Storage, [Caller Account]", " # "}}, FunctionMetadataV4{Name:"cancel_as_multi", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"threshold", Type:"u16"}, FunctionArgumentMetadata{Name:"other_signatories", Type:"Vec"}, FunctionArgumentMetadata{Name:"timepoint", Type:"Timepoint"}, FunctionArgumentMetadata{Name:"call_hash", Type:"[u8; 32]"}}, Documentation:[]Text{" Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", " for this operation will be unreserved on success.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `timepoint`: The timepoint (block number and transaction index) of the first approval", " transaction for this dispatch.", " - `call_hash`: The hash of the call to be executed.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - One event.", " - I/O: 1 read `O(S)`, one remove.", " - Storage: removes one item.", " ----------------------------------", " - DB Weight:", " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"NewMultisig", Args:[]Type{"AccountId", "AccountId", "CallHash"}, Documentation:[]Text{" A new multisig operation has begun. \\[approving, multisig, call_hash\\]"}}, EventMetadataV4{Name:"MultisigApproval", Args:[]Type{"AccountId", "Timepoint", "AccountId", "CallHash"}, Documentation:[]Text{" A multisig operation has been approved by someone.", " \\[approving, timepoint, multisig, call_hash\\]"}}, EventMetadataV4{Name:"MultisigExecuted", Args:[]Type{"AccountId", "Timepoint", "AccountId", "CallHash", "DispatchResult"}, Documentation:[]Text{" A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]"}}, EventMetadataV4{Name:"MultisigCancelled", Args:[]Type{"AccountId", "Timepoint", "AccountId", "CallHash"}, Documentation:[]Text{" A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"DepositBase", Type:"BalanceOf", Value:Bytes{0x0, 0xf0, 0x1c, 0xa, 0xdb, 0xed, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The base amount of currency needed to reserve for creating a multisig execution or to store", " a dispatch call for later.", "", " This is held for an additional storage item whose value size is", " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", " `32 + sizeof(AccountId)` bytes."}}, ModuleConstantMetadataV6{Name:"DepositFactor", Type:"BalanceOf", Value:Bytes{0x0, 0x0, 0xcc, 0x7b, 0x9f, 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount of currency needed per unit threshold when creating a multisig execution.", "", " This is held for adding 32 bytes more into a pre-existing storage value."}}, ModuleConstantMetadataV6{Name:"MaxSignatories", Type:"u16", Value:Bytes{0x64, 0x0}, Documentation:[]Text{" The maximum amount of signatories allowed in the multisig."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"MinimumThreshold", Documentation:[]Text{" Threshold must be 2 or greater."}}, ErrorMetadataV8{Name:"AlreadyApproved", Documentation:[]Text{" Call is already approved by this signatory."}}, ErrorMetadataV8{Name:"NoApprovalsNeeded", Documentation:[]Text{" Call doesn't need any (more) approvals."}}, ErrorMetadataV8{Name:"TooFewSignatories", Documentation:[]Text{" There are too few signatories in the list."}}, ErrorMetadataV8{Name:"TooManySignatories", Documentation:[]Text{" There are too many signatories in the list."}}, ErrorMetadataV8{Name:"SignatoriesOutOfOrder", Documentation:[]Text{" The signatories were provided out of order; they should be ordered."}}, ErrorMetadataV8{Name:"SenderInSignatories", Documentation:[]Text{" The sender was contained in the other signatories; it shouldn't be."}}, ErrorMetadataV8{Name:"NotFound", Documentation:[]Text{" Multisig operation not found when attempting to cancel."}}, ErrorMetadataV8{Name:"NotOwner", Documentation:[]Text{" Only the account that originally created the multisig is able to cancel it."}}, ErrorMetadataV8{Name:"NoTimepoint", Documentation:[]Text{" No timepoint was given, yet the multisig operation is already underway."}}, ErrorMetadataV8{Name:"WrongTimepoint", Documentation:[]Text{" A different timepoint was given to the multisig operation that is underway."}}, ErrorMetadataV8{Name:"UnexpectedTimepoint", Documentation:[]Text{" A timepoint was given, yet no multisig operation is underway."}}, ErrorMetadataV8{Name:"MaxWeightTooLow", Documentation:[]Text{" The maximum weight information provided was too low."}}, ErrorMetadataV8{Name:"AlreadyStored", Documentation:[]Text{" The data to be stored is already stored."}}}, Index:0x1f}, ModuleMetadataV13{Name:"Bounties", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Treasury", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"BountyCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BountyIndex", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Number of bounty proposals that have been made."}}, StorageFunctionMetadataV13{Name:"Bounties", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"BountyIndex", Value:"Bounty, T::BlockNumber>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Bounties that have been made."}}, StorageFunctionMetadataV13{Name:"BountyDescriptions", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"BountyIndex", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The description of each bounty."}}, StorageFunctionMetadataV13{Name:"BountyApprovals", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Bounty indices that have been approved but not yet funded."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"propose_bounty", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"value", Type:"Compact>"}, FunctionArgumentMetadata{Name:"description", Type:"Vec"}}, Documentation:[]Text{" Propose a new bounty.", "", " The dispatch origin for this call must be _Signed_.", "", " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", " or slashed when rejected.", "", " - `curator`: The curator account whom will manage this bounty.", " - `fee`: The curator fee.", " - `value`: The total payment amount of this bounty, curator fee included.", " - `description`: The description of this bounty."}}, FunctionMetadataV4{Name:"approve_bounty", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}}, Documentation:[]Text{" Approve a bounty proposal. At a later time, the bounty will be funded and become active", " and the original deposit will be returned.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"propose_curator", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}, FunctionArgumentMetadata{Name:"curator", Type:"::Source"}, FunctionArgumentMetadata{Name:"fee", Type:"Compact>"}}, Documentation:[]Text{" Assign a curator to a funded bounty.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"unassign_curator", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}}, Documentation:[]Text{" Unassign curator from a bounty.", "", " This function can only be called by the `RejectOrigin` a signed origin.", "", " If this function is called by the `RejectOrigin`, we assume that the curator is malicious", " or inactive. As a result, we will slash the curator when possible.", "", " If the origin is the curator, we take this as a sign they are unable to do their job and", " they willingly give up. We could slash them, but for now we allow them to recover their", " deposit and exit without issue. (We may want to change this if it is abused.)", "", " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", " anyone in the community to call out that a curator is not doing their due diligence, and", " we should pick a new curator. In this case the curator should also be slashed.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"accept_curator", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}}, Documentation:[]Text{" Accept the curator role for a bounty.", " A deposit will be reserved from curator and refund upon successful payout.", "", " May only be called from the curator.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"award_bounty", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}, FunctionArgumentMetadata{Name:"beneficiary", Type:"::Source"}}, Documentation:[]Text{" Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.", "", " The dispatch origin for this call must be the curator of this bounty.", "", " - `bounty_id`: Bounty ID to award.", " - `beneficiary`: The beneficiary account whom will receive the payout.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"claim_bounty", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}}, Documentation:[]Text{" Claim the payout from an awarded bounty after payout delay.", "", " The dispatch origin for this call must be the beneficiary of this bounty.", "", " - `bounty_id`: Bounty ID to claim.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"close_bounty", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}}, Documentation:[]Text{" Cancel a proposed or active bounty. All the funds will be sent to treasury and", " the curator deposit will be unreserved if possible.", "", " Only `T::RejectOrigin` is able to cancel a bounty.", "", " - `bounty_id`: Bounty ID to cancel.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name:"extend_bounty_expiry", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"bounty_id", Type:"Compact"}, FunctionArgumentMetadata{Name:"_remark", Type:"Vec"}}, Documentation:[]Text{" Extend the expiry time of an active bounty.", "", " The dispatch origin for this call must be the curator of this bounty.", "", " - `bounty_id`: Bounty ID to extend.", " - `remark`: additional information.", "", " # ", " - O(1).", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"BountyProposed", Args:[]Type{"BountyIndex"}, Documentation:[]Text{" New bounty proposal. \\[index\\]"}}, EventMetadataV4{Name:"BountyRejected", Args:[]Type{"BountyIndex", "Balance"}, Documentation:[]Text{" A bounty proposal was rejected; funds were slashed. \\[index, bond\\]"}}, EventMetadataV4{Name:"BountyBecameActive", Args:[]Type{"BountyIndex"}, Documentation:[]Text{" A bounty proposal is funded and became active. \\[index\\]"}}, EventMetadataV4{Name:"BountyAwarded", Args:[]Type{"BountyIndex", "AccountId"}, Documentation:[]Text{" A bounty is awarded to a beneficiary. \\[index, beneficiary\\]"}}, EventMetadataV4{Name:"BountyClaimed", Args:[]Type{"BountyIndex", "Balance", "AccountId"}, Documentation:[]Text{" A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]"}}, EventMetadataV4{Name:"BountyCanceled", Args:[]Type{"BountyIndex"}, Documentation:[]Text{" A bounty is cancelled. \\[index\\]"}}, EventMetadataV4{Name:"BountyExtended", Args:[]Type{"BountyIndex"}, Documentation:[]Text{" A bounty expiry is extended. \\[index\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"DataDepositPerByte", Type:"BalanceOf", Value:Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit per byte within bounty description."}}, ModuleConstantMetadataV6{Name:"BountyDepositBase", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit for placing a bounty proposal."}}, ModuleConstantMetadataV6{Name:"BountyDepositPayoutDelay", Type:"T::BlockNumber", Value:Bytes{0x80, 0x70, 0x0, 0x0}, Documentation:[]Text{" The delay period for which a bounty beneficiary need to wait before claim the payout."}}, ModuleConstantMetadataV6{Name:"BountyUpdatePeriod", Type:"T::BlockNumber", Value:Bytes{0x0, 0x27, 0x6, 0x0}, Documentation:[]Text{" Bounty duration in blocks."}}, ModuleConstantMetadataV6{Name:"BountyCuratorDeposit", Type:"Permill", Value:Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation:[]Text{" Percentage of the curator fee that will be reserved upfront as deposit for bounty curator."}}, ModuleConstantMetadataV6{Name:"BountyValueMinimum", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Minimum value for a bounty."}}, ModuleConstantMetadataV6{Name:"MaximumReasonLength", Type:"u32", Value:Bytes{0x0, 0x40, 0x0, 0x0}, Documentation:[]Text{" Maximum acceptable reason length."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InsufficientProposersBalance", Documentation:[]Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name:"InvalidIndex", Documentation:[]Text{" No proposal or bounty at that index."}}, ErrorMetadataV8{Name:"ReasonTooBig", Documentation:[]Text{" The reason given is just too big."}}, ErrorMetadataV8{Name:"UnexpectedStatus", Documentation:[]Text{" The bounty status is unexpected."}}, ErrorMetadataV8{Name:"RequireCurator", Documentation:[]Text{" Require bounty curator."}}, ErrorMetadataV8{Name:"InvalidValue", Documentation:[]Text{" Invalid bounty value."}}, ErrorMetadataV8{Name:"InvalidFee", Documentation:[]Text{" Invalid bounty fee."}}, ErrorMetadataV8{Name:"PendingPayout", Documentation:[]Text{" A bounty payout is pending.", " To cancel the bounty, you must unassign and slash the curator."}}, ErrorMetadataV8{Name:"Premature", Documentation:[]Text{" The bounties cannot be claimed/closed because it's still in the countdown period."}}}, Index:0x20}, ModuleMetadataV13{Name:"Tips", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Treasury", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Tips", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::Hash", Value:"OpenTip, T::BlockNumber, T::Hash>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", " This has the insecure enumerable hash function since the key itself is already", " guaranteed to be a secure hash."}}, StorageFunctionMetadataV13{Name:"Reasons", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"T::Hash", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Simple preimage lookup from the reason's hash to the original data. Again, has an", " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"report_awesome", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"reason", Type:"Vec"}, FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}}, Documentation:[]Text{" Report something `reason` that deserves a tip and claim any eventual the finder's fee.", "", " The dispatch origin for this call must be _Signed_.", "", " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", " `DataDepositPerByte` for each byte in `reason`.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", "", " Emits `NewTip` if successful.", "", " # ", " - Complexity: `O(R)` where `R` length of `reason`.", " - encoding and hashing of 'reason'", " - DbReads: `Reasons`, `Tips`", " - DbWrites: `Reasons`, `Tips`", " # "}}, FunctionMetadataV4{Name:"retract_tip", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"hash", Type:"T::Hash"}}, Documentation:[]Text{" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", "", " If successful, the original deposit will be unreserved.", "", " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", " must have been reported by the signing account through `report_awesome` (and not", " through `tip_new`).", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " Emits `TipRetracted` if successful.", "", " # ", " - Complexity: `O(1)`", " - Depends on the length of `T::Hash` which is fixed.", " - DbReads: `Tips`, `origin account`", " - DbWrites: `Reasons`, `Tips`, `origin account`", " # "}}, FunctionMetadataV4{Name:"tip_new", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"reason", Type:"Vec"}, FunctionArgumentMetadata{Name:"who", Type:"T::AccountId"}, FunctionArgumentMetadata{Name:"tip_value", Type:"Compact>"}}, Documentation:[]Text{" Give a tip for something new; no finder's fee will be taken.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `NewTip` if successful.", "", " # ", " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", " - `O(T)`: decoding `Tipper` vec of length `T`", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " - `O(R)`: hashing and encoding of reason of length `R`", " - DbReads: `Tippers`, `Reasons`", " - DbWrites: `Reasons`, `Tips`", " # "}}, FunctionMetadataV4{Name:"tip", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"hash", Type:"T::Hash"}, FunctionArgumentMetadata{Name:"tip_value", Type:"Compact>"}}, Documentation:[]Text{" Declare a tip value for an already-open tip.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", " account ID.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", " has started.", "", " # ", " - Complexity: `O(T)` where `T` is the number of tippers.", " decoding `Tipper` vec of length `T`, insert tip and check closing,", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", "", " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", " is weighted as if almost full i.e of length `T-1`.", " - DbReads: `Tippers`, `Tips`", " - DbWrites: `Tips`", " # "}}, FunctionMetadataV4{Name:"close_tip", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"hash", Type:"T::Hash"}}, Documentation:[]Text{" Close and payout a tip.", "", " The dispatch origin for this call must be _Signed_.", "", " The tip identified by `hash` must have finished its countdown period.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " # ", " - Complexity: `O(T)` where `T` is the number of tippers.", " decoding `Tipper` vec of length `T`.", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " - DbReads: `Tips`, `Tippers`, `tip finder`", " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", " # "}}, FunctionMetadataV4{Name:"slash_tip", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"hash", Type:"T::Hash"}}, Documentation:[]Text{" Remove and slash an already-open tip.", "", " May only be called from `T::RejectOrigin`.", "", " As a result, the finder is slashed and the deposits are lost.", "", " Emits `TipSlashed` if successful.", "", " # ", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"NewTip", Args:[]Type{"Hash"}, Documentation:[]Text{" A new tip suggestion has been opened. \\[tip_hash\\]"}}, EventMetadataV4{Name:"TipClosing", Args:[]Type{"Hash"}, Documentation:[]Text{" A tip suggestion has reached threshold and is closing. \\[tip_hash\\]"}}, EventMetadataV4{Name:"TipClosed", Args:[]Type{"Hash", "AccountId", "Balance"}, Documentation:[]Text{" A tip suggestion has been closed. \\[tip_hash, who, payout\\]"}}, EventMetadataV4{Name:"TipRetracted", Args:[]Type{"Hash"}, Documentation:[]Text{" A tip suggestion has been retracted. \\[tip_hash\\]"}}, EventMetadataV4{Name:"TipSlashed", Args:[]Type{"Hash", "AccountId", "Balance"}, Documentation:[]Text{" A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"TipCountdown", Type:"T::BlockNumber", Value:Bytes{0x80, 0x70, 0x0, 0x0}, Documentation:[]Text{" The period for which a tip remains open after is has achieved threshold tippers."}}, ModuleConstantMetadataV6{Name:"TipFindersFee", Type:"Percent", Value:Bytes{0x14}, Documentation:[]Text{" The amount of the final tip which goes to the original reporter of the tip."}}, ModuleConstantMetadataV6{Name:"TipReportDepositBase", Type:"BalanceOf", Value:Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit for placing a tip report."}}, ModuleConstantMetadataV6{Name:"DataDepositPerByte", Type:"BalanceOf", Value:Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The amount held on deposit per byte within the tip report reason."}}, ModuleConstantMetadataV6{Name:"MaximumReasonLength", Type:"u32", Value:Bytes{0x0, 0x40, 0x0, 0x0}, Documentation:[]Text{" Maximum acceptable reason length."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"ReasonTooBig", Documentation:[]Text{" The reason given is just too big."}}, ErrorMetadataV8{Name:"AlreadyKnown", Documentation:[]Text{" The tip was already found/started."}}, ErrorMetadataV8{Name:"UnknownTip", Documentation:[]Text{" The tip hash is unknown."}}, ErrorMetadataV8{Name:"NotFinder", Documentation:[]Text{" The account attempting to retract the tip is not the finder of the tip."}}, ErrorMetadataV8{Name:"StillOpen", Documentation:[]Text{" The tip cannot be claimed/closed because there are not enough tippers yet."}}, ErrorMetadataV8{Name:"Premature", Documentation:[]Text{" The tip cannot be claimed/closed because it's still in the countdown period."}}}, Index:0x21}, ModuleMetadataV13{Name:"Assets", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Assets", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Asset", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AssetId", Value:"AssetDetails>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Details of an asset."}}, StorageFunctionMetadataV13{Name:"Account", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"T::AssetId", Key2:"T::AccountId", Value:"AssetBalance", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The number of units of assets held by any given account."}}, StorageFunctionMetadataV13{Name:"Approvals", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:true, AsNMap:NMapTypeV13{Keys:[]Type{"T::AssetId", "T::AccountId", "T::AccountId"}, Hashers:[]StorageHasherV10{StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, Value:"Approval>"}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Approved balance transfers. First balance is the amount approved for transfer. Second", " is the amount of `T::Currency` reserved for storing this.", " First key is the asset ID, second key is the owner and third key is the delegate."}}, StorageFunctionMetadataV13{Name:"Metadata", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::AssetId", Value:"AssetMetadata, BoundedVec\n>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Metadata of an asset."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"create", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"admin", Type:"::Source"}, FunctionArgumentMetadata{Name:"min_balance", Type:"T::Balance"}}, Documentation:[]Text{" Issue a new class of fungible assets from a public origin.", "", " This new asset class has no assets initially and its owner is the origin.", "", " The origin must be Signed and the sender must have sufficient funds free.", "", " Funds of sender are reserved by `AssetDeposit`.", "", " Parameters:", " - `id`: The identifier of the new asset. This must not be currently in use to identify", " an existing asset.", " - `admin`: The admin of this class of assets. The admin is the initial address of each", " member of the asset class's admin team.", " - `min_balance`: The minimum balance of this new asset that any single account must", " have. If an account's balance is reduced below this, then it collapses to zero.", "", " Emits `Created` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"force_create", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}, FunctionArgumentMetadata{Name:"is_sufficient", Type:"bool"}, FunctionArgumentMetadata{Name:"min_balance", Type:"Compact"}}, Documentation:[]Text{" Issue a new class of fungible assets from a privileged origin.", "", " This new asset class has no assets initially.", "", " The origin must conform to `ForceOrigin`.", "", " Unlike `create`, no funds are reserved.", "", " - `id`: The identifier of the new asset. This must not be currently in use to identify", " an existing asset.", " - `owner`: The owner of this class of assets. The owner has full superuser permissions", " over this asset, but may later change and configure the permissions using `transfer_ownership`", " and `set_team`.", " - `min_balance`: The minimum balance of this new asset that any single account must", " have. If an account's balance is reduced below this, then it collapses to zero.", "", " Emits `ForceCreated` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"destroy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"witness", Type:"DestroyWitness"}}, Documentation:[]Text{" Destroy a class of fungible assets.", "", " The origin must conform to `ForceOrigin` or must be Signed and the sender must be the", " owner of the asset `id`.", "", " - `id`: The identifier of the asset to be destroyed. This must identify an existing", " asset.", "", " Emits `Destroyed` event when successful.", "", " Weight: `O(c + p + a)` where:", " - `c = (witness.accounts - witness.sufficients)`", " - `s = witness.sufficients`", " - `a = witness.approvals`"}}, FunctionMetadataV4{Name:"mint", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"beneficiary", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Mint assets of a particular class.", "", " The origin must be Signed and the sender must be the Issuer of the asset `id`.", "", " - `id`: The identifier of the asset to have some amount minted.", " - `beneficiary`: The account to be credited with the minted assets.", " - `amount`: The amount of the asset to be minted.", "", " Emits `Issued` event when successful.", "", " Weight: `O(1)`", " Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."}}, FunctionMetadataV4{Name:"burn", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"who", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", "", " Origin must be Signed and the sender should be the Manager of the asset `id`.", "", " Bails with `BalanceZero` if the `who` is already dead.", "", " - `id`: The identifier of the asset to have some amount burned.", " - `who`: The account to be debited from.", " - `amount`: The maximum amount by which `who`'s balance should be reduced.", "", " Emits `Burned` with the actual amount burned. If this takes the balance to below the", " minimum for the asset, then the amount burned is increased to take it to zero.", "", " Weight: `O(1)`", " Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."}}, FunctionMetadataV4{Name:"transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"target", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Move some assets from the sender account to another.", "", " Origin must be Signed.", "", " - `id`: The identifier of the asset to have some amount transferred.", " - `target`: The account to be credited.", " - `amount`: The amount by which the sender's balance of assets should be reduced and", " `target`'s balance increased. The amount actually transferred may be slightly greater in", " the case that the transfer would otherwise take the sender balance above zero but below", " the minimum balance. Must be greater than zero.", "", " Emits `Transferred` with the actual amount transferred. If this takes the source balance", " to below the minimum for the asset, then the amount transferred is increased to take it", " to zero.", "", " Weight: `O(1)`", " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", " `target`."}}, FunctionMetadataV4{Name:"transfer_keep_alive", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"target", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Move some assets from the sender account to another, keeping the sender account alive.", "", " Origin must be Signed.", "", " - `id`: The identifier of the asset to have some amount transferred.", " - `target`: The account to be credited.", " - `amount`: The amount by which the sender's balance of assets should be reduced and", " `target`'s balance increased. The amount actually transferred may be slightly greater in", " the case that the transfer would otherwise take the sender balance above zero but below", " the minimum balance. Must be greater than zero.", "", " Emits `Transferred` with the actual amount transferred. If this takes the source balance", " to below the minimum for the asset, then the amount transferred is increased to take it", " to zero.", "", " Weight: `O(1)`", " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", " `target`."}}, FunctionMetadataV4{Name:"force_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"source", Type:"::Source"}, FunctionArgumentMetadata{Name:"dest", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Move some assets from one account to another.", "", " Origin must be Signed and the sender should be the Admin of the asset `id`.", "", " - `id`: The identifier of the asset to have some amount transferred.", " - `source`: The account to be debited.", " - `dest`: The account to be credited.", " - `amount`: The amount by which the `source`'s balance of assets should be reduced and", " `dest`'s balance increased. The amount actually transferred may be slightly greater in", " the case that the transfer would otherwise take the `source` balance above zero but", " below the minimum balance. Must be greater than zero.", "", " Emits `Transferred` with the actual amount transferred. If this takes the source balance", " to below the minimum for the asset, then the amount transferred is increased to take it", " to zero.", "", " Weight: `O(1)`", " Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", " `dest`."}}, FunctionMetadataV4{Name:"freeze", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"who", Type:"::Source"}}, Documentation:[]Text{" Disallow further unprivileged transfers from an account.", "", " Origin must be Signed and the sender should be the Freezer of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", " - `who`: The account to be frozen.", "", " Emits `Frozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"thaw", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"who", Type:"::Source"}}, Documentation:[]Text{" Allow unprivileged transfers from an account again.", "", " Origin must be Signed and the sender should be the Admin of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", " - `who`: The account to be unfrozen.", "", " Emits `Thawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"freeze_asset", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}}, Documentation:[]Text{" Disallow further unprivileged transfers for the asset class.", "", " Origin must be Signed and the sender should be the Freezer of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", "", " Emits `Frozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"thaw_asset", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}}, Documentation:[]Text{" Allow unprivileged transfers for the asset again.", "", " Origin must be Signed and the sender should be the Admin of the asset `id`.", "", " - `id`: The identifier of the asset to be thawed.", "", " Emits `Thawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"transfer_ownership", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}}, Documentation:[]Text{" Change the Owner of an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " - `id`: The identifier of the asset.", " - `owner`: The new Owner of this asset.", "", " Emits `OwnerChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"set_team", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"issuer", Type:"::Source"}, FunctionArgumentMetadata{Name:"admin", Type:"::Source"}, FunctionArgumentMetadata{Name:"freezer", Type:"::Source"}}, Documentation:[]Text{" Change the Issuer, Admin and Freezer of an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", " - `issuer`: The new Issuer of this asset.", " - `admin`: The new Admin of this asset.", " - `freezer`: The new Freezer of this asset.", "", " Emits `TeamChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"set_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"name", Type:"Vec"}, FunctionArgumentMetadata{Name:"symbol", Type:"Vec"}, FunctionArgumentMetadata{Name:"decimals", Type:"u8"}}, Documentation:[]Text{" Set the metadata for an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " Funds of sender are reserved according to the formula:", " `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", " account any already reserved funds.", "", " - `id`: The identifier of the asset to update.", " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", " - `decimals`: The number of decimals this asset uses to represent one unit.", "", " Emits `MetadataSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"clear_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}}, Documentation:[]Text{" Clear the metadata for an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " Any deposit is freed for the asset owner.", "", " - `id`: The identifier of the asset to clear.", "", " Emits `MetadataCleared`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"force_set_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"name", Type:"Vec"}, FunctionArgumentMetadata{Name:"symbol", Type:"Vec"}, FunctionArgumentMetadata{Name:"decimals", Type:"u8"}, FunctionArgumentMetadata{Name:"is_frozen", Type:"bool"}}, Documentation:[]Text{" Force the metadata for an asset to some value.", "", " Origin must be ForceOrigin.", "", " Any deposit is left alone.", "", " - `id`: The identifier of the asset to update.", " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", " - `decimals`: The number of decimals this asset uses to represent one unit.", "", " Emits `MetadataSet`.", "", " Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."}}, FunctionMetadataV4{Name:"force_clear_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}}, Documentation:[]Text{" Clear the metadata for an asset.", "", " Origin must be ForceOrigin.", "", " Any deposit is returned.", "", " - `id`: The identifier of the asset to clear.", "", " Emits `MetadataCleared`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"force_asset_status", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}, FunctionArgumentMetadata{Name:"issuer", Type:"::Source"}, FunctionArgumentMetadata{Name:"admin", Type:"::Source"}, FunctionArgumentMetadata{Name:"freezer", Type:"::Source"}, FunctionArgumentMetadata{Name:"min_balance", Type:"Compact"}, FunctionArgumentMetadata{Name:"is_sufficient", Type:"bool"}, FunctionArgumentMetadata{Name:"is_frozen", Type:"bool"}}, Documentation:[]Text{" Alter the attributes of a given asset.", "", " Origin must be `ForceOrigin`.", "", " - `id`: The identifier of the asset.", " - `owner`: The new Owner of this asset.", " - `issuer`: The new Issuer of this asset.", " - `admin`: The new Admin of this asset.", " - `freezer`: The new Freezer of this asset.", " - `min_balance`: The minimum balance of this new asset that any single account must", " have. If an account's balance is reduced below this, then it collapses to zero.", " - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", " value to account for the state bloat associated with its balance storage. If set to", " `true`, then non-zero balances may be stored without a `consumer` reference (and thus", " an ED in the Balances pallet or whatever else is used to control user-account state", " growth).", " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", " instructions.", "", " Emits `AssetStatusChanged` with the identity of the asset.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"approve_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"delegate", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Approve an amount of asset for transfer by a delegated third-party account.", "", " Origin must be Signed.", "", " Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", " for the purpose of holding the approval. If some non-zero amount of assets is already", " approved from signing account to `delegate`, then it is topped up or unreserved to", " meet the right value.", "", " NOTE: The signing account does not need to own `amount` of assets at the point of", " making this call.", "", " - `id`: The identifier of the asset.", " - `delegate`: The account to delegate permission to transfer asset.", " - `amount`: The amount of asset that may be transferred by `delegate`. If there is", " already an approval in place, then this acts additively.", "", " Emits `ApprovedTransfer` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"cancel_approval", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"delegate", Type:"::Source"}}, Documentation:[]Text{" Cancel all of some asset approved for delegated transfer by a third-party account.", "", " Origin must be Signed and there must be an approval in place between signer and", " `delegate`.", "", " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", "", " - `id`: The identifier of the asset.", " - `delegate`: The account delegated permission to transfer asset.", "", " Emits `ApprovalCancelled` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"force_cancel_approval", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}, FunctionArgumentMetadata{Name:"delegate", Type:"::Source"}}, Documentation:[]Text{" Cancel all of some asset approved for delegated transfer by a third-party account.", "", " Origin must be either ForceOrigin or Signed origin with the signer being the Admin", " account of the asset `id`.", "", " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", "", " - `id`: The identifier of the asset.", " - `delegate`: The account delegated permission to transfer asset.", "", " Emits `ApprovalCancelled` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"transfer_approved", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"id", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}, FunctionArgumentMetadata{Name:"destination", Type:"::Source"}, FunctionArgumentMetadata{Name:"amount", Type:"Compact"}}, Documentation:[]Text{" Transfer some asset balance from a previously delegated account to some third-party", " account.", "", " Origin must be Signed and there must be an approval in place by the `owner` to the", " signer.", "", " If the entire amount approved for transfer is transferred, then any deposit previously", " reserved by `approve_transfer` is unreserved.", "", " - `id`: The identifier of the asset.", " - `owner`: The account which previously approved for a transfer of at least `amount` and", " from which the asset balance will be withdrawn.", " - `destination`: The account to which the asset balance of `amount` will be transferred.", " - `amount`: The amount of assets to transfer.", "", " Emits `TransferredApproved` on success.", "", " Weight: `O(1)`"}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Created", Args:[]Type{"AssetId", "AccountId", "AccountId"}, Documentation:[]Text{" Some asset class was created. \\[asset_id, creator, owner\\]"}}, EventMetadataV4{Name:"Issued", Args:[]Type{"AssetId", "AccountId", "Balance"}, Documentation:[]Text{" Some assets were issued. \\[asset_id, owner, total_supply\\]"}}, EventMetadataV4{Name:"Transferred", Args:[]Type{"AssetId", "AccountId", "AccountId", "Balance"}, Documentation:[]Text{" Some assets were transferred. \\[asset_id, from, to, amount\\]"}}, EventMetadataV4{Name:"Burned", Args:[]Type{"AssetId", "AccountId", "Balance"}, Documentation:[]Text{" Some assets were destroyed. \\[asset_id, owner, balance\\]"}}, EventMetadataV4{Name:"TeamChanged", Args:[]Type{"AssetId", "AccountId", "AccountId", "AccountId"}, Documentation:[]Text{" The management team changed \\[asset_id, issuer, admin, freezer\\]"}}, EventMetadataV4{Name:"OwnerChanged", Args:[]Type{"AssetId", "AccountId"}, Documentation:[]Text{" The owner changed \\[asset_id, owner\\]"}}, EventMetadataV4{Name:"Frozen", Args:[]Type{"AssetId", "AccountId"}, Documentation:[]Text{" Some account `who` was frozen. \\[asset_id, who\\]"}}, EventMetadataV4{Name:"Thawed", Args:[]Type{"AssetId", "AccountId"}, Documentation:[]Text{" Some account `who` was thawed. \\[asset_id, who\\]"}}, EventMetadataV4{Name:"AssetFrozen", Args:[]Type{"AssetId"}, Documentation:[]Text{" Some asset `asset_id` was frozen. \\[asset_id\\]"}}, EventMetadataV4{Name:"AssetThawed", Args:[]Type{"AssetId"}, Documentation:[]Text{" Some asset `asset_id` was thawed. \\[asset_id\\]"}}, EventMetadataV4{Name:"Destroyed", Args:[]Type{"AssetId"}, Documentation:[]Text{" An asset class was destroyed."}}, EventMetadataV4{Name:"ForceCreated", Args:[]Type{"AssetId", "AccountId"}, Documentation:[]Text{" Some asset class was force-created. \\[asset_id, owner\\]"}}, EventMetadataV4{Name:"MetadataSet", Args:[]Type{"AssetId", "Vec", "Vec", "u8", "bool"}, Documentation:[]Text{" New metadata has been set for an asset. \\[asset_id, name, symbol, decimals, is_frozen\\]"}}, EventMetadataV4{Name:"MetadataCleared", Args:[]Type{"AssetId"}, Documentation:[]Text{" Metadata has been cleared for an asset. \\[asset_id\\]"}}, EventMetadataV4{Name:"ApprovedTransfer", Args:[]Type{"AssetId", "AccountId", "AccountId", "Balance"}, Documentation:[]Text{" (Additional) funds have been approved for transfer to a destination account.", " \\[asset_id, source, delegate, amount\\]"}}, EventMetadataV4{Name:"ApprovalCancelled", Args:[]Type{"AssetId", "AccountId", "AccountId"}, Documentation:[]Text{" An approval for account `delegate` was cancelled by `owner`.", " \\[id, owner, delegate\\]"}}, EventMetadataV4{Name:"TransferredApproved", Args:[]Type{"AssetId", "AccountId", "AccountId", "AccountId", "Balance"}, Documentation:[]Text{" An `amount` was transferred in its entirety from `owner` to `destination` by", " the approved `delegate`.", " \\[id, owner, delegate, destination\\]"}}, EventMetadataV4{Name:"AssetStatusChanged", Args:[]Type{"AssetId"}, Documentation:[]Text{" An asset has had its attributes changed by the `Force` origin.", " \\[id\\]"}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"BalanceLow", Documentation:[]Text{" Account balance must be greater than or equal to the transfer amount."}}, ErrorMetadataV8{Name:"BalanceZero", Documentation:[]Text{" Balance should be non-zero."}}, ErrorMetadataV8{Name:"NoPermission", Documentation:[]Text{" The signing account has no permission to do the operation."}}, ErrorMetadataV8{Name:"Unknown", Documentation:[]Text{" The given asset ID is unknown."}}, ErrorMetadataV8{Name:"Frozen", Documentation:[]Text{" The origin account is frozen."}}, ErrorMetadataV8{Name:"InUse", Documentation:[]Text{" The asset ID is already taken."}}, ErrorMetadataV8{Name:"BadWitness", Documentation:[]Text{" Invalid witness data given."}}, ErrorMetadataV8{Name:"MinBalanceZero", Documentation:[]Text{" Minimum balance should be non-zero."}}, ErrorMetadataV8{Name:"NoProvider", Documentation:[]Text{" No provider reference exists to allow a non-zero balance of a non-self-sufficient asset."}}, ErrorMetadataV8{Name:"BadMetadata", Documentation:[]Text{" Invalid metadata given."}}, ErrorMetadataV8{Name:"Unapproved", Documentation:[]Text{" No approval exists that would allow the transfer."}}, ErrorMetadataV8{Name:"WouldDie", Documentation:[]Text{" The source account would not survive the transfer and it needs to stay alive."}}}, Index:0x22}, ModuleMetadataV13{Name:"Mmr", HasStorage:true, Storage:StorageMetadataV13{Prefix:"MerkleMountainRange", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"RootHash", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:">::Hash", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Latest MMR Root hash."}}, StorageFunctionMetadataV13{Name:"NumberOfLeaves", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u64", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Current size of the MMR (number of leaves)."}}, StorageFunctionMetadataV13{Name:"Nodes", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:true}, Key:"u64", Value:">::Hash", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Hashes of the nodes in the MMR.", "", " Note this collection only contains MMR peaks, the inner nodes (and leaves)", " are pruned and only stored in the Offchain DB."}}}}, HasCalls:false, Calls:[]FunctionMetadataV4(nil), HasEvents:false, Events:[]EventMetadataV4(nil), Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8(nil), Index:0x23}, ModuleMetadataV13{Name:"Lottery", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Lottery", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"LotteryIndex", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text(nil)}, StorageFunctionMetadataV13{Name:"Lottery", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"LotteryConfig>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The configuration for the current lottery."}}, StorageFunctionMetadataV13{Name:"Participants", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"T::AccountId", Value:"(u32, Vec)", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Users who have purchased a ticket. (Lottery Index, Tickets Purchased)"}}, StorageFunctionMetadataV13{Name:"TicketsCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Total number of tickets sold."}}, StorageFunctionMetadataV13{Name:"Tickets", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:true, IsIdentity:false}, Key:"u32", Value:"T::AccountId", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Each ticket's owner.", "", " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", " are actually valid ticket mappings."}}, StorageFunctionMetadataV13{Name:"CallIndices", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The calls stored in this pallet to be used in an active lottery if configured", " by `Config::ValidateCall`."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"buy_ticket", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"call", Type:"Box<::Call>"}}, Documentation:[]Text{" Buy a ticket to enter the lottery.", "", " This extrinsic acts as a passthrough function for `call`. In all", " situations where `call` alone would succeed, this extrinsic should", " succeed.", "", " If `call` is successful, then we will attempt to purchase a ticket,", " which may fail silently. To detect success of a ticket purchase, you", " should listen for the `TicketBought` event.", "", " This extrinsic must be called by a signed origin."}}, FunctionMetadataV4{Name:"set_calls", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"calls", Type:"Vec<::Call>"}}, Documentation:[]Text{" Set calls in storage which can be used to purchase a lottery ticket.", "", " This function only matters if you use the `ValidateCall` implementation", " provided by this pallet, which uses storage to determine the valid calls.", "", " This extrinsic must be called by the Manager origin."}}, FunctionMetadataV4{Name:"start_lottery", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"price", Type:"BalanceOf"}, FunctionArgumentMetadata{Name:"length", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"delay", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"repeat", Type:"bool"}}, Documentation:[]Text{" Start a lottery using the provided configuration.", "", " This extrinsic must be called by the `ManagerOrigin`.", "", " Parameters:", "", " * `price`: The cost of a single ticket.", " * `length`: How long the lottery should run for starting at the current block.", " * `delay`: How long after the lottery end we should wait before picking a winner.", " * `repeat`: If the lottery should repeat when completed."}}, FunctionMetadataV4{Name:"stop_repeat", Args:[]FunctionArgumentMetadata(nil), Documentation:[]Text{" If a lottery is repeating, you can use this to stop the repeat.", " The lottery will continue to run to completion.", "", " This extrinsic must be called by the `ManagerOrigin`."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"LotteryStarted", Args:[]Type(nil), Documentation:[]Text{" A lottery has been started!"}}, EventMetadataV4{Name:"CallsUpdated", Args:[]Type(nil), Documentation:[]Text{" A new set of calls have been set!"}}, EventMetadataV4{Name:"Winner", Args:[]Type{"AccountId", "Balance"}, Documentation:[]Text{" A winner has been chosen!"}}, EventMetadataV4{Name:"TicketBought", Args:[]Type{"AccountId", "CallIndex"}, Documentation:[]Text{" A ticket has been bought!"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"PalletId", Type:"PalletId", Value:Bytes{0x70, 0x79, 0x2f, 0x6c, 0x6f, 0x74, 0x74, 0x6f}, Documentation:[]Text{" The Lottery's pallet id"}}, ModuleConstantMetadataV6{Name:"MaxCalls", Type:"u32", Value:Bytes{0xa, 0x0, 0x0, 0x0}, Documentation:[]Text{" The max number of calls available in a single lottery."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NotConfigured", Documentation:[]Text{" A lottery has not been configured."}}, ErrorMetadataV8{Name:"InProgress", Documentation:[]Text{" A lottery is already in progress."}}, ErrorMetadataV8{Name:"AlreadyEnded", Documentation:[]Text{" A lottery has already ended."}}, ErrorMetadataV8{Name:"InvalidCall", Documentation:[]Text{" The call is not valid for an open lottery."}}, ErrorMetadataV8{Name:"AlreadyParticipating", Documentation:[]Text{" You are already participating in the lottery with this call."}}, ErrorMetadataV8{Name:"TooManyCalls", Documentation:[]Text{" Too many calls for a single lottery."}}, ErrorMetadataV8{Name:"EncodingFailed", Documentation:[]Text{" Failed to encode calls"}}}, Index:0x24}, ModuleMetadataV13{Name:"Gilt", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Gilt", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"QueueTotals", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec<(u32, BalanceOf)>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The totals of items and balances within each queue. Saves a lot of storage reads in the", " case of sparsely packed queues.", "", " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", " whose duration is one `Period` would be storage `0`."}}, StorageFunctionMetadataV13{Name:"Queues", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"u32", Value:"Vec, T::AccountId>>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The queues of bids ready to become gilts. Indexed by duration (in `Period`s)."}}, StorageFunctionMetadataV13{Name:"ActiveTotal", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"ActiveGiltsTotal>", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Information relating to the gilts currently active."}}, StorageFunctionMetadataV13{Name:"Active", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"ActiveIndex", Value:"ActiveGilt,::AccountId,<\nT as frame_system::Config>::BlockNumber>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The currently active gilts, indexed according to the order of creation."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"place_bid", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"amount", Type:"Compact>"}, FunctionArgumentMetadata{Name:"duration", Type:"u32"}}, Documentation:[]Text{" Place a bid for a gilt to be issued.", "", " Origin must be Signed, and account must have at least `amount` in free balance.", "", " - `amount`: The amount of the bid; these funds will be reserved. If the bid is", " successfully elevated into an issued gilt, then these funds will continue to be", " reserved until the gilt expires. Must be at least `MinFreeze`.", " - `duration`: The number of periods for which the funds will be locked if the gilt is", " issued. It will expire only after this period has elapsed after the point of issuance.", " Must be greater than 1 and no more than `QueueCount`.", "", " Complexities:", " - `Queues[duration].len()` (just take max)."}}, FunctionMetadataV4{Name:"retract_bid", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"amount", Type:"Compact>"}, FunctionArgumentMetadata{Name:"duration", Type:"u32"}}, Documentation:[]Text{" Retract a previously placed bid.", "", " Origin must be Signed, and the account should have previously issued a still-active bid", " of `amount` for `duration`.", "", " - `amount`: The amount of the previous bid.", " - `duration`: The duration of the previous bid."}}, FunctionMetadataV4{Name:"set_target", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"target", Type:"Compact"}}, Documentation:[]Text{" Set target proportion of gilt-funds.", "", " Origin must be `AdminOrigin`.", "", " - `target`: The target proportion of effective issued funds that should be under gilts", " at any one time."}}, FunctionMetadataV4{Name:"thaw", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"index", Type:"Compact"}}, Documentation:[]Text{" Remove an active but expired gilt. Reserved funds under gilt are freed and balance is", " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion", " of effective total issued funds.", "", " Origin must be Signed and the account must be the owner of the gilt of the given index.", "", " - `index`: The index of the gilt to be thawed."}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"BidPlaced", Args:[]Type{"AccountId", "BalanceOf", "u32"}, Documentation:[]Text{" A bid was successfully placed.", " \\[ who, amount, duration \\]"}}, EventMetadataV4{Name:"BidRetracted", Args:[]Type{"AccountId", "BalanceOf", "u32"}, Documentation:[]Text{" A bid was successfully removed (before being accepted as a gilt).", " \\[ who, amount, duration \\]"}}, EventMetadataV4{Name:"GiltIssued", Args:[]Type{"ActiveIndex", "T::BlockNumber", "AccountId", "BalanceOf"}, Documentation:[]Text{" A bid was accepted as a gilt. The balance may not be released until expiry.", " \\[ index, expiry, who, amount \\]"}}, EventMetadataV4{Name:"GiltThawed", Args:[]Type{"ActiveIndex", "AccountId", "BalanceOf", "BalanceOf"}, Documentation:[]Text{" An expired gilt has been thawed.", " \\[ index, who, original_amount, additional_amount \\]"}}}, Constants:[]ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name:"QueueCount", Type:"u32", Value:Bytes{0x2c, 0x1, 0x0, 0x0}, Documentation:[]Text{" Number of duration queues in total. This sets the maximum duration supported, which is", " this value multiplied by `Period`."}}, ModuleConstantMetadataV6{Name:"MaxQueueLen", Type:"u32", Value:Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation:[]Text{" Maximum number of items that may be in each duration queue."}}, ModuleConstantMetadataV6{Name:"FifoQueueLen", Type:"u32", Value:Bytes{0xf4, 0x1, 0x0, 0x0}, Documentation:[]Text{" Portion of the queue which is free from ordering and just a FIFO.", "", " Must be no greater than `MaxQueueLen`."}}, ModuleConstantMetadataV6{Name:"Period", Type:"T::BlockNumber", Value:Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation:[]Text{" The base period for the duration queues. This is the common multiple across all", " supported freezing durations that can be bid upon."}}, ModuleConstantMetadataV6{Name:"MinFreeze", Type:"BalanceOf", Value:Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" The minimum amount of funds that may be offered to freeze for a gilt. Note that this", " does not actually limit the amount which may be frozen in a gilt since gilts may be", " split up in order to satisfy the desired amount of funds under gilts.", "", " It should be at least big enough to ensure that there is no possible storage spam attack", " or queue-filling attack."}}, ModuleConstantMetadataV6{Name:"IntakePeriod", Type:"T::BlockNumber", Value:Bytes{0xa, 0x0, 0x0, 0x0}, Documentation:[]Text{" The number of blocks between consecutive attempts to issue more gilts in an effort to", " get to the target amount to be frozen.", "", " A larger value results in fewer storage hits each block, but a slower period to get to", " the target."}}, ModuleConstantMetadataV6{Name:"MaxIntakeBids", Type:"u32", Value:Bytes{0xa, 0x0, 0x0, 0x0}, Documentation:[]Text{" The maximum amount of bids that can be turned into issued gilts each block. A larger", " value here means less of the block available for transactions should there be a glut of", " bids to make into gilts to reach the target."}}}, Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"DurationTooSmall", Documentation:[]Text{" The duration of the bid is less than one."}}, ErrorMetadataV8{Name:"DurationTooBig", Documentation:[]Text{" The duration is the bid is greater than the number of queues."}}, ErrorMetadataV8{Name:"AmountTooSmall", Documentation:[]Text{" The amount of the bid is less than the minimum allowed."}}, ErrorMetadataV8{Name:"BidTooLow", Documentation:[]Text{" The queue for the bid's duration is full and the amount bid is too low to get in through", " replacing an existing bid."}}, ErrorMetadataV8{Name:"Unknown", Documentation:[]Text{" Gilt index is unknown."}}, ErrorMetadataV8{Name:"NotOwner", Documentation:[]Text{" Not the owner of the gilt."}}, ErrorMetadataV8{Name:"NotExpired", Documentation:[]Text{" Gilt not yet at expiry date."}}, ErrorMetadataV8{Name:"NotFound", Documentation:[]Text{" The given bid for retraction is not found."}}}, Index:0x25}, ModuleMetadataV13{Name:"Uniques", HasStorage:true, Storage:StorageMetadataV13{Prefix:"Uniques", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Class", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::ClassId", Value:"ClassDetails>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Details of an asset class."}}, StorageFunctionMetadataV13{Name:"Account", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:true, AsNMap:NMapTypeV13{Keys:[]Type{"T::AccountId", "T::ClassId", "T::InstanceId"}, Hashers:[]StorageHasherV10{StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, Value:"()"}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The assets held by any given account; set out this way so that assets owned by a single", " account can be enumerated."}}, StorageFunctionMetadataV13{Name:"Asset", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"T::ClassId", Key2:"T::InstanceId", Value:"InstanceDetails>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" The assets in existence and their ownership details."}}, StorageFunctionMetadataV13{Name:"ClassMetadataOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::ClassId", Value:"ClassMetadata, T::StringLimit>", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Metadata of an asset class."}}, StorageFunctionMetadataV13{Name:"InstanceMetadataOf", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:true, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"T::ClassId", Key2:"T::InstanceId", Value:"InstanceMetadata, T::StringLimit>", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Metadata of an asset instance."}}, StorageFunctionMetadataV13{Name:"Attribute", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:true, AsNMap:NMapTypeV13{Keys:[]Type{"T::ClassId", "Option", "BoundedVec"}, Hashers:[]StorageHasherV10{StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, Value:"(BoundedVec, DepositBalanceOf)"}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Metadata of an asset class."}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"create", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"admin", Type:"::Source"}}, Documentation:[]Text{" Issue a new class of non-fungible assets from a public origin.", "", " This new asset class has no assets initially and its owner is the origin.", "", " The origin must be Signed and the sender must have sufficient funds free.", "", " `AssetDeposit` funds of sender are reserved.", "", " Parameters:", " - `class`: The identifier of the new asset class. This must not be currently in use.", " - `admin`: The admin of this class of assets. The admin is the initial address of each", " member of the asset class's admin team.", "", " Emits `Created` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"force_create", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}, FunctionArgumentMetadata{Name:"free_holding", Type:"bool"}}, Documentation:[]Text{" Issue a new class of non-fungible assets from a privileged origin.", "", " This new asset class has no assets initially.", "", " The origin must conform to `ForceOrigin`.", "", " Unlike `create`, no funds are reserved.", "", " - `class`: The identifier of the new asset. This must not be currently in use.", " - `owner`: The owner of this class of assets. The owner has full superuser permissions", " over this asset, but may later change and configure the permissions using", " `transfer_ownership` and `set_team`.", "", " Emits `ForceCreated` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"destroy", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"witness", Type:"DestroyWitness"}}, Documentation:[]Text{" Destroy a class of fungible assets.", "", " The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", " owner of the asset `class`.", "", " - `class`: The identifier of the asset class to be destroyed.", " - `witness`: Information on the instances minted in the asset class. This must be", " correct.", "", " Emits `Destroyed` event when successful.", "", " Weight: `O(n + m)` where:", " - `n = witness.instances`", " - `m = witness.instance_metdadatas`", " - `a = witness.attributes`"}}, FunctionMetadataV4{Name:"mint", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}}, Documentation:[]Text{" Mint an asset instance of a particular class.", "", " The origin must be Signed and the sender must be the Issuer of the asset `class`.", "", " - `class`: The class of the asset to be minted.", " - `instance`: The instance value of the asset to be minted.", " - `beneficiary`: The initial owner of the minted asset.", "", " Emits `Issued` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"burn", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}, FunctionArgumentMetadata{Name:"check_owner", Type:"Option<::Source>"}}, Documentation:[]Text{" Destroy a single asset instance.", "", " Origin must be Signed and the sender should be the Admin of the asset `class`.", "", " - `class`: The class of the asset to be burned.", " - `instance`: The instance of the asset to be burned.", " - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", " asset is owned by this value.", "", " Emits `Burned` with the actual amount burned.", "", " Weight: `O(1)`", " Modes: `check_owner.is_some()`."}}, FunctionMetadataV4{Name:"transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}, FunctionArgumentMetadata{Name:"dest", Type:"::Source"}}, Documentation:[]Text{" Move an asset from the sender account to another.", "", " Origin must be Signed and the signing account must be either:", " - the Admin of the asset `class`;", " - the Owner of the asset `instance`;", " - the approved delegate for the asset `instance` (in this case, the approval is reset).", "", " Arguments:", " - `class`: The class of the asset to be transferred.", " - `instance`: The instance of the asset to be transferred.", " - `dest`: The account to receive ownership of the asset.", "", " Emits `Transferred`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"redeposit", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instances", Type:"Vec"}}, Documentation:[]Text{" Reevaluate the deposits on some assets.", "", " Origin must be Signed and the sender should be the Owner of the asset `class`.", "", " - `class`: The class of the asset to be frozen.", " - `instances`: The instances of the asset class whose deposits will be reevaluated.", "", " NOTE: This exists as a best-effort function. Any asset instances which are unknown or", " in the case that the owner account does not have reservable funds to pay for a", " deposit increase are ignored. Generally the owner isn't going to call this on instances", " whose existing deposit is less than the refreshed deposit as it would only cost them,", " so it's of little consequence.", "", " It will still return an error in the case that the class is unknown of the signer is", " not permitted to call it.", "", " Weight: `O(instances.len())`"}}, FunctionMetadataV4{Name:"freeze", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}}, Documentation:[]Text{" Disallow further unprivileged transfer of an asset instance.", "", " Origin must be Signed and the sender should be the Freezer of the asset `class`.", "", " - `class`: The class of the asset to be frozen.", " - `instance`: The instance of the asset to be frozen.", "", " Emits `Frozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"thaw", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}}, Documentation:[]Text{" Re-allow unprivileged transfer of an asset instance.", "", " Origin must be Signed and the sender should be the Freezer of the asset `class`.", "", " - `class`: The class of the asset to be thawed.", " - `instance`: The instance of the asset to be thawed.", "", " Emits `Thawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"freeze_class", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}}, Documentation:[]Text{" Disallow further unprivileged transfers for a whole asset class.", "", " Origin must be Signed and the sender should be the Freezer of the asset `class`.", "", " - `class`: The asset class to be frozen.", "", " Emits `ClassFrozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"thaw_class", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}}, Documentation:[]Text{" Re-allow unprivileged transfers for a whole asset class.", "", " Origin must be Signed and the sender should be the Admin of the asset `class`.", "", " - `class`: The class to be thawed.", "", " Emits `ClassThawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"transfer_ownership", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}}, Documentation:[]Text{" Change the Owner of an asset class.", "", " Origin must be Signed and the sender should be the Owner of the asset `class`.", "", " - `class`: The asset class whose owner should be changed.", " - `owner`: The new Owner of this asset class.", "", " Emits `OwnerChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"set_team", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"issuer", Type:"::Source"}, FunctionArgumentMetadata{Name:"admin", Type:"::Source"}, FunctionArgumentMetadata{Name:"freezer", Type:"::Source"}}, Documentation:[]Text{" Change the Issuer, Admin and Freezer of an asset class.", "", " Origin must be Signed and the sender should be the Owner of the asset `class`.", "", " - `class`: The asset class whose team should be changed.", " - `issuer`: The new Issuer of this asset class.", " - `admin`: The new Admin of this asset class.", " - `freezer`: The new Freezer of this asset class.", "", " Emits `TeamChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"approve_transfer", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}, FunctionArgumentMetadata{Name:"delegate", Type:"::Source"}}, Documentation:[]Text{" Approve an instance to be transferred by a delegated third-party account.", "", " Origin must be Signed and must be the owner of the asset `instance`.", "", " - `class`: The class of the asset to be approved for delegated transfer.", " - `instance`: The instance of the asset to be approved for delegated transfer.", " - `delegate`: The account to delegate permission to transfer the asset.", "", " Emits `ApprovedTransfer` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"cancel_approval", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}, FunctionArgumentMetadata{Name:"maybe_check_delegate", Type:"Option<::Source>"}}, Documentation:[]Text{" Cancel the prior approval for the transfer of an asset by a delegate.", "", " Origin must be either:", " - the `Force` origin;", " - `Signed` with the signer being the Admin of the asset `class`;", " - `Signed` with the signer being the Owner of the asset `instance`;", "", " Arguments:", " - `class`: The class of the asset of whose approval will be cancelled.", " - `instance`: The instance of the asset of whose approval will be cancelled.", " - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", " which permission of transfer is delegated.", "", " Emits `ApprovalCancelled` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"force_asset_status", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"owner", Type:"::Source"}, FunctionArgumentMetadata{Name:"issuer", Type:"::Source"}, FunctionArgumentMetadata{Name:"admin", Type:"::Source"}, FunctionArgumentMetadata{Name:"freezer", Type:"::Source"}, FunctionArgumentMetadata{Name:"free_holding", Type:"bool"}, FunctionArgumentMetadata{Name:"is_frozen", Type:"bool"}}, Documentation:[]Text{" Alter the attributes of a given asset.", "", " Origin must be `ForceOrigin`.", "", " - `class`: The identifier of the asset.", " - `owner`: The new Owner of this asset.", " - `issuer`: The new Issuer of this asset.", " - `admin`: The new Admin of this asset.", " - `freezer`: The new Freezer of this asset.", " - `free_holding`: Whether a deposit is taken for holding an instance of this asset", " class.", " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", " instructions.", "", " Emits `AssetStatusChanged` with the identity of the asset.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"set_attribute", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"maybe_instance", Type:"Option"}, FunctionArgumentMetadata{Name:"key", Type:"BoundedVec"}, FunctionArgumentMetadata{Name:"value", Type:"BoundedVec"}}, Documentation:[]Text{" Set an attribute for an asset class or instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `class`.", "", " If the origin is Signed, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset class whose instance's metadata to set.", " - `maybe_instance`: The identifier of the asset instance whose metadata to set.", " - `key`: The key of the attribute.", " - `value`: The value to which to set the attribute.", "", " Emits `AttributeSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"clear_attribute", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"maybe_instance", Type:"Option"}, FunctionArgumentMetadata{Name:"key", Type:"BoundedVec"}}, Documentation:[]Text{" Set an attribute for an asset class or instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `class`.", "", " If the origin is Signed, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset class whose instance's metadata to set.", " - `instance`: The identifier of the asset instance whose metadata to set.", " - `key`: The key of the attribute.", " - `value`: The value to which to set the attribute.", "", " Emits `AttributeSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"set_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}, FunctionArgumentMetadata{Name:"data", Type:"BoundedVec"}, FunctionArgumentMetadata{Name:"is_frozen", Type:"bool"}}, Documentation:[]Text{" Set the metadata for an asset instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `class`.", "", " If the origin is Signed, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * data.len` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset class whose instance's metadata to set.", " - `instance`: The identifier of the asset instance whose metadata to set.", " - `data`: The general information of this asset. Limited in length by `StringLimit`.", " - `is_frozen`: Whether the metadata should be frozen against further changes.", "", " Emits `MetadataSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"clear_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"instance", Type:"Compact"}}, Documentation:[]Text{" Clear the metadata for an asset instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `instance`.", "", " Any deposit is freed for the asset class owner.", "", " - `class`: The identifier of the asset class whose instance's metadata to clear.", " - `instance`: The identifier of the asset instance whose metadata to clear.", "", " Emits `MetadataCleared`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"set_class_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}, FunctionArgumentMetadata{Name:"data", Type:"BoundedVec"}, FunctionArgumentMetadata{Name:"is_frozen", Type:"bool"}}, Documentation:[]Text{" Set the metadata for an asset class.", "", " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", " the asset `class`.", "", " If the origin is `Signed`, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * data.len` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset whose metadata to update.", " - `data`: The general information of this asset. Limited in length by `StringLimit`.", " - `is_frozen`: Whether the metadata should be frozen against further changes.", "", " Emits `ClassMetadataSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name:"clear_class_metadata", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"class", Type:"Compact"}}, Documentation:[]Text{" Clear the metadata for an asset class.", "", " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", " the asset `class`.", "", " Any deposit is freed for the asset class owner.", "", " - `class`: The identifier of the asset class whose metadata to clear.", "", " Emits `ClassMetadataCleared`.", "", " Weight: `O(1)`"}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Created", Args:[]Type{"ClassId", "AccountId", "AccountId"}, Documentation:[]Text{" An asset class was created. \\[ class, creator, owner \\]"}}, EventMetadataV4{Name:"ForceCreated", Args:[]Type{"ClassId", "AccountId"}, Documentation:[]Text{" An asset class was force-created. \\[ class, owner \\]"}}, EventMetadataV4{Name:"Destroyed", Args:[]Type{"ClassId"}, Documentation:[]Text{" An asset `class` was destroyed. \\[ class \\]"}}, EventMetadataV4{Name:"Issued", Args:[]Type{"ClassId", "InstanceId", "AccountId"}, Documentation:[]Text{" An asset `instace` was issued. \\[ class, instance, owner \\]"}}, EventMetadataV4{Name:"Transferred", Args:[]Type{"ClassId", "InstanceId", "AccountId", "AccountId"}, Documentation:[]Text{" An asset `instace` was transferred. \\[ class, instance, from, to \\]"}}, EventMetadataV4{Name:"Burned", Args:[]Type{"ClassId", "InstanceId", "AccountId"}, Documentation:[]Text{" An asset `instance` was destroyed. \\[ class, instance, owner \\]"}}, EventMetadataV4{Name:"Frozen", Args:[]Type{"ClassId", "InstanceId"}, Documentation:[]Text{" Some asset `instance` was frozen. \\[ class, instance \\]"}}, EventMetadataV4{Name:"Thawed", Args:[]Type{"ClassId", "InstanceId"}, Documentation:[]Text{" Some asset `instance` was thawed. \\[ class, instance \\]"}}, EventMetadataV4{Name:"ClassFrozen", Args:[]Type{"ClassId"}, Documentation:[]Text{" Some asset `class` was frozen. \\[ class \\]"}}, EventMetadataV4{Name:"ClassThawed", Args:[]Type{"ClassId"}, Documentation:[]Text{" Some asset `class` was thawed. \\[ class \\]"}}, EventMetadataV4{Name:"OwnerChanged", Args:[]Type{"ClassId", "AccountId"}, Documentation:[]Text{" The owner changed \\[ class, new_owner \\]"}}, EventMetadataV4{Name:"TeamChanged", Args:[]Type{"ClassId", "AccountId", "AccountId", "AccountId"}, Documentation:[]Text{" The management team changed \\[ class, issuer, admin, freezer \\]"}}, EventMetadataV4{Name:"ApprovedTransfer", Args:[]Type{"ClassId", "InstanceId", "AccountId", "AccountId"}, Documentation:[]Text{" An `instance` of an asset `class` has been approved by the `owner` for transfer by a", " `delegate`.", " \\[ class, instance, owner, delegate \\]"}}, EventMetadataV4{Name:"ApprovalCancelled", Args:[]Type{"ClassId", "InstanceId", "AccountId", "AccountId"}, Documentation:[]Text{" An approval for a `delegate` account to transfer the `instance` of an asset `class` was", " cancelled by its `owner`.", " \\[ class, instance, owner, delegate \\]"}}, EventMetadataV4{Name:"AssetStatusChanged", Args:[]Type{"ClassId"}, Documentation:[]Text{" An asset `class` has had its attributes changed by the `Force` origin.", " \\[ class \\]"}}, EventMetadataV4{Name:"ClassMetadataSet", Args:[]Type{"ClassId", "BoundedVec", "bool"}, Documentation:[]Text{" New metadata has been set for an asset class. \\[ class, data, is_frozen \\]"}}, EventMetadataV4{Name:"ClassMetadataCleared", Args:[]Type{"ClassId"}, Documentation:[]Text{" Metadata has been cleared for an asset class. \\[ class \\]"}}, EventMetadataV4{Name:"MetadataSet", Args:[]Type{"ClassId", "InstanceId", "BoundedVec", "bool"}, Documentation:[]Text{" New metadata has been set for an asset instance.", " \\[ class, instance, data, is_frozen \\]"}}, EventMetadataV4{Name:"MetadataCleared", Args:[]Type{"ClassId", "InstanceId"}, Documentation:[]Text{" Metadata has been cleared for an asset instance. \\[ class, instance \\]"}}, EventMetadataV4{Name:"Redeposited", Args:[]Type{"ClassId", "Vec"}, Documentation:[]Text{" Metadata has been cleared for an asset instance. \\[ class, successful_instances \\]"}}, EventMetadataV4{Name:"AttributeSet", Args:[]Type{"ClassId", "Option", "BoundedVec", "BoundedVec"}, Documentation:[]Text{" New attribute metadata has been set for an asset class or instance.", " \\[ class, maybe_instance, key, value \\]"}}, EventMetadataV4{Name:"AttributeCleared", Args:[]Type{"ClassId", "Option", "BoundedVec"}, Documentation:[]Text{" Attribute metadata has been cleared for an asset class or instance.", " \\[ class, maybe_instance, key, maybe_value \\]"}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"NoPermission", Documentation:[]Text{" The signing account has no permission to do the operation."}}, ErrorMetadataV8{Name:"Unknown", Documentation:[]Text{" The given asset ID is unknown."}}, ErrorMetadataV8{Name:"AlreadyExists", Documentation:[]Text{" The asset instance ID has already been used for an asset."}}, ErrorMetadataV8{Name:"WrongOwner", Documentation:[]Text{" The owner turned out to be different to what was expected."}}, ErrorMetadataV8{Name:"BadWitness", Documentation:[]Text{" Invalid witness data given."}}, ErrorMetadataV8{Name:"InUse", Documentation:[]Text{" The asset ID is already taken."}}, ErrorMetadataV8{Name:"Frozen", Documentation:[]Text{" The asset instance or class is frozen."}}, ErrorMetadataV8{Name:"WrongDelegate", Documentation:[]Text{" The delegate turned out to be different to what was expected."}}, ErrorMetadataV8{Name:"NoDelegate", Documentation:[]Text{" There is no delegate approved."}}, ErrorMetadataV8{Name:"Unapproved", Documentation:[]Text{" No approval exists that would allow the transfer."}}}, Index:0x26}, ModuleMetadataV13{Name:"TransactionStorage", HasStorage:true, Storage:StorageMetadataV13{Prefix:"TransactionStorage", Items:[]StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name:"Transactions", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::BlockNumber", Value:"Vec", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Collection of transaction metadata by block number."}}, StorageFunctionMetadataV13{Name:"ChunkCount", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:false, AsType:"", IsMap:true, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:true, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"T::BlockNumber", Value:"u32", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Count indexed chunks for each block."}}, StorageFunctionMetadataV13{Name:"ByteFee", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BalanceOf", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Storage fee per byte."}}, StorageFunctionMetadataV13{Name:"EntryFee", Modifier:StorageFunctionModifierV0{IsOptional:true, IsDefault:false, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"BalanceOf", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Storage fee per transaction."}}, StorageFunctionMetadataV13{Name:"MaxTransactionSize", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Maximum data set in a single transaction in bytes."}}, StorageFunctionMetadataV13{Name:"MaxBlockTransactions", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"u32", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Maximum number of indexed transactions in the block."}}, StorageFunctionMetadataV13{Name:"StoragePeriod", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"T::BlockNumber", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0, 0x0, 0x0, 0x0}, Documentation:[]Text{" Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", " for block authoring."}}, StorageFunctionMetadataV13{Name:"BlockTransactions", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"Vec", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text(nil)}, StorageFunctionMetadataV13{Name:"ProofChecked", Modifier:StorageFunctionModifierV0{IsOptional:false, IsDefault:true, IsRequired:false}, Type:StorageFunctionTypeV13{IsType:true, AsType:"bool", IsMap:false, AsMap:MapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key:"", Value:"", Linked:false}, IsDoubleMap:false, AsDoubleMap:DoubleMapTypeV10{Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}, Key1:"", Key2:"", Value:"", Key2Hasher:StorageHasherV10{IsBlake2_128:false, IsBlake2_256:false, IsBlake2_128Concat:false, IsTwox128:false, IsTwox256:false, IsTwox64Concat:false, IsIdentity:false}}, IsNMap:false, AsNMap:NMapTypeV13{Keys:[]Type(nil), Hashers:[]StorageHasherV10(nil), Value:""}}, Fallback:Bytes{0x0}, Documentation:[]Text{" Was the proof checked in this block?"}}}}, HasCalls:true, Calls:[]FunctionMetadataV4{FunctionMetadataV4{Name:"store", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"data", Type:"Vec"}}, Documentation:[]Text{" Index and store data on chain. Minimum data size is 1 bytes, maximum is `MaxTransactionSize`.", " Data will be removed after `STORAGE_PERIOD` blocks, unless `renew` is called.", " # ", " - n*log(n) of data size, as all data is pushed to an in-memory trie.", " Additionally contains a DB write.", " # "}}, FunctionMetadataV4{Name:"renew", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"block", Type:"T::BlockNumber"}, FunctionArgumentMetadata{Name:"index", Type:"u32"}}, Documentation:[]Text{" Renew previously stored data. Parameters are the block number that contains", " previous `store` or `renew` call and transaction index within that block.", " Transaction index is emitted in the `Stored` or `Renewed` event.", " Applies same fees as `store`.", " # ", " - Constant.", " # "}}, FunctionMetadataV4{Name:"check_proof", Args:[]FunctionArgumentMetadata{FunctionArgumentMetadata{Name:"proof", Type:"TransactionStorageProof"}}, Documentation:[]Text{" Check storage proof for block number `block_number() - StoragePeriod`.", " If such block does not exist the proof is expected to be `None`.", " # ", " - Linear w.r.t the number of indexed transactions in the proved block for random probing.", " There's a DB read for each transaction.", " Here we assume a maximum of 100 probed transactions.", " # "}}}, HasEvents:true, Events:[]EventMetadataV4{EventMetadataV4{Name:"Stored", Args:[]Type{"u32"}, Documentation:[]Text{" Stored data under specified index."}}, EventMetadataV4{Name:"Renewed", Args:[]Type{"u32"}, Documentation:[]Text{" Renewed data under specified index."}}, EventMetadataV4{Name:"ProofChecked", Args:[]Type(nil), Documentation:[]Text{" Storage proof was successfully checked."}}}, Constants:[]ModuleConstantMetadataV6(nil), Errors:[]ErrorMetadataV8{ErrorMetadataV8{Name:"InsufficientFunds", Documentation:[]Text{" Insufficient account balance."}}, ErrorMetadataV8{Name:"NotConfigured", Documentation:[]Text{" Invalid configuration."}}, ErrorMetadataV8{Name:"RenewedNotFound", Documentation:[]Text{" Renewed extrinsic is not found."}}, ErrorMetadataV8{Name:"EmptyTransaction", Documentation:[]Text{" Attempting to store empty transaction"}}, ErrorMetadataV8{Name:"UnexpectedProof", Documentation:[]Text{" Proof was not expected in this block."}}, ErrorMetadataV8{Name:"InvalidProof", Documentation:[]Text{" Proof failed verification."}}, ErrorMetadataV8{Name:"MissingProof", Documentation:[]Text{" Missing storage proof."}}, ErrorMetadataV8{Name:"MissingStateData", Documentation:[]Text{" Unable to verify proof becasue state data is missing."}}, ErrorMetadataV8{Name:"DoubleCheck", Documentation:[]Text{" Double proof check in the block."}}, ErrorMetadataV8{Name:"ProofNotChecked", Documentation:[]Text{" Storage proof was not checked in the block."}}, ErrorMetadataV8{Name:"TransactionTooLarge", Documentation:[]Text{" Transaction is too large."}}, ErrorMetadataV8{Name:"TooManyTransactions", Documentation:[]Text{" Too many transactions in the block."}}, ErrorMetadataV8{Name:"BadContext", Documentation:[]Text{" Attempted to call `store` outside of block execution."}}}, Index:0x27}}, Extrinsic:ExtrinsicV11{Version:0x4, SignedExtensions:[]string{"CheckSpecVersion", "CheckTxVersion", "CheckGenesis", "CheckMortality", "CheckNonce", "CheckWeight", "ChargeTransactionPayment"}}}} + + diff --git a/types/metadataV13_examplary_string.go b/types/metadataV13_examplary_string.go new file mode 100644 index 000000000..eaaaa13be --- /dev/null +++ b/types/metadataV13_examplary_string.go @@ -0,0 +1,3 @@ +package types + +var ExamplaryMetadataV13SubstrateString = "0x6d6574610da01853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e0503106e6f6465387375627374726174652d6e6f64650a0000000b0100000000000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1502000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b01000000020000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978087538042a14a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304000c5d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207468617420696e636c756465732074686520565246206f75747075742067656e6572617465645101206174207468697320626c6f636b2e2054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000485012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e2067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c75363420c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657844690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e052042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964d05765616b426f756e6465645665633c42616c616e63654c6f636b3c543a3a42616c616e63653e2c20543a3a4d61784c6f636b733e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010230543a3a4163636f756e7449642901426f756e6465645665633c52657365727665446174613c543a3a526573657276654964656e7469666965722c20543a3a42616c616e63653e2c20543a3a0a4d617852657365727665733e00040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657304b0204e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657306485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000768456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173651c14526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e544d696e696d756d556e7472757374656453636f7265000034456c656374696f6e53636f72650400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01083c7375626d69745f756e7369676e65640820736f6c7574696f6e64526177536f6c7574696f6e3c436f6d706163744f663c543e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f726504406d617962655f6e6578745f73636f7265544f7074696f6e3c456c656374696f6e53636f72653e14b4205365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00dc204469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f4205468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e011838536f6c7574696f6e53746f726564043c456c656374696f6e436f6d7075746510b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656404244163636f756e74496404290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656404244163636f756e74496404250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e1034556e7369676e6564506861736538543a3a426c6f636b4e756d62657210320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c10a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617438543a3a426c6f636b4e756d626572100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e106850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c4f637743616c6c57726f6e67457261049c204f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e64081c5374616b696e67011c5374616b696e677830486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f7250726566730008000004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0031012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6053657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040510cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076362e302e3020666f72206e6577206e6574776f726b732e015c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5465012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d2c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a1d01202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682ca4202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c28203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533327c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766520205570646174653a2501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657218204b696c6c3a4501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e8c2020204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173685101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732cb02020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e74202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d34205765696768743a204f284e2984207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657870110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e38e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533323c61012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34e42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e490120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e2054686520636f6e74726f6c6c657298206163636f756e742073686f756c6420726570726573656e7420612076616c696461746f722e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d1852657761726408244163636f756e7449641c42616c616e636504fc20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d3c5374616b696e67456c656374696f6e0004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c753332101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e50344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e091c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578086501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e0a2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001482050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e047d012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c820412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d20556e6c6f636b656404244163636f756e74496404bc20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e842056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e38496e76616c69645769746e6573730490205468652070726f7669646564207769746e65737320646174612069732077726f6e672e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0b1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0d24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e550120202053696d696c617220746f205b6072656d6f76655f6d656d62657273605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c794d01202020757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e0f1c4772616e647061011c4772616e6470611814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e10205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d143050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1124436f6e7472616374730124436f6e74726163747314305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e4c5072656661625761736d4d6f64756c653c543e0004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100505665633c44656c65746564436f6e74726163743e040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e01101063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f64651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10636f64651c5665633c75383e10646174611c5665633c75383e1073616c741c5665633c75383e54350120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e673820736f6d652062616c616e63652e000501205468697320697320746865206f6e6c792066756e6374696f6e20746861742063616e206465706c6f79206e657720636f646520746f2074686520636861696e2e0034202320506172616d6574657273006101202a2060656e646f776d656e74603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e1901202a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722ed0202a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef8202a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3501202a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a007501202d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e5d01202d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e4d01202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ed4202d205468652060656e646f776d656e7460206973207472616e7366657272656420746f20746865206e6577206163636f756e742e4501202d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e74696174651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e1073616c741c5665633c75383e14010120496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e00390120546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654d0120636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e61727948206d75737420626520737570706c6965642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e244d0120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b39012070726f6475636572206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e004d0120496e2063617365206f662061207375636365737366756c206576696374696f6e206e6f20666565732061726520636861726765642066726f6d207468652073656e6465722e20486f77657665722c20746865450120726577617264206973206361707065642062792074686520746f74616c20616d6f756e74206f662072656e7420746861742077617320706169642062792074686520636f6e7472616374207768696c65382069742077617320616c6976652e00550120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c205b604572726f723a3a436f6e74726163744e6f74457669637461626c65605dec2069732072657475726e656420616e64207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e012030496e7374616e74696174656408244163636f756e744964244163636f756e74496404390120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6465706c6f7965722c20636f6e74726163745c5d1c4576696374656404244163636f756e74496404190120436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e205c5b636f6e74726163745c5d285465726d696e6174656408244163636f756e744964244163636f756e74496430e820436f6e747261637420686173206265656e207465726d696e6174656420776974686f7574206c656176696e67206120746f6d6273746f6e652e68205c5b636f6e74726163742c2062656e65666963696172795c5d0024202320506172616d7300c0202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420776173207465726d696e617465642e3101202d206062656e6566696369617279603a20546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e63652e001c2023204e6f7465002d0120546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420776974686f7574206120746f6d6273746f6e6520616e6420656d697474696e67ac2074686973206576656e742069732062792063616c6c696e6720607365616c5f7465726d696e617465602e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524bc20526573746f726174696f6e206f66206120636f6e747261637420686173206265656e207375636365737366756c2eb8205c5b726573746f7265722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655c5d0024202320506172616d7300d0202d2060726573746f726572603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e74726163742ebc202d206064657374603a204163636f756e74204944206f662074686520726573746f72656420636f6e74726163742ecc202d2060636f64655f68617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163742ef4202d206072656e745f616c6c6f77616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e74726163742e28436f646553746f72656404104861736804f020436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333218c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e30205c5b76657273696f6e5c5d0024202320506172616d7300d0202d206076657273696f6e603a205468652076657273696f6e206f6620746865206e65776c7920736574207363686564756c652e3c436f6e7472616374456d697474656408244163636f756e7449641c5665633c75383e20a0204120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e4c205c5b636f6e74726163742c20646174615c5d0024202320506172616d7300cc202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420656d697474656420746865206576656e742e3101202d206064617461603a204461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e7472616374b82020202020202020202020636f6d70696c6174696f6e206973206e656564656420746f206465636f64652069742e2c436f646552656d6f76656404104861736810b0204120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e38205c5b636f64655f686173685c5d00550120546869732068617070656e73207768656e20746865206c61737420636f6e747261637420746861742075736573207468697320636f64652068617368207761732072656d6f766564206f7220657669637465642e28205363686564756c652c5363686564756c653c543e710a0400000000020000000100008000000010000000001000000001000020000000200000000040000000000200020000008e060000e2fc0100cd0f030009170000861d0000030c00001f1800005629000082000000b059010055810200c00b000029070000590800003b060000b8160000a61a0000600700000de8b607b10600007d060000e6090000dc070000d5050000d70500005b06000043090000390900001c0900004d0900001d09000030090000180900004109000038090000680900007d080000f80800008e08000003220000371e0000fd210000e71d0000a6080000ab080000d5080000db090000d8090000190a00001e0b00000c09000052f72400000000006ee52400000000009c212400000000003039500000000000702a240000000000644f240000000000ce3a240000000000dc54240000000000f0182400000000001e31240000000000b0c14700000000009a12120000000000c0406d0000000000f4000000000000007854420000000000e302000000000000f03a7d2000000000672000000000000040a9e729000000002c1e000000000000650f000000000000ac13aa09000000006c835b0000000000c229870000000000dad6c907000000009409000000000000c0681300000000007c0b1900000000000210b20900000000b502000000000000fee1300800000000c274080200000000db050000000000006c548a0a00000000aab1da0f00000000f50e000000000000608b390800000000500200000000000002030000000000008e63f022000000007e2100000000000067020000000000002c030000000000002909000000000000a41f230000000000c3120000000000007ca6230000000000020d00000000000000bd1f00000000001506000000000000a6a81f0000000000fc05000000000000046820436f7374207363686564756c6520616e64206c696d6974732e4c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000f0e8857a9c0200000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e484465706f736974506572436f6e74726163743042616c616e63654f663c543e4000f0e8857a9c02000000000000000000202101205468652062616c616e636520657665727920636f6e7472616374206e6565647320746f206465706f73697420746f207374617920616c69766520696e646566696e6974656c792e005101205468697320697320646966666572656e742066726f6d20746865205b6053656c663a3a546f6d6273746f6e654465706f736974605d20626563617573652074686973206f6e6c79206e6565647320746f2062654501206465706f7369746564207768696c652074686520636f6e747261637420697320616c6976652e20436f73747320666f72206164646974696f6e616c2073746f726167652061726520616464656420746f402074686973206261736520636f73742e006d01205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465642062797101206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f20736176652072656e742e544465706f73697450657253746f72616765427974653042616c616e63654f663c543e400060defb740500000000000000000000185501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206279746520746f207374617920616c69766520696e646566696e6974656c792e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e544465706f73697450657253746f726167654974656d3042616c616e63654f663c543e4000f0ab75a40d000000000000000000000c5501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206974656d20746f207374617920616c69766520696e646566696e6974656c792e00310120497420776f726b73207468652073616d65206173205b6053656c663a3a4465706f73697450657253746f7261676542797465605d2062757420666f722073746f72616765206974656d732e3052656e744672616374696f6e1c50657262696c6c1085040000140d0120546865206672616374696f6e206f6620746865206465706f73697420746861742073686f756c6420626520757365642061732072656e742070657220626c6f636b2e005101205768656e206120636f6e7472616374206861736e277420656e6f7567682062616c616e6365206465706f736974656420746f207374617920616c69766520696e646566696e6974656c79206974206e65656473450120746f207061792070657220626c6f636b20666f72207468652073746f7261676520697420636f6e73756d65732074686174206973206e6f7420636f766572656420627920746865206465706f7369742e590120546869732064657465726d696e657320686f77206869676820746869732072656e74207061796d656e742069732070657220626c6f636b2061732061206672616374696f6e206f6620746865206465706f7369742e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e4844656c6574696f6e517565756544657074680c753332108504000004f420546865206d6178696d756d206e756d626572206f6620747269657320746861742063616e2062652071756575656420666f722064656c6574696f6e2e4c44656c6574696f6e5765696768744c696d6974185765696768742000d0ed902e000000044d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e8458496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e6404c0204e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e4c436f6e74726163744973546f6d6273746f6e6510b0204120746f6d6273746f6e65206578697374206174207468652073706563696669656420616464726573732e00410120546f6d6273746f6e652063616e6e6f742062652063616c6c65642e20416e796f6e652063616e2075736520607365616c5f726573746f72655f746f6020696e206f7264657220746f20726576697665582074686520636f6e74726163742c2074686f7567682e2c52656e744e6f7450616964182501205468652063616c6c656420636f6e747261637420646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920666f72206974732073746f726167652e0039012054686520636f6e74726163742072616e206f7574206f662062616c616e636520616e64206973207468657265666f726520656c696769626c6520666f72206576696374696f6e20696e746f20612d0120746f6d6273746f6e652e20416e796f6e652063616e2065766963742074686520636f6e7472616374206279207375626d697474696e6720612060636c61696d5f737572636861726765602d012065787472696e7369632e20416c7465726e61746976656c792c206120706c61696e2062616c616e6365207472616e736665722063616e206265207573656420696e206f7264657220746ff420696e6372656173652074686520636f6e7472616374732066756e647320736f20746861742069742063616e2062652063616c6c656420616761696e2e30436f6465546f6f4c617267650841012054686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e20746865482063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c6172676504d0205468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e405265656e7472616e636544656e6965640c41012054686520616374696f6e20706572666f726d6564206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420706572666f726d696e6720697420697320616c72656164793d01206f6e207468652063616c6c20737461636b2e2054686f736520616374696f6e732061726520636f6e74726163742073656c66206465737472756374696f6e20616e6420726573746f726174696f6e40206f66206120746f6d6273746f6e652e40496e707574416c72656164795265616404210120607365616c5f696e70757460207761732063616c6c65642074776963652066726f6d207468652073616d6520636f6e747261637420657865637574696f6e20636f6e746578742e5052616e646f6d5375626a656374546f6f4c6f6e6704dc20546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730421012054686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730431012054686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e0c49012054686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c7473510120696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e747261637473342069732072656a65637465642e4444656c6574696f6e517565756546756c6c1405012052656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00550120546869732063616e2068617070656e207768656e206569746865722063616c6c696e67205b6050616c6c65743a3a636c61696d5f737572636861726765605d206f7220607365616c5f7465726d696e617465602e5101205468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e250120547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e50436f6e74726163744e6f74457669637461626c65102d01204120636f6e747261637420636f756c64206e6f74206265206576696374656420626563617573652069742068617320656e6f7567682062616c616e636520746f207061792072656e742e00250120546869732063616e2062652072657475726e65642066726f6d205b6050616c6c65743a3a636c61696d5f737572636861726765605d20626563617573652074686520746172676574c420636f6e74726163742068617320656e6f7567682062616c616e636520746f2070617920666f72206974732072656e742e4053746f7261676545786861757374656410350120412073746f72616765206d6f64696669636174696f6e20657868617573746564207468652033326269742074797065207468617420686f6c6473207468652073746f726167652073697a652e00350120546869732063616e206569746865722068617070656e207768656e2074686520616363756d756c617465642073746f7261676520696e20627974657320697320746f6f206c61726765206f72ac207768656e206e756d626572206f662073746f72616765206974656d7320697320746f6f206c617267652e444475706c6963617465436f6e747261637404cc204120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f720cbc204120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00290120546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e61746560206f7220607365616c5f726573746f72655f746f602e5c44656275674d657373616765496e76616c69645554463804410120546865206465627567206d6573736167652073706563696669656420746f20607365616c5f64656275675f6d6573736167656020646f657320636f6e7461696e20696e76616c6964205554462d382e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e4101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e290101202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f7665727900010000000015204f6666656e63657301204f6666656e6365730c1c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f740c550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e50205c5b6b696e642c2074696d65736c6f745c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c753332100a0000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000c69012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00690120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e406820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e2054686519012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e744964041d0120416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d0010404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e744964a50128426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850726f786965732c3e2c2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e744964a10128426f756e6465645665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850656e64696e672c3e2c2042616c616e63654f663c543e2c290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e690120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00690120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f2061207072652d6578697374696e6761012073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b6520696e746f206163636f756e74c020603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c753332102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c39000000000000000000000c310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00690120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c79203136206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b8590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f7765696768741857656967687490590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000018710120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f72656c20612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730c75313608640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e201054697073012054726561737572790810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d1430546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e211841737365747301184173736574731014417373657400010228543a3a41737365744964f8417373657444657461696c733c543a3a42616c616e63652c20543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e00040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7401020228543a3a4173736574496430543a3a4163636f756e74496488417373657442616c616e63653c543a3a42616c616e63652c20543a3a45787472613e02280000000000000000000004e420546865206e756d626572206f6620756e697473206f66206173736574732068656c6420627920616e7920676976656e206163636f756e742e24417070726f76616c7300030c28543a3a4173736574496430543a3a4163636f756e74496430543a3a4163636f756e7449640c020202b0417070726f76616c3c543a3a42616c616e63652c204465706f73697442616c616e63654f663c542c20493e3e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d6574616461746101010228543a3a41737365744964190141737365744d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0a3e005000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e015c186372656174650c0869644c436f6d706163743c543a3a417373657449643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e636528543a3a42616c616e63654cec2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c02046756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e003020506172616d65746572733a5d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f637265617465100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653469735f73756666696369656e7410626f6f6c2c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e4cfc2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e005d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e737d01206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6720607472616e736665725f6f776e657273686970604020616e6420607365745f7465616d602e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f79080869644c436f6d706163743c543a3a417373657449643e1c7769746e6573733844657374726f795769746e65737338902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00590120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686564206f776e6572206f662074686520617373657420606964602e005101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671c2061737365742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0078205765696768743a20604f2863202b2070202b206129602077686572653ac4202d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e7473296070202d206073203d207769746e6573732e73756666696369656e74736068202d206061203d207769746e6573732e617070726f76616c7360106d696e740c0869644c436f6d706163743c543a3a417373657449643e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e308c204d696e7420617373657473206f66206120706172746963756c617220636c6173732e003d0120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e1101202d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec8202d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129605901204d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e3c490120526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00dc204261696c732077697468206042616c616e63655a65726f6020696620746865206077686f6020697320616c726561647920646561642e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea4202d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e2d01202d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e00550120456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f77207468653d01206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e003c205765696768743a20604f283129600d01204d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e48d4204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e4c7472616e736665725f6b6565705f616c6976650c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485d01204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e38666f7263655f7472616e73666572100869644c436f6d706163743c543a3a417373657449643e18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e4cb8204d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c202d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e98202d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e5d01202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e645d012060646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d82062656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f6620206064657374602e18667265657a65080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528e420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e8c202d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f283129601074686177080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528d020416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e94202d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f6173736574040869644c436f6d706163743c543a3a417373657449643e24f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296028746861775f6173736574040869644c436f6d706163743c543a3a417373657449643e24c820416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e657273686970080869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652878204368616e676520746865204f776e6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d100869644c436f6d706163743c543a3a417373657449643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530c8204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f28312960307365745f6d65746164617461100869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c73087538407c2053657420746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00dc2046756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a550120604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a820416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c730875382469735f66726f7a656e10626f6f6c38bc20466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e0070204f726967696e206d75737420626520466f7263654f726967696e2e006c20416e79206465706f736974206973206c65667420616c6f6e652e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e005501205765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e0070204f726967696e206d75737420626520466f7263654f726967696e2e006420416e79206465706f7369742069732072657475726e65642e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f61737365745f737461747573200869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e3469735f73756666696369656e7410626f6f6c2469735f66726f7a656e10626f6f6c589c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e5501202d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e7451012076616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f5901206074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e642074687573510120616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e74207374617465242067726f777468292e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c0869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e50310120417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e005c204f726967696e206d757374206265205369676e65642e00510120456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e74590120666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794d0120617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f58206d656574207468652072696768742076616c75652e004901204e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f6648206d616b696e6720746869732063616c6c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e1101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e4d01202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e420616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c080869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004101204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e6430206064656c6567617465602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004d01204f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e6c206163636f756e74206f662074686520617373657420606964602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f28312960447472616e736665725f617070726f766564100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c64657374696e6174696f6e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485101205472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d706172747924206163636f756e742e004d01204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f2074686520207369676e65722e005d012049662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b82072657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e6501202d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64c02066726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e6501202d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb8202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e00a020456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e003c205765696768743a20604f2831296001481c437265617465640c1c41737365744964244163636f756e744964244163636f756e74496404ec20536f6d6520617373657420636c6173732077617320637265617465642e205c5b61737365745f69642c2063726561746f722c206f776e65725c5d184973737565640c1c41737365744964244163636f756e7449641c42616c616e636504ec20536f6d65206173736574732077657265206973737565642e205c5b61737365745f69642c206f776e65722c20746f74616c5f737570706c795c5d2c5472616e73666572726564101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636504f420536f6d65206173736574732077657265207472616e736665727265642e205c5b61737365745f69642c2066726f6d2c20746f2c20616d6f756e745c5d184275726e65640c1c41737365744964244163636f756e7449641c42616c616e636504e420536f6d652061737365747320776572652064657374726f7965642e205c5b61737365745f69642c206f776e65722c2062616c616e63655c5d2c5465616d4368616e676564101c41737365744964244163636f756e744964244163636f756e744964244163636f756e74496404050120546865206d616e6167656d656e74207465616d206368616e676564205c5b61737365745f69642c206973737565722c2061646d696e2c20667265657a65725c5d304f776e65724368616e676564081c41737365744964244163636f756e744964049820546865206f776e6572206368616e676564205c5b61737365745f69642c206f776e65725c5d1846726f7a656e081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f60207761732066726f7a656e2e205c5b61737365745f69642c2077686f5c5d18546861776564081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f6020776173207468617765642e205c5b61737365745f69642c2077686f5c5d2c417373657446726f7a656e041c4173736574496404bc20536f6d65206173736574206061737365745f696460207761732066726f7a656e2e205c5b61737365745f69645c5d2c4173736574546861776564041c4173736574496404bc20536f6d65206173736574206061737365745f69646020776173207468617765642e205c5b61737365745f69645c5d2444657374726f796564041c41737365744964047820416e20617373657420636c617373207761732064657374726f7965642e30466f72636543726561746564081c41737365744964244163636f756e74496404e020536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e205c5b61737365745f69642c206f776e65725c5d2c4d65746164617461536574141c417373657449641c5665633c75383e1c5665633c75383e08753810626f6f6c046101204e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e205c5b61737365745f69642c206e616d652c2073796d626f6c2c20646563696d616c732c2069735f66726f7a656e5c5d3c4d65746164617461436c6561726564041c4173736574496404d4204d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e205c5b61737365745f69645c5d40417070726f7665645472616e73666572101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636508350120284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e9c205c5b61737365745f69642c20736f757263652c2064656c65676174652c20616d6f756e745c5d44417070726f76616c43616e63656c6c65640c1c41737365744964244163636f756e744964244163636f756e74496408f420416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e60205c5b69642c206f776e65722c2064656c65676174655c5d4c5472616e73666572726564417070726f766564141c41737365744964244163636f756e744964244163636f756e744964244163636f756e7449641c42616c616e63650c350120416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e60206279642074686520617070726f766564206064656c6567617465602e94205c5b69642c206f776e65722c2064656c65676174652c2064657374696e6174696f6e5c5d4841737365745374617475734368616e676564041c4173736574496408fc20416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e1c205c5b69645c5d00302842616c616e63654c6f77041901204163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e2c42616c616e63655a65726f04702042616c616e63652073686f756c64206265206e6f6e2d7a65726f2e304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e047820546865206f726967696e206163636f756e742069732066726f7a656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0490204d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e284e6f50726f7669646572046501204e6f2070726f7669646572207265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742e2c4261644d65746164617461046020496e76616c6964206d6574616461746120676976656e2e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c644469650439012054686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e220c4d6d72014c4d65726b6c654d6f756e7461696e52616e67650c20526f6f74486173680100583c5420617320436f6e6669673c493e3e3a3a486173688000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301000c75363420000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001060c753634583c5420617320436f6e6669673c493e3e3a3a48617368000400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000231c4c6f7474657279011c4c6f747465727918304c6f7474657279496e64657801000c7533321000000000001c4c6f74746572790000ac4c6f7474657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e747301010530543a3a4163636f756e74496454287533322c205665633c43616c6c496e6465783e29001400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e7401000c7533321000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b6574730001050c75333230543a3a4163636f756e74496400040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100385665633c43616c6c496e6465783e0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e0110286275795f7469636b6574041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c8c204275792061207469636b657420746f20656e74657220746865206c6f74746572792e00050120546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0d0120736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c642420737563636565642e001101204966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c1501207768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75b02073686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c820546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c73041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e181501205365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e00210120546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e29012070726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d420546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279101470726963653042616c616e63654f663c543e186c656e67746838543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721872657065617410626f6f6c28c82053746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e003020506172616d65746572733a00a0202a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e3d01202a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e4901202a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee4202a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174001001012049662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ec020546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e0110384c6f7474657279537461727465640004702041206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640004882041206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208244163636f756e7449641c42616c616e6365046820412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408244163636f756e7449642443616c6c496e64657804682041207469636b657420686173206265656e20626f7567687421082050616c6c657449642050616c6c657449642070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c730c753332100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e1c344e6f74436f6e66696775726564048c2041206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f677265737304882041206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e64656404742041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c04ac205468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e6704f420596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c73049420546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564045c204661696c656420746f20656e636f64652063616c6c73241047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a50141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265723e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d1c285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d62657210002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c753332100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770865012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e207468726f7567686c207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e251c556e6971756573011c556e69717565731814436c61737300010228543a3a436c6173734964c8436c61737344657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e000400046c2044657461696c73206f6620616e20617373657420636c6173732e1c4163636f756e7400030c30543a3a4163636f756e74496428543a3a436c617373496434543a3a496e7374616e636549640c020202082829040008610120546865206173736574732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420617373657473206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e14417373657400020228543a3a436c617373496434543a3a496e7374616e63654964d4496e7374616e636544657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e02040004d4205468652061737365747320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f6600010228543a3a436c6173734964d4436c6173734d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e0004000470204d65746164617461206f6620616e20617373657420636c6173732e48496e7374616e63654d657461646174614f6600020228543a3a436c617373496434543a3a496e7374616e63654964e0496e7374616e63654d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e020400047c204d65746164617461206f6620616e20617373657420696e7374616e63652e2441747472696275746500030c28543a3a436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0c020202dc28426f756e6465645665633c75382c20543a3a56616c75654c696d69743e2c204465706f73697442616c616e63654f663c542c20493e2904000470204d65746164617461206f6620616e20617373657420636c6173732e0158186372656174650814636c6173734c436f6d706163743c543a3a436c61737349643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636540fc2049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00b4206041737365744465706f736974602066756e6473206f662073656e646572206172652072657365727665642e003020506172616d65746572733a5501202d2060636c617373603a20546865206964656e746966696572206f6620746865206e657720617373657420636c6173732e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f6372656174650c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c400d012049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e003d01202d2060636c617373603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e732901206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e679420607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f790814636c6173734c436f6d706163743c543a3a436c61737349643e1c7769746e6573733844657374726f795769746e6573733c902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00610120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d7573742062652074686570206f776e6572206f66207468652061737365742060636c617373602e00f8202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c61737320746f2062652064657374726f7965642e4901202d20607769746e657373603a20496e666f726d6174696f6e206f6e2074686520696e7374616e636573206d696e74656420696e2074686520617373657420636c6173732e2054686973206d7573742062652420636f72726563742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0068205765696768743a20604f286e202b206d29602077686572653a68202d20606e203d207769746e6573732e696e7374616e6365736090202d20606d203d207769746e6573732e696e7374616e63655f6d657464616461746173606c202d206061203d207769746e6573732e6174747269627574657360106d696e740c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652cb8204d696e7420616e20617373657420696e7374616e6365206f66206120706172746963756c617220636c6173732e00490120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206d696e7465642ef0202d2060696e7374616e6365603a2054686520696e7374616e63652076616c7565206f662074686520617373657420746f206265206d696e7465642ee0202d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e7465642061737365742e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f28312960106275726e0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2c636865636b5f6f776e6572ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34842044657374726f7920612073696e676c6520617373657420696e7374616e63652e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206275726e65642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265206275726e65642e5501202d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c65737320746865802020206173736574206973206f776e656420627920746869732076616c75652e00b820456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e003c205765696768743a20604f2831296080204d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e10646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cc8204d6f766520616e2061737365742066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f8204f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a88202d207468652041646d696e206f66207468652061737365742060636c617373603b94202d20746865204f776e6572206f66207468652061737365742060696e7374616e6365603b6101202d2074686520617070726f7665642064656c656761746520666f72207468652061737365742060696e7374616e6365602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e002c20417267756d656e74733ad4202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207472616e736665727265642eec202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207472616e736665727265642ee4202d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f66207468652061737365742e005420456d69747320605472616e73666572726564602e003c205765696768743a20604f283129602472656465706f7369740814636c6173734c436f6d706163743c543a3a436c61737349643e24696e7374616e636573485665633c543a3a496e7374616e636549643e44a02052656576616c7561746520746865206465706f73697473206f6e20736f6d65206173736574732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2e5101202d2060696e7374616e636573603a2054686520696e7374616e636573206f662074686520617373657420636c6173732077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e005901204e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e7920617373657420696e7374616e6365732077686963682061726520756e6b6e6f776e206f723d0120696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220616101206465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e20696e7374616e63657359012077686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c7c20736f2069742773206f66206c6974746c6520636f6e73657175656e63652e0055012049742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636c61737320697320756e6b6e6f776e206f6620746865207369676e657220697368206e6f74207065726d697474656420746f2063616c6c2069742e0074205765696768743a20604f28696e7374616e6365732e6c656e2829296018667265657a650814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296010746861770814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28d42052652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207468617765642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24050120446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00a4202d2060636c617373603a2054686520617373657420636c61737320746f2062652066726f7a656e2e005420456d6974732060436c61737346726f7a656e602e003c205765696768743a20604f2831296028746861775f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24e42052652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e008c202d2060636c617373603a2054686520636c61737320746f206265207468617765642e005420456d6974732060436c617373546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e6572736869700814636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652890204368616e676520746865204f776e6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e8202d2060636c617373603a2054686520617373657420636c6173732077686f7365206f776e65722073686f756c64206265206368616e6765642eb8202d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320617373657420636c6173732e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d1014636c6173734c436f6d706163743c543a3a436c61737349643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530e0204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e4202d2060636c617373603a2054686520617373657420636c6173732077686f7365207465616d2073686f756c64206265206368616e6765642ec0202d2060697373756572603a20546865206e657720497373756572206f66207468697320617373657420636c6173732eb8202d206061646d696e603a20546865206e65772041646d696e206f66207468697320617373657420636c6173732ec8202d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320617373657420636c6173732e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c290120417070726f766520616e20696e7374616e636520746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e001501204f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f66207468652061737365742060696e7374616e6365602e002501202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e3d01202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e2101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e73666572207468652061737365742e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e506d617962655f636865636b5f64656c6567617465ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4019012043616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e20617373657420627920612064656c65676174652e005c204f726967696e206d757374206265206569746865723a58202d207468652060466f72636560206f726967696e3b0501202d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652061737365742060636c617373603b1101202d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f66207468652061737365742060696e7374616e6365603b002c20417267756d656e74733a1d01202d2060636c617373603a2054686520636c617373206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e3501202d2060696e7374616e6365603a2054686520696e7374616e6365206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e5501202d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb42020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296048666f7263655f61737365745f7374617475731c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c2469735f66726f7a656e10626f6f6c449c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e00a0202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d01202d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e20696e7374616e6365206f66207468697320617373657424202020636c6173732e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f28312960347365745f6174747269627574651014636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e1476616c756574426f756e6465645665633c75382c20543a3a56616c75654c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e4101202d20606d617962655f696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f283129603c636c6561725f6174747269627574650c14636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f28312960307365745f6d657461646174611014636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c44a02053657420746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d657461646174610814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e34a820436c65617220746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865482061737365742060696e7374616e6365602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e004501202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f20636c6561722e3101202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f28312960487365745f636c6173735f6d657461646174610c14636c6173734c436f6d706163743c543a3a436c61737349643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c40942053657420746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e005d0120496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e000501202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742077686f7365206d6574616461746120746f207570646174652e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e006820456d6974732060436c6173734d65746164617461536574602e003c205765696768743a20604f2831296050636c6561725f636c6173735f6d657461646174610414636c6173734c436f6d706163743c543a3a436c61737349643e309c20436c65617220746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e001901202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f7365206d6574616461746120746f20636c6561722e007820456d6974732060436c6173734d65746164617461436c6561726564602e003c205765696768743a20604f2831296001581c437265617465640c1c436c6173734964244163636f756e744964244163636f756e74496404e020416e20617373657420636c6173732077617320637265617465642e205c5b20636c6173732c2063726561746f722c206f776e6572205c5d30466f72636543726561746564081c436c6173734964244163636f756e74496404d420416e20617373657420636c6173732077617320666f7263652d637265617465642e205c5b20636c6173732c206f776e6572205c5d2444657374726f796564041c436c617373496404b020416e2061737365742060636c61737360207761732064657374726f7965642e205c5b20636c617373205c5d184973737565640c1c436c617373496428496e7374616e63654964244163636f756e74496404f020416e2061737365742060696e73746163656020776173206973737565642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d2c5472616e73666572726564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e74496404110120416e2061737365742060696e73746163656020776173207472616e736665727265642e205c5b20636c6173732c20696e7374616e63652c2066726f6d2c20746f205c5d184275726e65640c1c436c617373496428496e7374616e63654964244163636f756e74496404010120416e2061737365742060696e7374616e636560207761732064657374726f7965642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d1846726f7a656e081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e636560207761732066726f7a656e2e205c5b20636c6173732c20696e7374616e6365205c5d18546861776564081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e63656020776173207468617765642e205c5b20636c6173732c20696e7374616e6365205c5d2c436c61737346726f7a656e041c436c617373496404ac20536f6d652061737365742060636c61737360207761732066726f7a656e2e205c5b20636c617373205c5d2c436c617373546861776564041c436c617373496404ac20536f6d652061737365742060636c6173736020776173207468617765642e205c5b20636c617373205c5d304f776e65724368616e676564081c436c6173734964244163636f756e74496404a420546865206f776e6572206368616e676564205c5b20636c6173732c206e65775f6f776e6572205c5d2c5465616d4368616e676564101c436c6173734964244163636f756e744964244163636f756e744964244163636f756e74496404010120546865206d616e6167656d656e74207465616d206368616e676564205c5b20636c6173732c206973737565722c2061646d696e2c20667265657a6572205c5d40417070726f7665645472616e73666572101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c550120416e2060696e7374616e636560206f6620616e2061737365742060636c6173736020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e73666572206279206130206064656c6567617465602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d44417070726f76616c43616e63656c6c6564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c610120416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e73666572207468652060696e7374616e636560206f6620616e2061737365742060636c6173736020776173682063616e63656c6c65642062792069747320606f776e6572602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d4841737365745374617475734368616e676564041c436c6173734964081d0120416e2061737365742060636c617373602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e30205c5b20636c617373205c5d40436c6173734d657461646174615365740c1c436c617373496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c042d01204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c6173732e205c5b20636c6173732c20646174612c2069735f66726f7a656e205c5d50436c6173734d65746164617461436c6561726564041c436c617373496404e8204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c6173732e205c5b20636c617373205c5d2c4d65746164617461536574101c436c617373496428496e7374616e6365496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c08c4204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420696e7374616e63652e9c205c5b20636c6173732c20696e7374616e63652c20646174612c2069735f66726f7a656e205c5d3c4d65746164617461436c6561726564081c436c617373496428496e7374616e63654964041d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c20696e7374616e6365205c5d2c52656465706f7369746564081c436c6173734964485665633c543a3a496e7374616e636549643e044d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c207375636365737366756c5f696e7374616e636573205c5d30417474726962757465536574101c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e74426f756e6465645665633c75382c20543a3a56616c75654c696d69743e081101204e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c617373206f7220696e7374616e63652ea0205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c2076616c7565205c5d40417474726962757465436c65617265640c1c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e08110120417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c617373206f7220696e7374616e63652eb8205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c206d617962655f76616c7565205c5d0028304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c726561647945786973747304e82054686520617373657420696e7374616e63652049442068617320616c7265616479206265656e207573656420666f7220616e2061737365742e2857726f6e674f776e657204ec20546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e1846726f7a656e049c2054686520617373657420696e7374616e6365206f7220636c6173732069732066726f7a656e2e3457726f6e6744656c656761746504f8205468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465047c205468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e26485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f7261676524305472616e73616374696f6e7300010238543a3a426c6f636b4e756d626572505665633c5472616e73616374696f6e496e666f3e00040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e7401010238543a3a426c6f636b4e756d6265720c753332001000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c4279746546656500003042616c616e63654f663c543e040004582053746f72616765206665652070657220627974652e20456e74727946656500003042616c616e63654f663c543e040004742053746f726167652066656520706572207472616e73616374696f6e2e484d61785472616e73616374696f6e53697a6501000c753332100000000004cc204d6178696d756d20646174612073657420696e20612073696e676c65207472616e73616374696f6e20696e2062797465732e504d6178426c6f636b5472616e73616374696f6e7301000c753332100000000004d4204d6178696d756d206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e2074686520626c6f636b2e3453746f72616765506572696f64010038543a3a426c6f636b4e756d6265721000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e730100505665633c5472616e73616374696f6e496e666f3e0400003050726f6f66436865636b6564010010626f6f6c0400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f010c1473746f72650410646174611c5665633c75383e18790120496e64657820616e642073746f72652064617461206f6e20636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d20697320604d61785472616e73616374696f6e53697a65602e390120446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577602069732063616c6c65642e2c2023203c7765696768743e1501202d206e2a6c6f67286e29206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e88204164646974696f6e616c6c7920636f6e7461696e7320612044422077726974652e302023203c2f7765696768743e1472656e65770814626c6f636b38543a3a426c6f636b4e756d62657214696e6465780c7533321c31012052656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e7329012070726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e0501205472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e78204170706c6965732073616d652066656573206173206073746f7265602e2c2023203c7765696768743e30202d20436f6e7374616e742e302023203c2f7765696768743e2c636865636b5f70726f6f66041470726f6f665c5472616e73616374696f6e53746f7261676550726f6f661c1d0120436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e0501204966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e2c2023203c7765696768743e6901202d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d2070726f62696e672ea020546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2ed4204865726520776520617373756d652061206d6178696d756d206f66203130302070726f626564207472616e73616374696f6e732e302023203c2f7765696768743e010c1853746f726564040c753332048c2053746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040c75333204902052656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640004a02053746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e003444496e73756666696369656e7446756e6473047820496e73756666696369656e74206163636f756e742062616c616e63652e344e6f74436f6e66696775726564045c20496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e6404802052656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e049820417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f6604982050726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f66046c2050726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66045c204d697373696e672073746f726167652070726f6f662e404d697373696e6753746174654461746104d820556e61626c6520746f207665726966792070726f6f6620626563617375652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b048420446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b656404b02053746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c617267650468205472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73049020546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e7465787404d820417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e27041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74" diff --git a/types/metadataV13_test.go b/types/metadataV13_test.go new file mode 100644 index 000000000..a915dcfa7 --- /dev/null +++ b/types/metadataV13_test.go @@ -0,0 +1,152 @@ +package types_test + +import ( + . "github.com/centrifuge/go-substrate-rpc-client/v3/types" + "github.com/stretchr/testify/assert" + "testing" +) + +var exampleMetadataV13 = Metadata{ + MagicNumber: 0x6174656d, + Version: 13, + IsMetadataV13: true, + AsMetadataV13: exampleRuntimeMetadataV13, +} + +var exampleRuntimeMetadataV13 = MetadataV13{ + Modules: []ModuleMetadataV13{exampleModuleMetadataV13Empty, exampleModuleMetadataV131, exampleModuleMetadataV132}, +} + +var exampleModuleMetadataV13Empty = ModuleMetadataV13{ + Name: "EmptyModule_13", + HasStorage: false, + Storage: StorageMetadataV13{}, + HasCalls: false, + Calls: nil, + HasEvents: false, + Events: nil, + Constants: nil, + Errors: nil, + Index: 0, +} + +var exampleModuleMetadataV131 = ModuleMetadataV13{ + Name: "Module1_13", + HasStorage: true, + Storage: exampleStorageMetadataV13, + HasCalls: true, + Calls: []FunctionMetadataV4{exampleFunctionMetadataV4}, + HasEvents: true, + Events: []EventMetadataV4{exampleEventMetadataV4}, + Constants: []ModuleConstantMetadataV6{exampleModuleConstantMetadataV6}, + Errors: []ErrorMetadataV8{exampleErrorMetadataV8}, + Index: 1, +} + +var exampleModuleMetadataV132 = ModuleMetadataV13{ + Name: "Module2_13", + HasStorage: true, + Storage: exampleStorageMetadataV13, + HasCalls: true, + Calls: []FunctionMetadataV4{exampleFunctionMetadataV4}, + HasEvents: true, + Events: []EventMetadataV4{exampleEventMetadataV4}, + Constants: []ModuleConstantMetadataV6{exampleModuleConstantMetadataV6}, + Errors: []ErrorMetadataV8{exampleErrorMetadataV8}, + Index: 2, +} + +var exampleStorageMetadataV13 = StorageMetadataV13{ + Prefix: "myStoragePrefix_13", + Items: []StorageFunctionMetadataV13{exampleStorageFunctionMetadataV13Type, exampleStorageFunctionMetadataV13Map, + exampleStorageFunctionMetadataV13DoubleMap, exampleStorageFunctionMetadataV13NMap}, +} + +var exampleStorageFunctionMetadataV13Type = StorageFunctionMetadataV13{ + Name: "myStorageFunc_13", + Modifier: StorageFunctionModifierV0{IsOptional: true}, + Type: StorageFunctionTypeV13{IsType: true, AsType: "U8"}, + Fallback: []byte{23, 14}, + Documentation: []Text{"My", "storage func", "doc"}, +} + +var exampleStorageFunctionMetadataV13Map = StorageFunctionMetadataV13{ + Name: "myStorageFunc2_13", + Modifier: StorageFunctionModifierV0{IsOptional: true}, + Type: StorageFunctionTypeV13{IsMap: true, AsMap: exampleMapTypeV10}, + Fallback: []byte{23, 14}, + Documentation: []Text{"My", "storage func", "doc"}, +} + +var exampleStorageFunctionMetadataV13DoubleMap = StorageFunctionMetadataV13{ + Name: "myStorageFunc3_13", + Modifier: StorageFunctionModifierV0{IsOptional: true}, + Type: StorageFunctionTypeV13{IsDoubleMap: true, AsDoubleMap: exampleDoubleMapTypeV10}, + Fallback: []byte{23, 14}, + Documentation: []Text{"My", "storage func", "doc"}, +} + +var exampleStorageFunctionMetadataV13NMap = StorageFunctionMetadataV13{ + Name: "myStorageFunc4_13", + Modifier: StorageFunctionModifierV0{IsOptional: true}, + Type: StorageFunctionTypeV13{IsNMap: true, AsNMap: exampleNMapTypeV13}, + Fallback: []byte{23, 14}, + Documentation: []Text{"My", "storage func", "doc"}, +} + +var exampleNMapTypeV13 = NMapTypeV13{ + Hashers: []StorageHasherV10{{IsBlake2_256: true}, {IsBlake2_128Concat: true}, {IsIdentity: true}}, + Keys: []Type{"myKey1", "myKey2", "myKey3"}, + Value: "and a value", +} + +func TestMetadataV13_ExistsModuleMetadata(t *testing.T) { + assert.True(t, exampleMetadataV13.ExistsModuleMetadata("EmptyModule_13")) + assert.False(t, exampleMetadataV13.ExistsModuleMetadata("NotExistModule")) +} + +func TestMetadataV13_FindEventNamesForEventID(t *testing.T) { + module, event, err := exampleMetadataV13.FindEventNamesForEventID(EventID([2]byte{1, 0})) + + assert.NoError(t, err) + assert.Equal(t, exampleModuleMetadataV131.Name, module) + assert.Equal(t, exampleEventMetadataV4.Name, event) +} + +func TestMetadataV13_FindEventNamesForUnknownModule(t *testing.T) { + _, _, err := exampleMetadataV13.FindEventNamesForEventID(EventID([2]byte{1, 18})) + + assert.Error(t, err) +} + +func TestMetadataV13_TestFindStorageEntryMetadata(t *testing.T) { + _, err := exampleMetadataV13.FindStorageEntryMetadata("myStoragePrefix_13", "myStorageFunc2_13") + assert.NoError(t, err) +} + +func TestMetadataV13_TestFindCallIndex(t *testing.T) { + callIndex, err := exampleMetadataV13.FindCallIndex("Module2_13.my function") + assert.NoError(t, err) + assert.Equal(t, exampleModuleMetadataV132.Index, callIndex.SectionIndex) + assert.Equal(t, uint8(0), callIndex.MethodIndex) +} + +func TestMetadataV13_TestFindCallIndexWithUnknownModule(t *testing.T) { + _, err := exampleMetadataV13.FindCallIndex("UnknownModule.my function") + assert.Error(t, err) +} + +func TestMetadataV13_TestFindCallIndexWithUnknownFunction(t *testing.T) { + _, err := exampleMetadataV13.FindCallIndex("Module2_13.unknownFunction") + assert.Error(t, err) +} + +func TestNewMetadataV13_Decode(t *testing.T) { + metadata := NewMetadataV13() + err := DecodeFromBytes(MustHexDecodeString(ExamplaryMetadataV13SubstrateString), metadata) + assert.True(t, metadata.IsMetadataV13) + assert.NoError(t, err) + data, err := EncodeToBytes(metadata) + assert.NoError(t, err) + assert.Equal(t, ExamplaryMetadataV13SubstrateString, HexEncodeToString(data)) +} diff --git a/types/metadataV4.go b/types/metadataV4.go index 52e1a6048..b87cdbe93 100644 --- a/types/metadataV4.go +++ b/types/metadataV4.go @@ -87,6 +87,10 @@ func (m *MetadataV4) FindEventNamesForEventID(eventID EventID) (Text, Text, erro return "", "", fmt.Errorf("module index %v out of range", eventID[0]) } +func (m *MetadataV4) FindConstantValue(_module Text, _constant Text) ([]byte, error) { + return nil, fmt.Errorf("constants are only supported from metadata v6 and up") +} + func (m *MetadataV4) FindStorageEntryMetadata(module string, fn string) (StorageEntryMetadata, error) { for _, mod := range m.Modules { if !mod.HasStorage { @@ -119,8 +123,10 @@ type StorageEntryMetadata interface { IsPlain() bool IsMap() bool IsDoubleMap() bool + IsNMap() bool Hasher() (hash.Hash, error) Hasher2() (hash.Hash, error) + Hashers() ([]hash.Hash, error) } type ModuleMetadataV4 struct { @@ -252,6 +258,14 @@ func (s StorageFunctionMetadataV4) IsDoubleMap() bool { return s.Type.IsDoubleMap } +func (s StorageFunctionMetadataV4) IsNMap() bool { + return false +} + +func (s StorageFunctionMetadataV4) Hashers() ([]hash.Hash, error) { + return nil, fmt.Errorf("Hashers is not supported for metadata v4, please upgrade to use metadata v13 or newer") +} + func (s StorageFunctionMetadataV4) Hasher() (hash.Hash, error) { if s.Type.IsMap { return s.Type.AsMap.Hasher.HashFunc() diff --git a/types/metadataV7.go b/types/metadataV7.go index 24fca5a11..263f8e34d 100644 --- a/types/metadataV7.go +++ b/types/metadataV7.go @@ -85,6 +85,19 @@ func (m *MetadataV7) FindEventNamesForEventID(eventID EventID) (Text, Text, erro return "", "", fmt.Errorf("module index %v out of range", eventID[0]) } +func (m *MetadataV7) FindConstantValue(module Text, constant Text) ([]byte, error) { + for _, mod := range m.Modules { + if mod.Name == module { + for _, cons := range mod.Constants { + if cons.Name == constant { + return cons.Value, nil + } + } + } + } + return nil, fmt.Errorf("could not find constant %s.%s", module, constant) +} + func (m *MetadataV7) FindStorageEntryMetadata(module string, fn string) (StorageEntryMetadata, error) { for _, mod := range m.Modules { if !mod.HasStorage { @@ -239,6 +252,14 @@ func (s StorageFunctionMetadataV5) IsDoubleMap() bool { return s.Type.IsDoubleMap } +func (s StorageFunctionMetadataV5) IsNMap() bool { + return false +} + +func (s StorageFunctionMetadataV5) Hashers() ([]hash.Hash, error) { + return nil, fmt.Errorf("Hashers is not supported for metadata v5, please upgrade to use metadata v13 or newer") +} + func (s StorageFunctionMetadataV5) Hasher() (hash.Hash, error) { if s.Type.IsMap { return s.Type.AsMap.Hasher.HashFunc() diff --git a/types/metadataV8.go b/types/metadataV8.go index 3ac655fec..09f7b62e9 100644 --- a/types/metadataV8.go +++ b/types/metadataV8.go @@ -83,6 +83,19 @@ func (m *MetadataV8) FindEventNamesForEventID(eventID EventID) (Text, Text, erro return "", "", fmt.Errorf("module index %v out of range", eventID[0]) } +func (m *MetadataV8) FindConstantValue(module Text, constant Text) ([]byte, error) { + for _, mod := range m.Modules { + if mod.Name == module { + for _, cons := range mod.Constants { + if cons.Name == constant { + return cons.Value, nil + } + } + } + } + return nil, fmt.Errorf("could not find constant %s.%s", module, constant) +} + func (m *MetadataV8) FindStorageEntryMetadata(module string, fn string) (StorageEntryMetadata, error) { for _, mod := range m.Modules { if !mod.HasStorage { diff --git a/types/metadataV9.go b/types/metadataV9.go index 2ca8b0b05..9881c8349 100644 --- a/types/metadataV9.go +++ b/types/metadataV9.go @@ -83,6 +83,19 @@ func (m *MetadataV9) FindEventNamesForEventID(eventID EventID) (Text, Text, erro return "", "", fmt.Errorf("module index %v out of range", eventID[0]) } +func (m *MetadataV9) FindConstantValue(module Text, constant Text) ([]byte, error) { + for _, mod := range m.Modules { + if mod.Name == module { + for _, cons := range mod.Constants { + if cons.Name == constant { + return cons.Value, nil + } + } + } + } + return nil, fmt.Errorf("could not find constant %s.%s", module, constant) +} + func (m *MetadataV9) FindStorageEntryMetadata(module string, fn string) (StorageEntryMetadata, error) { for _, mod := range m.Modules { if !mod.HasStorage { diff --git a/types/storage_key.go b/types/storage_key.go index 36ddf682d..ccded38c8 100644 --- a/types/storage_key.go +++ b/types/storage_key.go @@ -37,7 +37,8 @@ func NewStorageKey(b []byte) StorageKey { // CreateStorageKey uses the given metadata and to derive the right hashing of method, prefix as well as arguments to // create a hashed StorageKey -func CreateStorageKey(meta *Metadata, prefix, method string, arg []byte, arg2 []byte) (StorageKey, error) { +// Using variadic argument, so caller do not need to construct array of arguments +func CreateStorageKey(meta *Metadata, prefix, method string, args ...[]byte) (StorageKey, error) { stringKey := []byte(prefix + " " + method) entryMeta, err := meta.FindStorageEntryMetadata(prefix, method) @@ -45,11 +46,23 @@ func CreateStorageKey(meta *Metadata, prefix, method string, arg []byte, arg2 [] return nil, err } + if entryMeta.IsNMap() { + return createKeyNMap(meta, method, prefix, args, entryMeta) + } + if entryMeta.IsDoubleMap() { - return createKeyDoubleMap(meta, method, prefix, stringKey, arg, arg2, entryMeta) + if len(args) != 2 { + return nil, fmt.Errorf("%v is a double map, therefore requires precisely two arguments. "+ + "received: %d", method, len(args)) + } + return createKeyDoubleMap(meta, method, prefix, stringKey, args[0], args[1], entryMeta) } - return createKey(meta, method, prefix, stringKey, arg, entryMeta) + if len(args) != 1 { + return nil, fmt.Errorf("%v is a map, therefore requires precisely one argument. "+ + "received: %d", method, len(args)) + } + return createKey(meta, method, prefix, stringKey, args[0], entryMeta) } // Encode implements encoding for StorageKey, which just unwraps the bytes of StorageKey @@ -77,6 +90,35 @@ func (s StorageKey) Hex() string { return fmt.Sprintf("%#x", s) } +func createKeyNMap(meta *Metadata, method, prefix string, args [][]byte, + entryMeta StorageEntryMetadata) (StorageKey, error) { + if !meta.IsMetadataV13 { + return nil, fmt.Errorf("storage n map is only supported in metadata version 13 or up") + } + + hashers, err := entryMeta.Hashers() + if err != nil { + return nil, err + } + + if len(hashers) != len(args) { + return nil, fmt.Errorf("number of arguments should exactly match number of hashers in metadata. "+ + "Expected: %d, received: %d", len(hashers), len(args)) + } + + key := createPrefixedKey(method, prefix) + + for i, arg := range args { + _, err := hashers[i].Write(arg) + if err != nil { + return nil, fmt.Errorf("unable to hash args[%d]: %s Error: %v", i, arg, err) + } + key = append(key, hashers[i].Sum(nil)...) + } + + return key, nil +} + // createKeyDoubleMap creates a key for a DoubleMap type func createKeyDoubleMap(meta *Metadata, method, prefix string, stringKey, arg, arg2 []byte, entryMeta StorageEntryMetadata) (StorageKey, error) { diff --git a/types/storage_key_test.go b/types/storage_key_test.go index ec59175dd..5c223b599 100644 --- a/types/storage_key_test.go +++ b/types/storage_key_test.go @@ -27,10 +27,20 @@ const ( AlicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" ) +func TestCreateStorageKeyPlainV13(t *testing.T) { + m := ExamplaryMetadataV13 + + key, err := CreateStorageKey(m, "Timestamp", "Now", nil) + assert.NoError(t, err) + hex, err := Hex(key) + assert.NoError(t, err) + assert.Equal(t, "0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb", hex) +} + func TestCreateStorageKeyPlainV10(t *testing.T) { m := ExamplaryMetadataV10 - key, err := CreateStorageKey(m, "Timestamp", "Now", nil, nil) + key, err := CreateStorageKey(m, "Timestamp", "Now", nil) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) @@ -40,7 +50,7 @@ func TestCreateStorageKeyPlainV10(t *testing.T) { func TestCreateStorageKeyPlainV9(t *testing.T) { m := ExamplaryMetadataV9 - key, err := CreateStorageKey(m, "Timestamp", "Now", nil, nil) + key, err := CreateStorageKey(m, "Timestamp", "Now", nil) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) @@ -50,7 +60,7 @@ func TestCreateStorageKeyPlainV9(t *testing.T) { func TestCreateStorageKeyPlainV4(t *testing.T) { m := ExamplaryMetadataV4 - key, err := CreateStorageKey(m, "Timestamp", "Now", nil, nil) + key, err := CreateStorageKey(m, "Timestamp", "Now", nil) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) @@ -60,7 +70,7 @@ func TestCreateStorageKeyPlainV4(t *testing.T) { func TestCreateStorageKeyMapV10(t *testing.T) { b := MustHexDecodeString(AlicePubKey) m := ExamplaryMetadataV10 - key, err := CreateStorageKey(m, "System", "AccountNonce", b, nil) + key, err := CreateStorageKey(m, "System", "AccountNonce", b) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) @@ -70,7 +80,7 @@ func TestCreateStorageKeyMapV10(t *testing.T) { func TestCreateStorageKeyMapV9(t *testing.T) { b := MustHexDecodeString(AlicePubKey) m := ExamplaryMetadataV9 - key, err := CreateStorageKey(m, "System", "AccountNonce", b, nil) + key, err := CreateStorageKey(m, "System", "AccountNonce", b) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) @@ -80,13 +90,23 @@ func TestCreateStorageKeyMapV9(t *testing.T) { func TestCreateStorageKeyMapV4(t *testing.T) { b := MustHexDecodeString(AlicePubKey) m := ExamplaryMetadataV4 - key, err := CreateStorageKey(m, "System", "AccountNonce", b, nil) + key, err := CreateStorageKey(m, "System", "AccountNonce", b) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) assert.Equal(t, "0x5c54163a1c72509b5250f0a30b9001fdee9d9b48388b06921f1b210e81e3a1f0", hex) } +func TestCreateStorageKeyMapV13(t *testing.T) { + m := ExamplaryMetadataV13 + b := MustHexDecodeString(AlicePubKey) + key, err := CreateStorageKey(m, "System", "Account", b) + assert.NoError(t, err) + hex, err := Hex(key) + assert.NoError(t, err) + assert.Equal(t, "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", hex) +} + func TestCreateStorageKeyDoubleMapV10(t *testing.T) { m := ExamplaryMetadataV10 key, err := CreateStorageKey(m, "Session", "NextKeys",