From 5ce3524ccd5c027e8fe8884e94439ceecdcad569 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 25 Sep 2020 16:32:48 +0200 Subject: [PATCH] Drop Metadata V0-V8 (#2634) * Drop MetadatV0 * Apply suggestions from code review * Restore asV1 * Remove V0 comment * Handle DoNotConstruct in enum * No imports from DoNotConstruct * Merge & re-generate * Attempt empty construction * Drop Metadata from 0-4 * CHANGELOG * assert(5) * BE vs LE * Metadataall to no-construction * Empty U8a create * Remove old comment * Santize handling * Update CHANGELOG.md * Drop support for Metadata < 9 * Remove old pre-9 definitions * Update CHANGELOG.md * CHANGELOG * Remove v8-era tests * v8 tests --- CHANGELOG.md | 4 +- packages/api/src/base/Init.ts | 5 +- .../fromMetadata/createFunction.spec.ts | 139 +- .../storage/fromMetadata/createFunction.ts | 40 +- .../storage/fromMetadata/fromMetadata.spec.ts | 21 - .../storage/fromMetadata/substrate.spec.ts | 32 - packages/metadata/src/Metadata/Metadata.ts | 26 +- .../src/Metadata/MetadataVersioned.ts | 88 +- .../src/Metadata/v0/static-substrate.json | 2898 ---------- packages/metadata/src/Metadata/v0/static.ts | 7 - packages/metadata/src/Metadata/v0/toV1.ts | 50 - .../metadata/src/Metadata/v1/Metadata.spec.ts | 18 - .../src/Metadata/v1/static-substrate.json | 3009 ----------- packages/metadata/src/Metadata/v1/static.ts | 6 - packages/metadata/src/Metadata/v1/toV2.ts | 10 - .../metadata/src/Metadata/v2/Metadata.spec.ts | 18 - .../src/Metadata/v2/static-substrate.json | 3093 ----------- packages/metadata/src/Metadata/v2/static.ts | 6 - packages/metadata/src/Metadata/v2/toV3.ts | 10 - .../metadata/src/Metadata/v3/Metadata.spec.ts | 18 - .../src/Metadata/v3/static-substrate.json | 3204 ----------- packages/metadata/src/Metadata/v3/static.ts | 6 - packages/metadata/src/Metadata/v3/toV4.ts | 61 - .../metadata/src/Metadata/v4/Metadata.spec.ts | 18 - .../src/Metadata/v4/static-substrate.json | 3423 ------------ packages/metadata/src/Metadata/v4/static.ts | 6 - packages/metadata/src/Metadata/v4/toV5.ts | 71 - .../metadata/src/Metadata/v5/Metadata.spec.ts | 18 - .../src/Metadata/v5/static-substrate.json | 3580 ------------- packages/metadata/src/Metadata/v5/static.ts | 6 - packages/metadata/src/Metadata/v5/toV6.ts | 21 - .../metadata/src/Metadata/v6/Metadata.spec.ts | 18 - .../src/Metadata/v6/static-substrate.json | 4104 -------------- packages/metadata/src/Metadata/v6/static.ts | 6 - packages/metadata/src/Metadata/v6/toV7.ts | 22 - .../metadata/src/Metadata/v7/Metadata.spec.ts | 18 - .../src/Metadata/v7/static-substrate.json | 4544 ---------------- packages/metadata/src/Metadata/v7/static.ts | 6 - packages/metadata/src/Metadata/v7/toV8.ts | 21 - .../metadata/src/Metadata/v8/Metadata.spec.ts | 18 - .../src/Metadata/v8/static-substrate.json | 4713 ----------------- packages/metadata/src/Metadata/v8/static.ts | 6 - packages/metadata/src/Metadata/v8/toV9.ts | 10 - .../rpc-core/src/formatting.spec.FIXME-ts | 211 - packages/typegen/src/generate/tsDef.ts | 9 +- packages/types-known/src/index.ts | 8 - packages/types-known/src/metadata.ts | 25 - packages/types-known/src/modules.ts | 4 - packages/types/src/augment/registry.ts | 367 +- packages/types/src/index.spec.ts | 1 + .../src/interfaces/metadata/definitions.ts | 396 +- .../types/src/interfaces/metadata/types.ts | 656 +-- .../src/interfaces/system/EventRecord.spec.ts | 16 - .../src/interfaces/system/definitions.ts | 4 - packages/types/src/interfaces/system/types.ts | 6 - .../types/src/primitive/StorageKey.spec.ts | 245 - 56 files changed, 179 insertions(+), 35167 deletions(-) delete mode 100644 packages/metadata/src/Decorated/storage/fromMetadata/substrate.spec.ts delete mode 100644 packages/metadata/src/Metadata/v0/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v0/static.ts delete mode 100644 packages/metadata/src/Metadata/v0/toV1.ts delete mode 100644 packages/metadata/src/Metadata/v1/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v1/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v1/static.ts delete mode 100644 packages/metadata/src/Metadata/v1/toV2.ts delete mode 100644 packages/metadata/src/Metadata/v2/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v2/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v2/static.ts delete mode 100644 packages/metadata/src/Metadata/v2/toV3.ts delete mode 100644 packages/metadata/src/Metadata/v3/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v3/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v3/static.ts delete mode 100644 packages/metadata/src/Metadata/v3/toV4.ts delete mode 100644 packages/metadata/src/Metadata/v4/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v4/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v4/static.ts delete mode 100644 packages/metadata/src/Metadata/v4/toV5.ts delete mode 100644 packages/metadata/src/Metadata/v5/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v5/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v5/static.ts delete mode 100644 packages/metadata/src/Metadata/v5/toV6.ts delete mode 100644 packages/metadata/src/Metadata/v6/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v6/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v6/static.ts delete mode 100644 packages/metadata/src/Metadata/v6/toV7.ts delete mode 100644 packages/metadata/src/Metadata/v7/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v7/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v7/static.ts delete mode 100644 packages/metadata/src/Metadata/v7/toV8.ts delete mode 100644 packages/metadata/src/Metadata/v8/Metadata.spec.ts delete mode 100644 packages/metadata/src/Metadata/v8/static-substrate.json delete mode 100644 packages/metadata/src/Metadata/v8/static.ts delete mode 100644 packages/metadata/src/Metadata/v8/toV9.ts delete mode 100644 packages/rpc-core/src/formatting.spec.FIXME-ts delete mode 100644 packages/types-known/src/metadata.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 388f8f95b0..d435fe2bfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,13 @@ ## 1.35.0-beta.x +- **Important** Metadata versions before v9 is not supported anymore. v4 was the first version to go with the Substrate 1.0 while Kusama itself starts at v9 as the earliest version. This means that Substrate 1.x chains that have not had any upgrades are not supported in this version of the API anymore. - **Breaking change** The `RefCount` type (used by `query.system.accounts`) has been changed to a `u32`. On older chains supply the `RefCount: 'RefCountTo259'` override -- **Breaking change** Support for the old-style linked-map retrievals have been dropped, only `.keys()/.entries()` are available now for map iteration. Al known live chains have been upgraded to versions that don't have linked lists. +- **Breaking change** Support for the old-style linked-map retrievals via `query..map()` have been dropped, only the existing `.keys()/.entries()` are available for map iteration. Changes: +- Drop support for Substrate 1.0 metadata versions 0-4 - Adjust `RefCount` type as per substrate 2.0 - Add bounty type definitions from treasury - Add support for `grandpa_proveFinality` RPC diff --git a/packages/api/src/base/Init.ts b/packages/api/src/base/Init.ts index 03c789e5b6..a71797ba1e 100644 --- a/packages/api/src/base/Init.ts +++ b/packages/api/src/base/Init.ts @@ -11,7 +11,7 @@ import { Observable, Subscription, of } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { Metadata, Text, TypeRegistry } from '@polkadot/types'; import { LATEST_EXTRINSIC_VERSION } from '@polkadot/types/extrinsic/Extrinsic'; -import { getMetadataTypes, getSpecAlias, getSpecTypes, getUpgradeVersion } from '@polkadot/types-known'; +import { getSpecAlias, getSpecTypes, getUpgradeVersion } from '@polkadot/types-known'; import { BN_ZERO, assert, logger, u8aEq, u8aToU8a } from '@polkadot/util'; import { cryptoWaitReady } from '@polkadot/util-crypto'; @@ -264,9 +264,6 @@ export default abstract class Init extends Decorate { - // inject types based on metadata, if applicable - this.registerTypes(getMetadataTypes(this.registry, metadata.version)); - const metaExtrinsic = metadata.asLatest.extrinsic; // only inject if we are not a clone (global init) diff --git a/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.spec.ts b/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.spec.ts index 07167410e2..3bd865e9fa 100644 --- a/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.spec.ts +++ b/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.spec.ts @@ -2,150 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 import { Text, TypeRegistry } from '@polkadot/types'; -import { StorageEntry } from '@polkadot/types/primitive/StorageKey'; -import { assert, stringToU8a, u8aConcat, u8aToHex } from '@polkadot/util'; +import { u8aToHex } from '@polkadot/util'; import createFunction from './createFunction'; describe('createFunction', (): void => { const registry = new TypeRegistry(); - it('should create timestamp.now correctly', (): void => { - expect( - createFunction(registry, { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - meta: { type: {} } as any, - method: 'Now', - prefix: 'Timestamp', - section: 'timestamp' - }, { metaVersion: 8 })() - ).toEqual( - Uint8Array.from([64, 14, 73, 68, 207, 217, 141, 111, 76, 195, 116, 209, 111, 90, 78, 63, 156]) // Length-prefixed - ); - }); - - it('allows overrides on key (keeping name)', (): void => { - expect( - createFunction( - registry, - { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - meta: { type: {} } as any, - method: 'authorityCount', - prefix: 'Substrate', - section: 'substrate' - }, - { - key: ':auth:len', - metaVersion: 8, - skipHashing: true - } - ).method - ).toEqual('authorityCount'); - }); - - it('allows overrides on key (unhashed)', (): void => { - const key = ':auth:len'; - - expect( - createFunction( - registry, - { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - meta: { type: {} } as any, - method: 'authorityCount', - prefix: 'Substrate', - section: 'substrate' - }, - { - key, - metaVersion: 8, - skipHashing: true - } - )() - ).toEqual( - u8aConcat( - Uint8Array.from([key.length << 2]), - stringToU8a(':auth:len') - ) - ); - }); - - describe('the created double map function', (): void => { - let storageFn: StorageEntry; - - beforeAll((): void => { - storageFn = createFunction(registry, { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - meta: { - name: 'metaName', - type: { - asDoubleMap: { - hasher: registry.createType('StorageHasher', 'Blake2_256'), - key1: new Text(registry, 'AccountId'), - key2: new Text(registry, 'AccountId'), - key2Hasher: registry.createType('StorageHasher', 'Twox128'), - value: new Text(registry, 'Balance') - }, - isDoubleMap: true - } - } as any, - method: 'FreeBalance', - prefix: 'GenericAsset', - section: 'genericAsset' - }, { metaVersion: 8 }); - }); - - it('should return correct key', (): void => { - const result = storageFn(['5DXUeE5N5LtkW97F2PzqYPyqNkxqSWESdGSPTX6AvkUAhwKP', '5DXUeE5N5LtkW97F2PzqYPyqNkxqSWESdGSPTX6AvkUAhwKP']); - - expect(u8aToHex(result)).toEqual('0xc000fa40e72d7173e69ee54b980345ea01cb81e64258502e0247af4303dee91ec0aec2ecd3a60ab080cff7b52a8f6d543b'); - }); - - it('needs two arguments', (): void => { - expect( - (): Uint8Array => storageFn(['5DXUeE5N5LtkW97F2PzqYPyqNkxqSWESdGSPTX6AvkUAhwKP']) - ).toThrow(/requires two arguments/); - }); - - it('accepts an optional parameter for key construction', (): void => { - const iterKey = storageFn.iterKey; - - assert(iterKey, 'storageFn.iterKey is undefined'); - - const result = iterKey('5DXUeE5N5LtkW97F2PzqYPyqNkxqSWESdGSPTX6AvkUAhwKP'); - - expect(u8aToHex(result)).toEqual('0x223416315e3dddca3b5a47fd0ac8e4916482b9ade7bc6657aaca787ba1add3b4c4303117deb55aad9858c8a873273280f78d172b398d5e77e43a2db5e42163e9'); - expect(u8aToHex(iterKey())).toEqual('0x223416315e3dddca3b5a47fd0ac8e4916482b9ade7bc6657aaca787ba1add3b4'); - }); - }); - - it('allows creates double map function with a Null type key', (): void => { - const storageFn = createFunction(registry, { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - meta: { - type: { - asDoubleMap: { - hasher: registry.createType('StorageHasher', 'Blake2_256'), - key1: new Text(registry, 'Null'), - key2: new Text(registry, 'Hash'), - key2Hasher: registry.createType('StorageHasher', 'Blake2_256'), - value: new Text(registry, 'Vec<(BlockNumber,EventIndex)>') - }, - isDoubleMap: true - } - } as any, - method: 'EventTopics', - prefix: 'System', - section: 'system' - }, { metaVersion: 8 }); - - // the value of the Null type key does not effect the result - expect(u8aToHex(storageFn(['any', [1, 2, 3]]))).toEqual(u8aToHex(storageFn([[1, 2, 3], [1, 2, 3]]))); - // the value of the not Null type key does effect the result - expect(u8aToHex(storageFn(['any', [1, 2, 3]]))).not.toEqual(u8aToHex(storageFn(['any', [1, 2, 3, 4]]))); - }); - it('allows creating of known DoubleMap keys (with Bytes)', (): void => { const storageFn = createFunction(registry, { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment diff --git a/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.ts b/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.ts index 0d1ced823a..304f82a6d4 100644 --- a/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.ts +++ b/packages/metadata/src/Decorated/storage/fromMetadata/createFunction.ts @@ -8,7 +8,7 @@ import BN from 'bn.js'; import { Compact, Raw } from '@polkadot/types/codec'; import { createTypeUnsafe } from '@polkadot/types/create'; import StorageKey, { StorageEntry } from '@polkadot/types/primitive/StorageKey'; -import { assert, compactStripLength, isNull, isUndefined, stringLowerFirst, stringToU8a, u8aConcat } from '@polkadot/util'; +import { assert, compactStripLength, isNull, isUndefined, stringLowerFirst, u8aConcat } from '@polkadot/util'; import { xxhashAsU8a } from '@polkadot/util-crypto'; import getHasher, { HasherFunction } from './getHasher'; @@ -68,7 +68,7 @@ function createPrefixedKey ({ method, prefix }: CreateItemFn): Uint8Array { // create a key for a DoubleMap type /** @internal */ -function createKeyDoubleMap (registry: Registry, itemFn: CreateItemFn, stringKey: string, args: [CreateArgType, CreateArgType], [hasher1, hasher2]: [HasherFunction, HasherFunction?], metaVersion: number): Uint8Array { +function createKeyDoubleMap (registry: Registry, itemFn: CreateItemFn, stringKey: string, args: [CreateArgType, CreateArgType], [hasher1, hasher2]: [HasherFunction, HasherFunction?]): Uint8Array { const { meta: { name, type } } = itemFn; // since we are passing an almost-unknown through, trust, but verify @@ -83,23 +83,16 @@ function createKeyDoubleMap (registry: Registry, itemFn: CreateItemFn, stringKey const val2 = createTypeUnsafe(registry, map.key2.toString(), [key2]).toU8a(); // as per createKey, always add the length prefix (underlying it is Bytes) - return Compact.addLengthPrefix( - metaVersion <= 8 - ? u8aConcat( - hasher1(u8aConcat(stringToU8a(stringKey), val1)), - hasher2(val2) - ) - : u8aConcat( - createPrefixedKey(itemFn), - hasher1(val1), - hasher2(val2) - ) - ); + return Compact.addLengthPrefix(u8aConcat( + createPrefixedKey(itemFn), + hasher1(val1), + hasher2(val2) + )); } // create a key for either a map or a plain value /** @internal */ -function createKey (registry: Registry, itemFn: CreateItemFn, stringKey: string, arg: CreateArgType, hasher: (value: Uint8Array) => Uint8Array, metaVersion: number): Uint8Array { +function createKey (registry: Registry, itemFn: CreateItemFn, stringKey: string, arg: CreateArgType, hasher: (value: Uint8Array) => Uint8Array): Uint8Array { const { meta: { name, type } } = itemFn; let param: Uint8Array = EMPTY_U8A; @@ -112,11 +105,12 @@ function createKey (registry: Registry, itemFn: CreateItemFn, stringKey: string, } // StorageKey is a Bytes, so is length-prefixed - return Compact.addLengthPrefix( - metaVersion <= 8 - ? hasher(u8aConcat(stringToU8a(stringKey), param)) - : u8aConcat(createPrefixedKey(itemFn), param.length ? hasher(param) : EMPTY_U8A) - ); + return Compact.addLengthPrefix(u8aConcat( + createPrefixedKey(itemFn), + param.length + ? hasher(param) + : EMPTY_U8A + )); } // attach the metadata to expand to a StorageFunction @@ -150,7 +144,7 @@ function extendHeadMeta (registry: Registry, { meta: { documentation, name, type fallback: registry.createType('Bytes', createTypeUnsafe(registry, outputType).toHex()), modifier: registry.createType('StorageEntryModifierLatest', 1), // required name, - type: registry.createType('StorageEntryTypeLatest', registry.createType('PlainTypeLatest', type.isMap ? type.asMap.key : type.asDoubleMap.key1), 0) + type: registry.createType('StorageEntryTypeLatest', registry.createType('Type', type.isMap ? type.asMap.key : type.asDoubleMap.key1), 0) }); const prefixKey = registry.createType('StorageKey', iterFn, { method, section }); @@ -195,8 +189,8 @@ export default function createFunction (registry: Registry, itemFn: CreateItemFn // For doublemap queries the params is passed in as an tuple, [key1, key2] const _storageFn = (arg?: CreateArgType | [CreateArgType?, CreateArgType?]): Uint8Array => type.isDoubleMap - ? createKeyDoubleMap(registry, itemFn, stringKey, arg as [CreateArgType, CreateArgType], [hasher, key2Hasher], options.metaVersion) - : createKey(registry, itemFn, stringKey, arg as CreateArgType, options.skipHashing ? NULL_HASHER : hasher, options.metaVersion); + ? createKeyDoubleMap(registry, itemFn, stringKey, arg as [CreateArgType, CreateArgType], [hasher, key2Hasher]) + : createKey(registry, itemFn, stringKey, arg as CreateArgType, options.skipHashing ? NULL_HASHER : hasher); const storageFn = expandWithMeta(itemFn, _storageFn as StorageEntry); diff --git a/packages/metadata/src/Decorated/storage/fromMetadata/fromMetadata.spec.ts b/packages/metadata/src/Decorated/storage/fromMetadata/fromMetadata.spec.ts index 2f1a010e41..f1f1299565 100644 --- a/packages/metadata/src/Decorated/storage/fromMetadata/fromMetadata.spec.ts +++ b/packages/metadata/src/Decorated/storage/fromMetadata/fromMetadata.spec.ts @@ -7,7 +7,6 @@ import { u8aToHex } from '@polkadot/util'; import Metadata from '../../../Metadata'; import rpcMetadata from '../../../Metadata/static'; -import rpcMetadataV8 from '../../../Metadata/v8/static'; import Decorated from '../../Decorated'; const keyring = testingPairs({ type: 'ed25519' }); @@ -39,24 +38,4 @@ describe('fromMetadata', (): void => { ); }); }); - - describe('V8', (): void => { - const registry = new TypeRegistry(); - const metadata = new Metadata(registry, rpcMetadataV8); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should return the correct length-prefixed storage key', (): void => { - expect( - u8aToHex( - decorated.query.balances.freeBalance(keyring.alice.address) - ) - ).toEqual( - // old storage key format - '0x807f864e18e3dd8b58386310d2fe0919eef27c6e558564b7f67f22d99d20f587bb' - ); - }); - }); }); diff --git a/packages/metadata/src/Decorated/storage/fromMetadata/substrate.spec.ts b/packages/metadata/src/Decorated/storage/fromMetadata/substrate.spec.ts deleted file mode 100644 index 09067e341d..0000000000 --- a/packages/metadata/src/Decorated/storage/fromMetadata/substrate.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import { changesTrieConfig, childStorageKeyPrefix, code, extrinsicIndex, heapPages } from './substrate'; - -describe('substrate', (): void => { - const registry = new TypeRegistry(); - - it('changesTrieConfig should return the correct storage key', (): void => { - expect(changesTrieConfig(registry, 8)()).toEqual(Uint8Array.from([52, 58, 99, 104, 97, 110, 103, 101, 115, 95, 116, 114, 105, 101])); // Length-prefixed - }); - - it('childStorageKeyPrefix should return the correct storage key', (): void => { - expect(childStorageKeyPrefix(registry, 8)()).toEqual(Uint8Array.from([60, 58, 99, 104, 105, 108, 100, 95, 115, 116, 111, 114, 97, 103, 101, 58])); // Length-prefixed - }); - - it('code should return the correct storage key', (): void => { - expect(code(registry, 8)()).toEqual(Uint8Array.from([20, 58, 99, 111, 100, 101])); // Length-prefixed - }); - - it('extrinsicIndex should return the correct storage key', (): void => { - expect(extrinsicIndex(registry, 8)()).toEqual( - Uint8Array.from([64, 58, 101, 120, 116, 114, 105, 110, 115, 105, 99, 95, 105, 110, 100, 101, 120]) // Length-prefixed - ); - }); - - it('heapPages should return the correct storage key', (): void => { - expect(heapPages(registry, 8)()).toEqual(Uint8Array.from([40, 58, 104, 101, 97, 112, 112, 97, 103, 101, 115])); // Length-prefixed - }); -}); diff --git a/packages/metadata/src/Metadata/Metadata.ts b/packages/metadata/src/Metadata/Metadata.ts index dde6e58ebc..b7a02126c3 100644 --- a/packages/metadata/src/Metadata/Metadata.ts +++ b/packages/metadata/src/Metadata/Metadata.ts @@ -3,19 +3,29 @@ import { Registry } from '@polkadot/types/types'; -import { isHex, hexToU8a } from '@polkadot/util'; +import { isString, u8aConcat, u8aToU8a } from '@polkadot/util'; import MetadataVersioned from './MetadataVersioned'; -const VERSION_IDX = 4; // magic u32 preceding +// magic u32 preceding the version id +const VERSION_IDX = 4; -// first we try and parse using the versioned structure, if this does fail, -// we adjust with the magic number and a manual version and re-try. As soon as -// we remove support for V0, we will just do a new here -function decodeMetadata (registry: Registry, _value: Uint8Array | string = new Uint8Array()): MetadataVersioned { - const value = isHex(_value) - ? hexToU8a(_value) +// magic + lowest supported version +const EMPTY_METADATA = u8aConcat(new Uint8Array([0x6d, 0x65, 0x74, 0x61, 9])); +const EMPTY_U8A = new Uint8Array(); + +function sanitizeInput (_value: Uint8Array | string = EMPTY_U8A): Uint8Array { + if (isString(_value)) { + return sanitizeInput(u8aToU8a(_value)); + } + + return _value.length === 0 + ? EMPTY_METADATA : _value; +} + +function decodeMetadata (registry: Registry, _value?: Uint8Array | string): MetadataVersioned { + const value = sanitizeInput(_value); const version = value[VERSION_IDX]; try { diff --git a/packages/metadata/src/Metadata/MetadataVersioned.ts b/packages/metadata/src/Metadata/MetadataVersioned.ts index 45ff6d718b..e82eda35d0 100644 --- a/packages/metadata/src/Metadata/MetadataVersioned.ts +++ b/packages/metadata/src/Metadata/MetadataVersioned.ts @@ -1,31 +1,22 @@ // Copyright 2017-2020 @polkadot/metadata authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { MetadataAll, MetadataLatest, MetadataV0, MetadataV1, MetadataV2, MetadataV3, MetadataV4, MetadataV5, MetadataV6, MetadataV7, MetadataV8, MetadataV9, MetadataV10, MetadataV11 } from '@polkadot/types/interfaces/metadata'; +import { MetadataAll, MetadataLatest, MetadataV9, MetadataV10, MetadataV11, MetadataV12 } from '@polkadot/types/interfaces/metadata'; import { Registry } from '@polkadot/types/types'; import Struct from '@polkadot/types/codec/Struct'; import { assert } from '@polkadot/util'; import MagicNumber from './MagicNumber'; -import v0ToV1 from './v0/toV1'; -import v1ToV2 from './v1/toV2'; -import v2ToV3 from './v2/toV3'; -import v3ToV4 from './v3/toV4'; -import v4ToV5 from './v4/toV5'; -import v5ToV6 from './v5/toV6'; -import v6ToV7 from './v6/toV7'; -import v7ToV8 from './v7/toV8'; -import v8ToV9 from './v8/toV9'; import v9ToV10 from './v9/toV10'; import v10ToV11 from './v10/toV11'; import v11ToV12 from './v11/toV12'; import v12ToLatest from './v12/toLatest'; import { getUniqTypes, toCallsOnly } from './util'; -type MetaMapped = MetadataV0 | MetadataV1 | MetadataV2 | MetadataV3 | MetadataV4 | MetadataV5 | MetadataV6 | MetadataV7 | MetadataV8 | MetadataV9 | MetadataV10 | MetadataV11; -type MetaVersions = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13; -type MetaAsX = 'asV0' | 'asV1' | 'asV2' | 'asV3' | 'asV4' | 'asV5' | 'asV6' | 'asV7' | 'asV8' | 'asV9' | 'asV10' | 'asV11' | 'asV12'; +type MetaMapped = MetadataV9 | MetadataV10 | MetadataV11 | MetadataV12; +type MetaVersions = 9 | 10 | 11 | 12 | 13; +type MetaAsX = 'asV9' | 'asV10' | 'asV11' | 'asV12'; /** * @name MetadataVersioned @@ -74,75 +65,12 @@ export default class MetadataVersioned extends Struct { } /** - * @description Returns the wrapped metadata as a V0 object - */ - public get asV0 (): MetadataV0 { - this._assertVersion(0); - - return this._metadata.asV0; - } - - /** - * @description Returns the wrapped values as a V1 object - */ - public get asV1 (): MetadataV1 { - return this._getVersion(1, v0ToV1); - } - - /** - * @description Returns the wrapped values as a V2 object - */ - public get asV2 (): MetadataV2 { - return this._getVersion(2, v1ToV2); - } - - /** - * @description Returns the wrapped values as a V3 object - */ - public get asV3 (): MetadataV3 { - return this._getVersion(3, v2ToV3); - } - - /** - * @description Returns the wrapped values as a V4 object - */ - public get asV4 (): MetadataV4 { - return this._getVersion(4, v3ToV4); - } - - /** - * @description Returns the wrapped values as a V5 object - */ - public get asV5 (): MetadataV5 { - return this._getVersion(5, v4ToV5); - } - - /** - * @description Returns the wrapped values as a V6 object - */ - public get asV6 (): MetadataV6 { - return this._getVersion(6, v5ToV6); - } - - /** - * @description Returns the wrapped values as a V7 object - */ - public get asV7 (): MetadataV7 { - return this._getVersion(7, v6ToV7); - } - - /** - * @description Returns the wrapped values as a V8 object - */ - public get asV8 (): MetadataV8 { - return this._getVersion(8, v7ToV8); - } - - /** - * @description Returns the wrapped values as a V9 object + * @description Returns the wrapped metadata as a V1 object */ public get asV9 (): MetadataV9 { - return this._getVersion(9, v8ToV9); + this._assertVersion(9); + + return this._metadata.asV9; } /** diff --git a/packages/metadata/src/Metadata/v0/static-substrate.json b/packages/metadata/src/Metadata/v0/static-substrate.json deleted file mode 100644 index 3fc4e5a2c4..0000000000 --- a/packages/metadata/src/Metadata/v0/static-substrate.json +++ /dev/null @@ -1,2898 +0,0 @@ -{ - "outerEvent": { - "name": "Event", - "events": [ - [ - "system", - [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ] - ], - [ - "indices", - [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account was created." - ] - } - ] - ], - [ - "balances", - [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ] - ], - [ - "session", - [ - { - "name": "NewSession", - "args": [ - "BlockNumber" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ] - ], - [ - "staking", - [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and their nominators) has been given a offline-warning (they're still", - " within their grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and their nominators) has been slashed by the given amount." - ] - } - ] - ], - [ - "democracy", - [ - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - } - ] - ], - [ - "council", - [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has started." - ] - }, - { - "name": "TallyFinalised", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has ended (with one or more new members)." - ] - } - ] - ], - [ - "council_voting", - [ - { - "name": "TallyCancelation", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum cancellation vote.", - " Last three are yes, no, abstain counts." - ] - }, - { - "name": "TallyReferendum", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum vote.", - " Last three are yes, no, abstain counts." - ] - } - ] - ], - [ - "council_motions", - [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "u32" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given u32)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "u32", - "u32" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given as u32s respectively)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - } - ] - ], - [ - "grandpa", - [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(SessionKey,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - } - ] - ], - [ - "treasury", - [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ] - ], - [ - "contract", - [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` -> `to` with given `value` as part of a `message-call` or `create`." - ] - }, - { - "name": "Created", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - } - ] - ], - [ - "sudo", - [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ] - ] - ] - }, - "modules": [ - { - "prefix": "system", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [] - } - }, - "storage": { - "prefix": "System", - "functions": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Index" - } - }, - "fallback": "0x0000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Hash" - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "key": "u32", - "value": "Bytes" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "RandomSeed", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "Digest" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ] - } - }, - { - "prefix": "aura", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [] - } - }, - "storage": null - }, - { - "prefix": "timestamp", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " Set the current time.", - "", - " Extrinsic with this call should be placed at the specific position in the each block", - " (specified by the Trait::TIMESTAMP_SET_POSITION) typically at the start of the each block.", - " 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 `block_period`." - ] - } - ] - } - }, - "storage": { - "prefix": "Timestamp", - "functions": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "BlockPeriod", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " The minimum (and advised) period between blocks." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ] - } - }, - { - "prefix": "consensus", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehaviour." - ] - }, - { - "id": 1, - "name": "note_offline", - "args": [ - { - "name": "offline", - "type": "InherentOfflineReport" - } - ], - "documentation": [ - " Note the previous block's validator missed their opportunity to propose a block." - ] - }, - { - "id": 2, - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "id": 3, - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "id": 4, - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "id": 5, - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - } - ] - } - }, - "storage": { - "prefix": "Consensus", - "functions": [ - { - "name": "OriginalAuthorities", - "modifier": "Optional", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ] - } - }, - { - "prefix": "indices", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [] - } - }, - "storage": { - "prefix": "Indices", - "functions": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountIndex", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ] - } - }, - { - "prefix": "balances", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Transfer some liquid free balance to another staker." - ] - }, - { - "id": 1, - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "free", - "type": "Compact" - }, - { - "name": "reserved", - "type": "Compact" - } - ], - "documentation": [ - " Set the balances of a given account." - ] - } - ] - } - }, - "storage": { - "prefix": "Balances", - "functions": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total amount of stake on the system." - ] - }, - { - "name": "ExistentialDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount allowed to keep an account open." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account. At least as big as ReclaimRebate." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance" - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It is", - " alone used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Furthermore, `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to cleanup data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance" - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable. (This is different", - " and wholly unrelated to the `Bondage` system used in the staking module.)", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - } - ] - } - }, - { - "prefix": "session", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "set_key", - "args": [ - { - "name": "key", - "type": "SessionKey" - } - ], - "documentation": [ - " Sets the session key of `_validator` to `_key`. This doesn't take effect until the next", - " session." - ] - }, - { - "id": 1, - "name": "set_length", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set a new session length. Won't kick in until the next session change (at current length)." - ] - }, - { - "id": 2, - "name": "force_new_session", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Forces a new session." - ] - } - ] - } - }, - "storage": { - "prefix": "Session", - "functions": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "SessionLength", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " Current length of the session." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "CurrentStart", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Timestamp when current session started." - ] - }, - { - "name": "ForcingNewSession", - "modifier": "Optional", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " New session is being forced is this entry exists; in which case, the boolean value is whether", - " the new session should be considered a normal rotation (rewardable) or exceptional (slashable)." - ] - }, - { - "name": "LastLengthChange", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " Block at which the session length last changed." - ] - }, - { - "name": "NextKeyFor", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "SessionKey" - } - }, - "fallback": "0x00", - "documentation": [ - " The next key for a given validator." - ] - }, - { - "name": "NextSessionLength", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next session length." - ] - } - ] - } - }, - { - "prefix": "staking", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "stake", - "args": [], - "documentation": [ - " Declare the desire to stake for the transactor.", - "", - " Effects will be felt at the beginning of the next era." - ] - }, - { - "id": 1, - "name": "unstake", - "args": [ - { - "name": "intentions_index", - "type": "Compact" - } - ], - "documentation": [ - " Retract the desire to stake for the transactor.", - "", - " Effects will be felt at the beginning of the next era." - ] - }, - { - "id": 2, - "name": "nominate", - "args": [ - { - "name": "target", - "type": "LookupSource" - } - ], - "documentation": [] - }, - { - "id": 3, - "name": "unnominate", - "args": [ - { - "name": "target_index", - "type": "Compact" - } - ], - "documentation": [ - " Will panic if called when source isn't currently nominating target.", - " Updates Nominating, NominatorsFor and NominationBalance." - ] - }, - { - "id": 4, - "name": "register_preferences", - "args": [ - { - "name": "intentions_index", - "type": "Compact" - }, - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " Set the given account's preference for slashing behaviour should they be a validator.", - "", - " An error (no-op) if `Self::intentions()[intentions_index] != origin`." - ] - }, - { - "id": 5, - "name": "set_sessions_per_era", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the number of sessions in an era." - ] - }, - { - "id": 6, - "name": "set_bonding_duration", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The length of the bonding duration in eras." - ] - }, - { - "id": 7, - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "id": 8, - "name": "force_new_era", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward." - ] - }, - { - "id": 9, - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "id": 10, - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ] - } - }, - "storage": { - "prefix": "Staking", - "functions": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionsPerEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of a staking era in sessions." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "BondingDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of the bonding duration in blocks." - ] - }, - { - "name": "Invulerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Any validators that may never be slashed or forcible kicked. It's a Vec since they're easy to initialise", - " and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "ValidatorPreferences", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "ValidatorPrefs" - } - }, - "fallback": "0x0c00", - "documentation": [ - " Preferences that a validator has." - ] - }, - { - "name": "Intentions", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " All the accounts with a desire to stake." - ] - }, - { - "name": "Nominating", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "AccountId" - } - }, - "fallback": "0x00", - "documentation": [ - " All nominator -> nominee relationships." - ] - }, - { - "name": "NominatorsFor", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " Nominators for a particular account." - ] - }, - { - "name": "CurrentNominatorsFor", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " Nominators for a particular account that is in action right now." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentOfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "NextSessionsPerEra", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next value of sessions per era." - ] - }, - { - "name": "LastEraLengthChange", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The session index at which the era length last changed." - ] - }, - { - "name": "StakeRange", - "modifier": "Default", - "type": { - "Plain": "(Balance,Balance)" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " The highest and lowest staked validator slashable balances." - ] - }, - { - "name": "Bondage", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "BlockNumber" - } - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The block at which the `who`'s funds become entirely liquid." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "u32" - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented by one each era that passes." - ] - }, - { - "name": "ForcingNewEra", - "modifier": "Optional", - "type": { - "Plain": "()" - }, - "fallback": "0x00", - "documentation": [ - " We are forcing a new era." - ] - } - ] - } - }, - { - "prefix": "democracy", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "id": 1, - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "id": 2, - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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." - ] - }, - { - "id": 3, - "name": "start_referendum", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Start a referendum." - ] - }, - { - "id": 4, - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "id": 5, - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - } - ] - } - }, - "storage": { - "prefix": "Democracy", - "functions": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "PropIndex", - "value": "(Balance,Vec)" - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "LaunchPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "MinimumDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "PublicDelay", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The delay before enactment for all public referenda." - ] - }, - { - "name": "MaxLockPeriods", - "modifier": "Default", - "type": { - "Plain": "LockPeriods" - }, - "fallback": "0x00", - "documentation": [ - " The maximum number of additional lock periods a voter may offer to strengthen their vote. Multiples of `PublicDelay`." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referendums started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "ReferendumInfo" - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Vec>" - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "Bondage", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "BlockNumber" - } - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The block at which the `who`'s funds become liquid." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "key": "(ReferendumIndex,AccountId)", - "value": "Vote" - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only if `voters_for` includes the", - " voter when called with the referendum (you'll get the default `Vote` value otherwise). If you don't want to check", - " `voters_for`, then you can also check for simple existence with `VoteOf::exists` first." - ] - } - ] - } - }, - { - "prefix": "council", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered." - ] - }, - { - "id": 1, - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " May be called by anyone. Returns the voter deposit to `signed`." - ] - }, - { - "id": 2, - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned." - ] - }, - { - "id": 3, - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond." - ] - }, - { - "id": 4, - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()``", - " `signed` should have at least" - ] - }, - { - "id": 5, - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not already", - " in progress." - ] - }, - { - "id": 6, - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member. A tally will happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met.", - " This is effective immediately." - ] - }, - { - "id": 7, - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalise_vote`." - ] - }, - { - "id": 8, - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalise_vote`." - ] - } - ] - } - }, - "storage": { - "prefix": "Council", - "functions": [ - { - "name": "CandidacyBond", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x09000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy." - ] - }, - { - "name": "VotingBond", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "PresentSlashPerVoter", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation." - ] - }, - { - "name": "CarryCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x02000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next vote." - ] - }, - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "InactiveGracePeriod", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x01000000", - "documentation": [ - " How many vote indexes need to go by after a target voter's last vote before they can be reaped if their", - " approvals are moot." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should be sitting on the council." - ] - }, - { - "name": "ActiveCouncil", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current council. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the council member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of votes that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter, respecting the last cleared vote index that this voter was", - " last active at." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "(VoteIndex,u32)" - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "LastActiveOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VoteIndex" - } - }, - "fallback": "0x00", - "documentation": [ - " The last cleared vote index that this voter was last active at." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present voter list." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [] - }, - { - "name": "NextFinalise", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "SnapshotedStakes", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The stakes as they were at the point that the vote ended." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(Balance,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we;re in the presentation phase." - ] - } - ] - } - }, - { - "prefix": "council_voting", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "id": 1, - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - }, - { - "id": 2, - "name": "veto", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [] - }, - { - "id": 3, - "name": "set_cooloff_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - }, - { - "id": 4, - "name": "set_voting_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - } - ] - } - }, - "storage": { - "prefix": "CouncilVoting", - "functions": [ - { - "name": "CooloffPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0300000000000000", - "documentation": [] - }, - { - "name": "EnactDelayPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Number of blocks by which to delay enactment of successful, non-unanimous-council-instigated referendum proposals." - ] - }, - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec<(BlockNumber,Hash)>" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalVoters", - "modifier": "Default", - "type": { - "Map": { - "key": "Hash", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "CouncilVoteOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "(Hash,AccountId)", - "value": "bool" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "VetoedProposal", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(BlockNumber,Vec)" - } - }, - "fallback": "0x00", - "documentation": [] - } - ] - } - }, - { - "prefix": "council_motions", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "id": 1, - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - } - ] - } - }, - "storage": { - "prefix": "CouncilMotions", - "functions": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The (hashes of) the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal" - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(ProposalIndex,u32,Vec,Vec)" - } - }, - "fallback": "0x00", - "documentation": [ - " Votes for a given proposal: (required_yes_votes, yes_voters, no_voters)." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - } - ] - } - }, - { - "prefix": "grandpa", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehaviour." - ] - } - ] - } - }, - "storage": { - "prefix": "GrandpaFinality", - "functions": [ - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [] - } - ] - } - }, - { - "prefix": "treasury", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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." - ] - }, - { - "id": 1, - "name": "set_pot", - "args": [ - { - "name": "new_pot", - "type": "Compact" - } - ], - "documentation": [ - " Set the balance of funds available to spend." - ] - }, - { - "id": 2, - "name": "configure", - "args": [ - { - "name": "proposal_bond", - "type": "Permill" - }, - { - "name": "proposal_bond_minimum", - "type": "Compact" - }, - { - "name": "spend_period", - "type": "Compact" - }, - { - "name": "burn", - "type": "Permill" - } - ], - "documentation": [ - " (Re-)configure this module." - ] - }, - { - "id": 3, - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed." - ] - }, - { - "id": 4, - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned." - ] - } - ] - } - }, - "storage": { - "prefix": "Treasury", - "functions": [ - { - "name": "ProposalBond", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Proportion of funds that should be bonded in order to place a proposal. An accepted", - " proposal gets these back. A rejected proposal doesn't." - ] - }, - { - "name": "ProposalBondMinimum", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0100000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Total funds available to this module for spending." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "key": "ProposalIndex", - "value": "TreasuryProposal" - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ] - } - }, - { - "prefix": "contract", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Make a call to a specified account, optionally transferring some balance.", - " Make a call to a specified account, optionally transferring some balance." - ] - }, - { - "id": 1, - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "ctor_code", - "type": "Bytes" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Create a new contract, optionally transfering some balance to the created account.", - "", - " Creation is executed as follows:", - "", - " - the destination address is computed based on the sender and hash of the code.", - " - account is created at the computed address.", - " - the `ctor_code` is executed in the context of the newly created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any message received by this account." - ] - } - ] - } - }, - "storage": null - }, - { - "prefix": "sudo", - "module": { - "name": "Module", - "call": { - "name": "Call", - "functions": [ - { - "id": 0, - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "id": 1, - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [] - } - ] - } - }, - "storage": { - "prefix": "Sudo", - "functions": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - } - ] - } - } - ], - "outerDispatch": { - "name": "Call", - "calls": [ - { - "name": "Timestamp", - "prefix": "timestamp", - "index": 0 - }, - { - "name": "Consensus", - "prefix": "consensus", - "index": 1 - }, - { - "name": "Indices", - "prefix": "indices", - "index": 2 - }, - { - "name": "Balances", - "prefix": "balances", - "index": 3 - }, - { - "name": "Session", - "prefix": "session", - "index": 4 - }, - { - "name": "Staking", - "prefix": "staking", - "index": 5 - }, - { - "name": "Democracy", - "prefix": "democracy", - "index": 6 - }, - { - "name": "Council", - "prefix": "council", - "index": 7 - }, - { - "name": "CouncilVoting", - "prefix": "council_voting", - "index": 8 - }, - { - "name": "CouncilMotions", - "prefix": "council_motions", - "index": 9 - }, - { - "name": "Grandpa", - "prefix": "grandpa", - "index": 10 - }, - { - "name": "Treasury", - "prefix": "treasury", - "index": 11 - }, - { - "name": "Contract", - "prefix": "contract", - "index": 12 - }, - { - "name": "Sudo", - "prefix": "sudo", - "index": 13 - } - ] - } -} diff --git a/packages/metadata/src/Metadata/v0/static.ts b/packages/metadata/src/Metadata/v0/static.ts deleted file mode 100644 index 22217b2793..0000000000 --- a/packages/metadata/src/Metadata/v0/static.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x144576656e74341873797374656d084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1c696e6469636573043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e646578046c2041206e6577206163636f756e742077617320637265617465642e2062616c616e6365730c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e04284e657753657373696f6e042c426c6f636b4e756d626572085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e670c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332085501204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20676976656e2061206f66666c696e652d7761726e696e67202874686579277265207374696c6c15012077697468696e207468656972206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042d01204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f637261637918185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c001c636f756e63696c102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c6973656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e38636f756e63696c5f766f74696e67084054616c6c7943616e63656c6174696f6e1010486173680c7533320c7533320c753332080101204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d2063616e63656c6c6174696f6e20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c54616c6c795265666572656e64756d1010486173680c7533320c7533320c75333208cc204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c636f756e63696c5f6d6f74696f6e73142050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173680c7533320465012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e20753332292e14566f74656414244163636f756e744964104861736810626f6f6c0c7533320c7533320809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67f420612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e206173207533327320726573706563746976656c79292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e1c6772616e64706104384e6577417574686f72697469657304585665633c2853657373696f6e4b65792c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e207472656173757279142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637408205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365047501205472616e736665722068617070656e6564206066726f6d60202d3e2060746f60207769746820676976656e206076616c7565602061732070617274206f66206120606d6573736167652d63616c6c60206f722060637265617465602e1c4372656174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e107375646f081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e401873797374656d184d6f64756c651043616c6c00011853797374656d28304163636f756e744e6f6e6365010130543a3a4163636f756e74496420543a3a496e646578200000000000000000003845787472696e736963436f756e7400000c75333204000024426c6f636b48617368010138543a3a426c6f636b4e756d6265721c543a3a48617368800000000000000000000000000000000000000000000000000000000000000000003445787472696e7369634461746101010c7533321c5665633c75383e0400002852616e646f6d5365656401001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000000184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a48617368800000000000000000000000000000000000000000000000000000000000000000003845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000018446967657374010024543a3a446967657374040000184576656e74730100685665633c4576656e745265636f72643c543a3a4576656e743e3e0400001061757261184d6f64756c651043616c6c00002474696d657374616d70184d6f64756c651043616c6c0400000c736574040c6e6f777c3c543a3a4d6f6d656e7420617320486173436f6d706163743e3a3a54797065205820536574207468652063757272656e742074696d652e0055012045787472696e736963207769746820746869732063616c6c2073686f756c6420626520706c616365642061742074686520737065636966696320706f736974696f6e20696e20746865206561636820626c6f636b6d012028737065636966696564206279207468652054726169743a3a54494d455354414d505f5345545f504f534954494f4e29207479706963616c6c7920617420746865207374617274206f6620746865206561636820626c6f636b2e750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062792060626c6f636b5f706572696f64602e012454696d657374616d700c0c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64010024543a3a4d6f6d656e7420050000000000000004c420546865206d696e696d756d2028616e6420616476697365642920706572696f64206265747765656e20626c6f636b732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f24636f6e73656e737573184d6f64756c651043616c6c180000487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0468205265706f727420736f6d65206d69736265686176696f75722e0100306e6f74655f6f66666c696e65041c6f66666c696e65f43c543a3a496e686572656e744f66666c696e655265706f727420617320496e686572656e744f66666c696e655265706f72743e3a3a496e686572656e74044501204e6f7465207468652070726576696f757320626c6f636b27732076616c696461746f72206d6973736564207468656972206f70706f7274756e69747920746f2070726f706f7365206120626c6f636b2e02001872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0300387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e0400207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e05002c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e0124436f6e73656e737573044c4f726967696e616c417574686f7269746965730000485665633c543a3a53657373696f6e4b65793e0400001c696e6469636573184d6f64756c651043616c6c00011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d53657401013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e040004582054686520656e756d65726174696f6e20736574732e2062616c616e636573184d6f64756c651043616c6c080000207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c7565803c543a3a42616c616e636520617320486173436f6d706163743e3a3a5479706504d4205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572207374616b65722e01002c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651066726565803c543a3a42616c616e636520617320486173436f6d706163743e3a3a54797065207265736572766564803c543a3a42616c616e636520617320486173436f6d706163743e3a3a54797065049420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e012042616c616e6365732034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004a42054686520746f74616c20616d6f756e74206f66207374616b65206f6e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d020546865206d696e696d756d20616d6f756e7420616c6c6f77656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000042501205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e204174206c6561737420617320626967206173205265636c61696d5265626174652e2c4672656542616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e636540000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004d01205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974206973690120616c6f6e65207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865726d6f72652c20604f6e4672656542616c616e63655a65726f602063616c6c6261636b410120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e75702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e636540000000000000000000000000000000003075012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e737101207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e20285468697320697320646966666572656e74290120616e642077686f6c6c7920756e72656c6174656420746f207468652060426f6e64616765602073797374656d207573656420696e20746865207374616b696e67206d6f64756c652e29007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e485472616e73616374696f6e42617365466565010028543a3a42616c616e6365400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e42797465466565010028543a3a42616c616e63654000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c73657373696f6e184d6f64756c651043616c6c0c00001c7365745f6b6579040c6b657934543a3a53657373696f6e4b65790861012053657473207468652073657373696f6e206b6579206f6620605f76616c696461746f726020746f20605f6b6579602e205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e657874242073657373696f6e2e0100287365745f6c656e677468040c6e6577903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a54797065046d01205365742061206e65772073657373696f6e206c656e6774682e20576f6e2774206b69636b20696e20756e74696c20746865206e6578742073657373696f6e206368616e6765202861742063757272656e74206c656e677468292e020044666f7263655f6e65775f73657373696f6e04346170706c795f7265776172647310626f6f6c045820466f726365732061206e65772073657373696f6e2e011c53657373696f6e202856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3453657373696f6e4c656e677468010038543a3a426c6f636b4e756d62657220e803000000000000047c2043757272656e74206c656e677468206f66207468652073657373696f6e2e3043757272656e74496e646578010038543a3a426c6f636b4e756d62657220000000000000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e3043757272656e745374617274010024543a3a4d6f6d656e7420000000000000000004a02054696d657374616d70207768656e2063757272656e742073657373696f6e20737461727465642e44466f7263696e674e657753657373696f6e000010626f6f6c0400087901204e65772073657373696f6e206973206265696e6720666f72636564206973207468697320656e747279206578697374733b20696e20776869636820636173652c2074686520626f6f6c65616e2076616c75652069732077686574686572810120746865206e65772073657373696f6e2073686f756c6420626520636f6e736964657265642061206e6f726d616c20726f746174696f6e202872657761726461626c6529206f7220657863657074696f6e616c2028736c61736861626c65292e404c6173744c656e6774684368616e6765000038543a3a426c6f636b4e756d626572040004c020426c6f636b206174207768696368207468652073657373696f6e206c656e677468206c617374206368616e6765642e284e6578744b6579466f72000130543a3a4163636f756e74496434543a3a53657373696f6e4b65790400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e444e65787453657373696f6e4c656e677468000038543a3a426c6f636b4e756d6265720400046420546865206e6578742073657373696f6e206c656e6774682e1c7374616b696e67184d6f64756c651043616c6c2c0000147374616b65000cc0204465636c617265207468652064657369726520746f207374616b6520666f7220746865207472616e736163746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e01001c756e7374616b650440696e74656e74696f6e735f696e64657830436f6d706163743c7533323e0cc02052657472616374207468652064657369726520746f207374616b6520666f7220746865207472616e736163746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e0200206e6f6d696e61746504187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030028756e6e6f6d696e61746504307461726765745f696e64657830436f6d706163743c7533323e0811012057696c6c2070616e69632069662063616c6c6564207768656e20736f757263652069736e27742063757272656e746c79206e6f6d696e6174696e67207461726765742ee42055706461746573204e6f6d696e6174696e672c204e6f6d696e61746f7273466f7220616e64204e6f6d696e6174696f6e42616c616e63652e04005072656769737465725f707265666572656e6365730840696e74656e74696f6e735f696e64657830436f6d706163743c7533323e1470726566736856616c696461746f7250726566733c543a3a42616c616e63653e0c5901205365742074686520676976656e206163636f756e74277320707265666572656e636520666f7220736c617368696e67206265686176696f75722073686f756c64207468657920626520612076616c696461746f722e00190120416e206572726f7220286e6f2d6f7029206966206053656c663a3a696e74656e74696f6e7328295b696e74656e74696f6e735f696e6465785d20213d206f726967696e602e0500507365745f73657373696f6e735f7065725f657261040c6e6577903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a5479706504982053657420746865206e756d626572206f662073657373696f6e7320696e20616e206572612e0600507365745f626f6e64696e675f6475726174696f6e040c6e6577903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a5479706504b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e07004c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e080034666f7263655f6e65775f65726104346170706c795f7265776172647310626f6f6c083d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e09005c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e0a00447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e011c5374616b696e67583856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3853657373696f6e73506572457261010038543a3a426c6f636b4e756d62657220e80300000000000004a420546865206c656e677468206f662061207374616b696e672065726120696e2073657373696f6e732e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e3c426f6e64696e674475726174696f6e010038543a3a426c6f636b4e756d62657220e80300000000000004b820546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20626c6f636b732e30496e76756c657261626c65730100445665633c543a3a4163636f756e7449643e040008a50120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c65206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697365ad0120616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e2843757272656e74457261010038543a3a426c6f636b4e756d626572200000000000000000045c205468652063757272656e742065726120696e6465782e5056616c696461746f72507265666572656e636573010130543a3a4163636f756e7449646856616c696461746f7250726566733c543a3a42616c616e63653e080c00048820507265666572656e636573207468617420612076616c696461746f72206861732e28496e74656e74696f6e730100445665633c543a3a4163636f756e7449643e040004a420416c6c20746865206163636f756e7473207769746820612064657369726520746f207374616b652e284e6f6d696e6174696e67000130543a3a4163636f756e74496430543a3a4163636f756e744964040004a020416c6c206e6f6d696e61746f72202d3e206e6f6d696e65652072656c6174696f6e73686970732e344e6f6d696e61746f7273466f72010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e04000494204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e742e5043757272656e744e6f6d696e61746f7273466f72010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e0400040501204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e5043757272656e7453657373696f6e526577617264010028543a3a42616c616e63654000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4c43757272656e744f66666c696e65536c617368010028543a3a42616c616e6365400000000000000000000000000000000004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e484e65787453657373696f6e73506572457261000038543a3a426c6f636b4e756d6265720400049020546865206e6578742076616c7565206f662073657373696f6e7320706572206572612e4c4c6173744572614c656e6774684368616e6765010038543a3a426c6f636b4e756d62657220000000000000000004e0205468652073657373696f6e20696e6465782061742077686963682074686520657261206c656e677468206c617374206368616e6765642e285374616b6552616e6765010048506169724f663c543a3a42616c616e63653e80000000000000000000000000000000000000000000000000000000000000000004f020546865206869676865737420616e64206c6f77657374207374616b65642076616c696461746f7220736c61736861626c652062616c616e6365732e1c426f6e64616765010130543a3a4163636f756e74496438543a3a426c6f636b4e756d62657220000000000000000004f42054686520626c6f636b20617420776869636820746865206077686f6027732066756e6473206265636f6d6520656e746972656c79206c69717569642e28536c617368436f756e74010130543a3a4163636f756e7449640c753332100000000004d10120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e746564206279206f6e652065616368206572612074686174207061737365732e34466f7263696e674e65774572610000082829040004682057652061726520666f7263696e672061206e6577206572612e2464656d6f6372616379184d6f64756c651043616c6c1800001c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c7565803c543a3a42616c616e636520617320486173436f6d706163743e3a3a5479706504a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e0100187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e020010766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e03004073746172745f7265666572656e64756d0c2070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c641464656c617938543a3a426c6f636b4e756d62657204502053746172742061207265666572656e64756d2e04004463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e05003463616e63656c5f71756575656408107768656e903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a5479706514776869636830436f6d706163743c7533323e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e012444656d6f63726163793c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f6600012450726f70496e6465787c28543a3a42616c616e63652c205665633c543a3a4163636f756e7449643e29040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e304c61756e6368506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e384d696e696d756d4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e2c5075626c696344656c6179010038543a3a426c6f636b4e756d62657220000000000000000004d4205468652064656c6179206265666f726520656e6163746d656e7420666f7220616c6c207075626c6963207265666572656e64612e384d61784c6f636b506572696f647301002c4c6f636b506572696f6473040004d90120546865206d6178696d756d206e756d626572206f66206164646974696f6e616c206c6f636b20706572696f6473206120766f746572206d6179206f6666657220746f20737472656e677468656e20746865697220766f74652e204d756c7469706c6573206f6620605075626c696344656c6179602e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004390120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e64756d73207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f6600013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e29040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e3444697370617463685175657565010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e1c426f6e64616765010130543a3a4163636f756e74496438543a3a426c6f636b4e756d62657220000000000000000004d02054686520626c6f636b20617420776869636820746865206077686f6027732066756e6473206265636f6d65206c69717569642e24566f74657273466f7201013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f6601017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f746504000cd501204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c792069662060766f746572735f666f726020696e636c7564657320746865c90120766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468652064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b61012060766f746572735f666f72602c207468656e20796f752063616e20616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1c636f756e63696c184d6f64756c651043616c6c240000347365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e086101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e01004c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e1461012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e020034726574726163745f766f7465720414696e64657830436f6d706163743c7533323e042d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e0300407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e0c78205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e04003870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c803c543a3a42616c616e636520617320486173436f6d706163743e3a3a5479706514696e64657848436f6d706163743c566f7465496e6465783e0c650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea501204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e282960607820607369676e6564602073686f756c642068617665206174206c656173740500447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570690120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f7420616c72656164793420696e2070726f67726573732e06003472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c71012052656d6f7665206120706172746963756c6172206d656d6265722e20412074616c6c792077696c6c2068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e7c20546869732069732065666665637469766520696d6d6564696174656c792e0700647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e74903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a5479706508590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c6973655f766f7465602e0800447365745f7465726d5f6475726174696f6e0414636f756e74903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a5479706508510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c6973655f766f7465602e011c436f756e63696c503443616e646964616379426f6e64010028543a3a42616c616e6365400900000000000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e64010028543a3a42616c616e6365400000000000000000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e5050726573656e74536c617368506572566f746572010028543a3a42616c616e63654001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c753332100200000004350120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e646578100100000008a10120486f77206d616e7920766f746520696e6465786573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e206265207265617065642069662074686569725020617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200500000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697371012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e64657810000000000405012054686520746f74616c206e756d626572206f6620766f746573207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f66010130543a3a4163636f756e744964245665633c626f6f6c3e0400086d012041206c697374206f6620766f74657320666f72206561636820766f7465722c2072657370656374696e6720746865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f7465722077617340206c617374206163746976652061742e385265676973746572496e666f4f66000130543a3a4163636f756e7449644028566f7465496e6465782c20753332290400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e304c6173744163746976654f66000130543a3a4163636f756e74496424566f7465496e646578040004010120546865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f74657220776173206c617374206163746976652061742e18566f746572730100445665633c543a3a4163636f756e7449643e04000460205468652070726573656e7420766f746572206c6973742e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000000304e65787446696e616c6973650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e40536e617073686f7465645374616b657301003c5665633c543a3a42616c616e63653e040004e820546865207374616b6573206173207468657920776572652061742074686520706f696e7420746861742074686520766f746520656e6465642e2c4c6561646572626f61726400007c5665633c28543a3a42616c616e63652c20543a3a4163636f756e744964293e040004e02047657420746865206c6561646572626f6172642069662077653b726520696e207468652070726573656e746174696f6e2070686173652e38636f756e63696c5f766f74696e67184d6f64756c651043616c6c1400001c70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e00010010766f7465082070726f706f73616c1c543a3a486173681c617070726f766510626f6f6c000200107665746f043470726f706f73616c5f686173681c543a3a48617368000300487365745f636f6f6c6f66665f706572696f640418626c6f636b73903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a54797065000400447365745f766f74696e675f706572696f640418626c6f636b73903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a54797065000134436f756e63696c566f74696e672034436f6f6c6f6666506572696f64010038543a3a426c6f636b4e756d62657220e8030000000000000030566f74696e67506572696f64010038543a3a426c6f636b4e756d6265722003000000000000000040456e61637444656c6179506572696f64010038543a3a426c6f636b4e756d62657220000000000000000004cd01204e756d626572206f6620626c6f636b7320627920776869636820746f2064656c617920656e6163746d656e74206f66207375636365737366756c2c206e6f6e2d756e616e696d6f75732d636f756e63696c2d696e7374696761746564207265666572656e64756d2070726f706f73616c732e2450726f706f73616c730100785665633c28543a3a426c6f636b4e756d6265722c20543a3a48617368293e0400002850726f706f73616c4f6600011c543a3a486173682c543a3a50726f706f73616c0400003850726f706f73616c566f7465727301011c543a3a48617368445665633c543a3a4163636f756e7449643e04000034436f756e63696c566f74654f6600015c28543a3a486173682c20543a3a4163636f756e7449642910626f6f6c040000385665746f656450726f706f73616c00011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290400003c636f756e63696c5f6d6f74696f6e73184d6f64756c651043616c6c0800001c70726f706f736508247468726573686f6c6430436f6d706163743c7533323e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e00010010766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c000138436f756e63696c4d6f74696f6e73102450726f706f73616c730100305665633c543a3a486173683e04000498205468652028686173686573206f662920746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e6700011c543a3a48617368e82850726f706f73616c496e6465782c207533322c205665633c543a3a4163636f756e7449643e2c205665633c543a3a4163636f756e7449643e29040004250120566f74657320666f72206120676976656e2070726f706f73616c3a202872657175697265645f7965735f766f7465732c207965735f766f746572732c206e6f5f766f74657273292e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c6772616e647061184d6f64756c651043616c6c040000487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0468205265706f727420736f6d65206d69736265686176696f75722e013c4772616e64706146696e616c697479043450656e64696e674368616e67650000c853746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265722c20543a3a53657373696f6e4b65793e040000207472656173757279184d6f64756c651043616c6c1400003470726f706f73655f7370656e64081476616c7565803c543a3a42616c616e636520617320486173436f6d706163743e3a3a547970652c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c2d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e01001c7365745f706f74041c6e65775f706f74803c543a3a42616c616e636520617320486173436f6d706163743e3a3a5479706504b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e020024636f6e666967757265103470726f706f73616c5f626f6e641c5065726d696c6c5470726f706f73616c5f626f6e645f6d696e696d756d803c543a3a42616c616e636520617320486173436f6d706163743e3a3a54797065307370656e645f706572696f64903c543a3a426c6f636b4e756d62657220617320486173436f6d706163743e3a3a54797065106275726e1c5065726d696c6c0470202852652d29636f6e6669677572652074686973206d6f64756c652e03003c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e04fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e040040617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e085d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e01205472656173757279203050726f706f73616c426f6e6401001c5065726d696c6c10000000000851012050726f706f7274696f6e206f662066756e647320746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c61636520612070726f706f73616c2e20416e206163636570746564dc2070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f65736e27742e4c50726f706f73616c426f6e644d696e696d756d010028543a3a42616c616e63654000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f74010028543a3a42616c616e6365400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c7300013450726f706f73616c496e6465788850726f706f73616c3c543a3a4163636f756e7449642c20543a3a42616c616e63653e0400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e20636f6e7472616374184d6f64756c651043616c6c0800001063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c7565803c543a3a42616c616e636520617320486173436f6d706163743e3a3a54797065246761735f6c696d6974703c543a3a47617320617320486173436f6d706163743e3a3a5479706510646174611c5665633c75383e082901204d616b6520612063616c6c20746f206120737065636966696564206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e2901204d616b6520612063616c6c20746f206120737065636966696564206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e0100186372656174651024656e646f776d656e74803c543a3a42616c616e636520617320486173436f6d706163743e3a3a54797065246761735f6c696d6974703c543a3a47617320617320486173436f6d706163743e3a3a547970652463746f725f636f64651c5665633c75383e10646174611c5665633c75383e244d01204372656174652061206e657720636f6e74726163742c206f7074696f6e616c6c79207472616e73666572696e6720736f6d652062616c616e636520746f207468652063726561746564206163636f756e742e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d207468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652eb8202d206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20746865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792063726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564b420202075706f6e20616e79206d6573736167652072656365697665642062792074686973206163636f756e742e00107375646f184d6f64756c651043616c6c080000107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e0001001c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001105375646f040c4b6579010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000001043616c6c382454696d657374616d702474696d657374616d70000024436f6e73656e73757324636f6e73656e73757301001c496e64696365731c696e646963657302002042616c616e6365732062616c616e63657303001c53657373696f6e1c73657373696f6e04001c5374616b696e671c7374616b696e6705002444656d6f63726163792464656d6f637261637906001c436f756e63696c1c636f756e63696c070034436f756e63696c566f74696e6738636f756e63696c5f766f74696e67080038436f756e63696c4d6f74696f6e733c636f756e63696c5f6d6f74696f6e7309001c4772616e6470611c6772616e6470610a002054726561737572792074726561737572790b0020436f6e747261637420636f6e74726163740c00105375646f107375646f0d00'; - -// Export the latest RPC response for metadata -export default meta; diff --git a/packages/metadata/src/Metadata/v0/toV1.ts b/packages/metadata/src/Metadata/v0/toV1.ts deleted file mode 100644 index c9d9dc5c6c..0000000000 --- a/packages/metadata/src/Metadata/v0/toV1.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { EventMetadataV1, FunctionMetadataV1, MetadataV0, MetadataV1, ModuleMetadataV1, RuntimeModuleMetadataV0, StorageFunctionMetadataV1 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -import { Option } from '@polkadot/types/codec'; -import { Text } from '@polkadot/types/primitive'; -import { stringUpperFirst } from '@polkadot/util'; - -/** @internal */ -function toV1Calls (registry: Registry, { module: { call: { functions } } }: RuntimeModuleMetadataV0): Option { - return functions.length - ? new Option(registry, 'Vec', functions) - : new Option(registry, 'Vec'); -} - -/** @internal */ -function toV1Events (registry: Registry, metadataV0: MetadataV0, prefix: Text): Option { - const events = metadataV0.outerEvent.events.find((event): boolean => event[0].eq(prefix)); - - return events - ? new Option(registry, 'Vec', events[1]) - : new Option(registry, 'Vec'); -} - -/** @internal */ -function toV1Storage (registry: Registry, { storage }: RuntimeModuleMetadataV0): Option { - return new Option(registry, 'Vec', storage.unwrapOr(undefined)?.functions); -} - -/** @internal */ -export default function toV1 (registry: Registry, metadataV0: MetadataV0): MetadataV1 { - return registry.createType('MetadataV1', { - modules: metadataV0.modules.map((mod): ModuleMetadataV1 => { - // The prefix of this module (capitalized) - const prefix = mod.storage.isSome - ? mod.storage.unwrap().prefix.toString() - : stringUpperFirst(mod.prefix.toString()); // If this module doesn't have storage, we just assume the prefix is the name capitalized - - return registry.createType('ModuleMetadataV1', { - calls: toV1Calls(registry, mod), - events: toV1Events(registry, metadataV0, mod.prefix), - name: mod.prefix, // Not capitalized - prefix, // Capitalized - storage: toV1Storage(registry, mod) - }); - }) - }); -} diff --git a/packages/metadata/src/Metadata/v1/Metadata.spec.ts b/packages/metadata/src/Metadata/v1/Metadata.spec.ts deleted file mode 100644 index b0d75ecd25..0000000000 --- a/packages/metadata/src/Metadata/v1/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import staticSubstrate from './static-substrate.json'; -import rpcData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV1', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 1, rpcData, staticSubstrate); - - toLatest(registry, 1, rpcData, false); - - defaultValues(registry, rpcData, false); -}); diff --git a/packages/metadata/src/Metadata/v1/static-substrate.json b/packages/metadata/src/Metadata/v1/static-substrate.json deleted file mode 100644 index d0c9385cce..0000000000 --- a/packages/metadata/src/Metadata/v1/static-substrate.json +++ /dev/null @@ -1,3009 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V1": { - "modules": [ - { - "name": "system", - "prefix": "System", - "storage": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Index" - } - }, - "fallback": "0x0000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Hash" - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "key": "u32", - "value": "Bytes" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "RandomSeed", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "Digest" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": null, - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ] - }, - { - "name": "aura", - "prefix": "", - "storage": null, - "calls": null, - "events": null - }, - { - "name": "timestamp", - "prefix": "Timestamp", - "storage": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "BlockPeriod", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " The minimum (and advised) period between blocks." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ], - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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 `block_period`.", - " ", - " The dispatch origin for this call must be `Inherent`." - ] - } - ], - "events": null - }, - { - "name": "consensus", - "prefix": "Consensus", - "storage": [ - { - "name": "OriginalAuthorities", - "modifier": "Optional", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehaviour." - ] - }, - { - "name": "note_offline", - "args": [ - { - "name": "offline", - "type": "InherentOfflineReport" - } - ], - "documentation": [ - " Note the previous block's validator missed their opportunity to propose a block." - ] - }, - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - } - ], - "events": null - }, - { - "name": "indices", - "prefix": "Indices", - "storage": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountIndex", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ], - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ] - }, - { - "name": "balances", - "prefix": "Balances", - "storage": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total amount of stake on the system." - ] - }, - { - "name": "ExistentialDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount allowed to keep an account open." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account. At least as big as ReclaimRebate." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VestingSchedule" - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance" - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It is", - " alone used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Furthermore, `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to cleanup data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance" - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable. (This is different", - " and wholly unrelated to the `Bondage` system used in the staking module.)", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ], - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Transfer some liquid free balance to another staker." - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "free", - "type": "Compact" - }, - { - "name": "reserved", - "type": "Compact" - } - ], - "documentation": [ - " Set the balances of a given account." - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ] - }, - { - "name": "session", - "prefix": "Session", - "storage": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "SessionLength", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " Current length of the session." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "CurrentStart", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Timestamp when current session started." - ] - }, - { - "name": "ForcingNewSession", - "modifier": "Optional", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " New session is being forced is this entry exists; in which case, the boolean value is whether", - " the new session should be considered a normal rotation (rewardable) or exceptional (slashable)." - ] - }, - { - "name": "LastLengthChange", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " Block at which the session length last changed." - ] - }, - { - "name": "NextKeyFor", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "SessionKey" - } - }, - "fallback": "0x00", - "documentation": [ - " The next key for a given validator." - ] - }, - { - "name": "NextSessionLength", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next session length." - ] - } - ], - "calls": [ - { - "name": "set_key", - "args": [ - { - "name": "key", - "type": "SessionKey" - } - ], - "documentation": [ - " Sets the session key of `_validator` to `_key`. This doesn't take effect until the next", - " session." - ] - }, - { - "name": "set_length", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set a new session length. Won't kick in until the next session change (at current length)." - ] - }, - { - "name": "force_new_session", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Forces a new session." - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "BlockNumber" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ] - }, - { - "name": "staking", - "prefix": "Staking", - "storage": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionsPerEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of a staking era in sessions." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "BondingDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of the bonding duration in blocks." - ] - }, - { - "name": "Invulerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're easy to initialise", - " and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "AccountId" - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "StakingLedger" - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "RewardDestination" - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "ValidatorPrefs" - } - }, - "fallback": "0x0c00", - "documentation": [ - " The set of keys are all controllers that want to validate.", - "", - " The values are the preferences that a validator has." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " The set of keys are all controllers that want to nominate.", - "", - " The value are the nominations." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Exposure" - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate through validators here,", - " but you can find them in the `sessions` module." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentOfflineSlash", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "CurrentEraReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The accumulated reward for the current era. Reset to zero at the beginning of the era and", - " increased for every successfully finished session." - ] - }, - { - "name": "NextSessionsPerEra", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next value of sessions per era." - ] - }, - { - "name": "LastEraLengthChange", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The session index at which the era length last changed." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "u32" - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented by one each era that passes." - ] - }, - { - "name": "ForcingNewEra", - "modifier": "Optional", - "type": { - "Plain": "()" - }, - "fallback": "0x00", - "documentation": [ - " We are forcing a new era." - ] - }, - { - "name": "RecentlyOffline", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber,u32)>" - }, - "fallback": "0x00", - "documentation": [ - " Most recent `RECENT_OFFLINE_COUNT` instances. (who it was, when it was reported, how many instances they were offline for)." - ] - } - ], - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " Take the origin account as a stash and lock up `value` of its balance. `controller` will be the", - " account that controls it." - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "BalanceOf" - } - ], - "documentation": [ - " 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.", - "", - " NOTE: This call must be made by the controller, not the stash." - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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::existential_deposit(), 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.", - "", - " NOTE: This call must be made by the controller, not the stash.", - "", - " See also [`Call::withdraw_unbonded`]." - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " NOTE: This call must be made by the controller, not the stash.", - "", - " See also [`Call::unbond`]." - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " Declare the desire to validate for the origin controller.", - "", - " Effects will be felt at the beginning of the next era.", - "", - " NOTE: This call must be made by the controller, not the stash." - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` for the origin controller.", - "", - " Effects will be felt at the beginning of the next era.", - "", - " NOTE: This call must be made by the controller, not the stash." - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " Declare no desire to either validate or nominate.", - "", - " Effects will be felt at the beginning of the next era.", - "", - " NOTE: This call must be made by the controller, not the stash." - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (Re-)set the payment target for a controller.", - "", - " Effects will be felt at the beginning of the next era.", - "", - " NOTE: This call must be made by the controller, not the stash." - ] - }, - { - "name": "set_sessions_per_era", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the number of sessions in an era." - ] - }, - { - "name": "set_bonding_duration", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The length of the bonding duration in eras." - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_new_era", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward." - ] - }, - { - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and their nominators) has been given a offline-warning (they're still", - " within their grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and their nominators) has been slashed by the given amount." - ] - } - ] - }, - { - "name": "democracy", - "prefix": "Democracy", - "storage": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "PropIndex", - "value": "(BalanceOf,Vec)" - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "LaunchPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "MinimumDeposit", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "PublicDelay", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The delay before enactment for all public referenda." - ] - }, - { - "name": "MaxLockPeriods", - "modifier": "Default", - "type": { - "Plain": "LockPeriods" - }, - "fallback": "0x00", - "documentation": [ - " The maximum number of additional lock periods a voter may offer to strengthen their vote. Multiples of `PublicDelay`." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referendums started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "ReferendumInfo" - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Vec>" - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "key": "(ReferendumIndex,AccountId)", - "value": "Vote" - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only if `voters_for` includes the", - " voter when called with the referendum (you'll get the default `Vote` value otherwise). If you don't want to check", - " `voters_for`, then you can also check for simple existence with `VoteOf::exists` first." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "start_referendum", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Start a referendum." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - } - ] - }, - { - "name": "council", - "prefix": "Council", - "storage": [ - { - "name": "CandidacyBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x09000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy." - ] - }, - { - "name": "VotingBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "PresentSlashPerVoter", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation." - ] - }, - { - "name": "CarryCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x02000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next vote." - ] - }, - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "InactiveGracePeriod", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x01000000", - "documentation": [ - " How many vote indexes need to go by after a target voter's last vote before they can be reaped if their", - " approvals are moot." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should be sitting on the council." - ] - }, - { - "name": "ActiveCouncil", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current council. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the council member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of votes that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter, respecting the last cleared vote index that this voter was", - " last active at." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "(VoteIndex,u32)" - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "LastActiveOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VoteIndex" - } - }, - "fallback": "0x00", - "documentation": [ - " The last cleared vote index that this voter was last active at." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present voter list." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [] - }, - { - "name": "NextFinalise", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "SnapshotedStakes", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The stakes as they were at the point that the vote ended." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we;re in the presentation phase." - ] - } - ], - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered." - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " May be called by anyone. Returns the voter deposit to `signed`." - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned." - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond." - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()``", - " `signed` should have at least" - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not already", - " in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member. A tally will happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met.", - " This is effective immediately." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalise_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalise_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has started." - ] - }, - { - "name": "TallyFinalised", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has ended (with one or more new members)." - ] - } - ] - }, - { - "name": "council_voting", - "prefix": "CouncilVoting", - "storage": [ - { - "name": "CooloffPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0300000000000000", - "documentation": [] - }, - { - "name": "EnactDelayPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Number of blocks by which to delay enactment of successful, non-unanimous-council-instigated referendum proposals." - ] - }, - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec<(BlockNumber,Hash)>" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalVoters", - "modifier": "Default", - "type": { - "Map": { - "key": "Hash", - "value": "Vec" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "CouncilVoteOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "(Hash,AccountId)", - "value": "bool" - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "VetoedProposal", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(BlockNumber,Vec)" - } - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - }, - { - "name": "veto", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [] - }, - { - "name": "set_cooloff_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - }, - { - "name": "set_voting_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "TallyCancelation", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum cancellation vote.", - " Last three are yes, no, abstain counts." - ] - }, - { - "name": "TallyReferendum", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum vote.", - " Last three are yes, no, abstain counts." - ] - } - ] - }, - { - "name": "council_motions", - "prefix": "CouncilMotions", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The (hashes of) the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal" - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(ProposalIndex,u32,Vec,Vec)" - } - }, - "fallback": "0x00", - "documentation": [ - " Votes for a given proposal: (required_yes_votes, yes_voters, no_voters)." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "u32" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given u32)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "u32", - "u32" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given as u32s respectively)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - } - ] - }, - { - "name": "finality_tracker", - "prefix": "", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null - }, - { - "name": "grandpa", - "prefix": "GrandpaFinality", - "storage": [ - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehaviour." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(SessionKey,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - } - ] - }, - { - "name": "treasury", - "prefix": "Treasury", - "storage": [ - { - "name": "ProposalBond", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Proportion of funds that should be bonded in order to place a proposal. An accepted", - " proposal gets these back. A rejected proposal doesn't." - ] - }, - { - "name": "ProposalBondMinimum", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0100000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Total funds available to this module for spending." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "key": "ProposalIndex", - "value": "TreasuryProposal" - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ], - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "set_pot", - "args": [ - { - "name": "new_pot", - "type": "Compact" - } - ], - "documentation": [ - " Set the balance of funds available to spend." - ] - }, - { - "name": "configure", - "args": [ - { - "name": "proposal_bond", - "type": "Compact" - }, - { - "name": "proposal_bond_minimum", - "type": "Compact" - }, - { - "name": "spend_period", - "type": "Compact" - }, - { - "name": "burn", - "type": "Compact" - } - ], - "documentation": [ - " (Re-)configure this module." - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed." - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ] - }, - { - "name": "contract", - "prefix": "Contract", - "storage": [ - { - "name": "ContractFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x15000000000000000000000000000000", - "documentation": [ - " The fee required to create a contract. At least as big as staking's ReclaimRebate." - ] - }, - { - "name": "CallBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8700000000000000", - "documentation": [ - " The fee charged for a call into a contract." - ] - }, - { - "name": "CreateBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0xaf00000000000000", - "documentation": [ - " The fee charged for a create of a contract." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - }, - { - "name": "MaxDepth", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x64000000", - "documentation": [ - " The maximum nesting level of a call/create stack." - ] - }, - { - "name": "BlockGasLimit", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x40420f0000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block." - ] - }, - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000000010010000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "CodeHashOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "CodeHash" - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "key": "CodeHash", - "value": "Bytes" - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "key": "CodeHash", - "value": "PrefabWasmModule" - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for the execution." - ] - } - ], - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores code in the storage. You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Make a call to a specified account, optionally transferring some balance." - ] - }, - { - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Create a new contract, optionally transfering some balance to the created account.", - "", - " Creation is executed as follows:", - "", - " - the destination address is computed based on the sender and hash of the code.", - " - account is created at the computed address.", - " - the `ctor_code` is executed in the context of the newly created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any message received by this account." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` -> `to` with given `value` as part of a `message-call` or `create`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - } - ] - }, - { - "name": "sudo", - "prefix": "Sudo", - "storage": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - } - ], - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ] - }, - { - "name": "fees", - "prefix": "Fees", - "storage": [ - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "AssetOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "AssetOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "CurrentTransactionFee", - "modifier": "Default", - "type": { - "Map": { - "key": "u32", - "value": "AssetOf" - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The `extrinsic_index => accumulated_fees` map, containing records to", - " track the overall charged fees for each transaction.", - "", - " All records should be removed at finalise stage." - ] - } - ], - "calls": null, - "events": [ - { - "name": "Charged", - "args": [ - "u32", - "Amount" - ], - "documentation": [ - " Fee charged (extrinsic_index, fee_amount)" - ] - } - ] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v1/static.ts b/packages/metadata/src/Metadata/v1/static.ts deleted file mode 100644 index 75f5006ae6..0000000000 --- a/packages/metadata/src/Metadata/v1/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746101481873797374656d1853797374656d012c304163636f756e744e6f6e6365010130543a3a4163636f756e74496420543a3a496e646578200000000000000000003845787472696e736963436f756e7400000c75333204000040416c6c45787472696e736963734c656e00000c75333204000024426c6f636b48617368010138543a3a426c6f636b4e756d6265721c543a3a48617368800000000000000000000000000000000000000000000000000000000000000000003445787472696e7369634461746101010c7533321c5665633c75383e0400002852616e646f6d5365656401001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000000184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a48617368800000000000000000000000000000000000000000000000000000000000000000003845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000018446967657374010024543a3a446967657374040000184576656e74730100685665633c4576656e745265636f72643c543a3a4576656e743e3e0400000001084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1061757261000000002474696d657374616d702454696d657374616d70010c0c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64010024543a3a4d6f6d656e7420050000000000000004c420546865206d696e696d756d2028616e6420616476697365642920706572696f64206265747765656e20626c6f636b732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e205820536574207468652063757272656e742074696d652e00750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062792060626c6f636b5f706572696f64602e0420d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0024636f6e73656e73757324436f6e73656e73757301044c4f726967696e616c417574686f7269746965730000485665633c543a3a53657373696f6e4b65793e0400000118487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0468205265706f727420736f6d65206d69736265686176696f75722e306e6f74655f6f66666c696e65041c6f66666c696e65f43c543a3a496e686572656e744f66666c696e655265706f727420617320496e686572656e744f66666c696e655265706f72743e3a3a496e686572656e74044501204e6f7465207468652070726576696f757320626c6f636b27732076616c696461746f72206d6973736564207468656972206f70706f7274756e69747920746f2070726f706f7365206120626c6f636b2e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d53657401013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e2062616c616e6365732042616c616e636573012034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004a42054686520746f74616c20616d6f756e74206f66207374616b65206f6e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d020546865206d696e696d756d20616d6f756e7420616c6c6f77656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000042501205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e204174206c6561737420617320626967206173205265636c61696d5265626174652e1c56657374696e67000130543a3a4163636f756e7449646c56657374696e675363686564756c653c543a3a42616c616e63653e040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e636540000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004d01205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974206973690120616c6f6e65207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865726d6f72652c20604f6e4672656542616c616e63655a65726f602063616c6c6261636b410120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e75702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e636540000000000000000000000000000000003075012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e737101207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e20285468697320697320646966666572656e74290120616e642077686f6c6c7920756e72656c6174656420746f207468652060426f6e64616765602073797374656d207573656420696e20746865207374616b696e67206d6f64756c652e29007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e144c6f636b73010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e04d4205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572207374616b65722e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510667265654c436f6d706163743c543a3a42616c616e63653e2072657365727665644c436f6d706163743c543a3a42616c616e63653e049420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e1c53657373696f6e01202856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3453657373696f6e4c656e677468010038543a3a426c6f636b4e756d62657220e803000000000000047c2043757272656e74206c656e677468206f66207468652073657373696f6e2e3043757272656e74496e646578010038543a3a426c6f636b4e756d62657220000000000000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e3043757272656e745374617274010024543a3a4d6f6d656e7420000000000000000004a02054696d657374616d70207768656e2063757272656e742073657373696f6e20737461727465642e44466f7263696e674e657753657373696f6e000010626f6f6c0400087901204e65772073657373696f6e206973206265696e6720666f72636564206973207468697320656e747279206578697374733b20696e20776869636820636173652c2074686520626f6f6c65616e2076616c75652069732077686574686572810120746865206e65772073657373696f6e2073686f756c6420626520636f6e736964657265642061206e6f726d616c20726f746174696f6e202872657761726461626c6529206f7220657863657074696f6e616c2028736c61736861626c65292e404c6173744c656e6774684368616e6765000038543a3a426c6f636b4e756d626572040004c020426c6f636b206174207768696368207468652073657373696f6e206c656e677468206c617374206368616e6765642e284e6578744b6579466f72000130543a3a4163636f756e74496434543a3a53657373696f6e4b65790400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e444e65787453657373696f6e4c656e677468000038543a3a426c6f636b4e756d6265720400046420546865206e6578742073657373696f6e206c656e6774682e010c1c7365745f6b6579040c6b657934543a3a53657373696f6e4b65790861012053657473207468652073657373696f6e206b6579206f6620605f76616c696461746f726020746f20605f6b6579602e205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e657874242073657373696f6e2e287365745f6c656e677468040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e046d01205365742061206e65772073657373696f6e206c656e6774682e20576f6e2774206b69636b20696e20756e74696c20746865206e6578742073657373696f6e206368616e6765202861742063757272656e74206c656e677468292e44666f7263655f6e65775f73657373696f6e04346170706c795f7265776172647310626f6f6c045820466f726365732061206e65772073657373696f6e2e0104284e657753657373696f6e042c426c6f636b4e756d626572085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e671c5374616b696e6701643856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3853657373696f6e73506572457261010038543a3a426c6f636b4e756d62657220e80300000000000004a420546865206c656e677468206f662061207374616b696e672065726120696e2073657373696f6e732e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e3c426f6e64696e674475726174696f6e010038543a3a426c6f636b4e756d62657220e80300000000000004b820546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20626c6f636b732e30496e76756c657261626c65730100445665633c543a3a4163636f756e7449643e04000034496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e040008a50120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697365ad0120616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e646564000130543a3a4163636f756e74496430543a3a4163636f756e7449640400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c6564676572000130543a3a4163636f756e744964e45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e0400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e145061796565010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e040004a42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e2856616c696461746f7273010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e080c000cec2054686520736574206f66206b6579732061726520616c6c20636f6e74726f6c6c65727320746861742077616e7420746f2076616c69646174652e00d4205468652076616c756573206172652074686520707265666572656e636573207468617420612076616c696461746f72206861732e284e6f6d696e61746f7273010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e04000cec2054686520736574206f66206b6579732061726520616c6c20636f6e74726f6c6c65727320746861742077616e7420746f206e6f6d696e6174652e007c205468652076616c75652061726520746865206e6f6d696e6174696f6e732e1c5374616b657273010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0c00000008b101204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e27742069746572617465207468726f7567682076616c696461746f727320686572652cc02062757420796f752063616e2066696e64207468656d20696e20746865206073657373696f6e7360206d6f64756c652e2843757272656e74457261010038543a3a426c6f636b4e756d626572200000000000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4c43757272656e744f66666c696e65536c61736801003042616c616e63654f663c543e400000000000000000000000000000000004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000869012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f66207468652065726120616e64cc20696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e484e65787453657373696f6e73506572457261000038543a3a426c6f636b4e756d6265720400049020546865206e6578742076616c7565206f662073657373696f6e7320706572206572612e4c4c6173744572614c656e6774684368616e6765010038543a3a426c6f636b4e756d62657220000000000000000004e0205468652073657373696f6e20696e6465782061742077686963682074686520657261206c656e677468206c617374206368616e6765642e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e74010130543a3a4163636f756e7449640c753332100000000004d10120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e746564206279206f6e652065616368206572612074686174207061737365732e34466f7263696e674e65774572610000082829040004682057652061726520666f7263696e672061206e6577206572612e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e040004f101204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202877686f206974207761732c207768656e20697420776173207265706f727465642c20686f77206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e013810626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e0881012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c2062652074686568206163636f756e74207468617420636f6e74726f6c732069742e28626f6e645f657874726104386d61785f6164646974696f6e616c3042616c616e63654f663c543e1875012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757020666f7224207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e285501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656400202d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e14e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e141101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c0014c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e247365745f7061796565041470617965654452657761726444657374696e6174696f6e14b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00fc204e4f54453a20546869732063616c6c206d757374206265206d6164652062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e507365745f73657373696f6e735f7065725f657261040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04982053657420746865206e756d626572206f662073657373696f6e7320696e20616e206572612e507365745f626f6e64696e675f6475726174696f6e040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726104346170706c795f7265776172647310626f6f6c083d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332085501204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20676976656e2061206f66666c696e652d7761726e696e67202874686579277265207374696c6c15012077697468696e207468656972206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042d01204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f63726163792444656d6f637261637901383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f6600012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e304c61756e6368506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e384d696e696d756d4465706f73697401003042616c616e63654f663c543e400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e2c5075626c696344656c6179010038543a3a426c6f636b4e756d62657220000000000000000004d4205468652064656c6179206265666f726520656e6163746d656e7420666f7220616c6c207075626c6963207265666572656e64612e384d61784c6f636b506572696f647301002c4c6f636b506572696f6473040004d90120546865206d6178696d756d206e756d626572206f66206164646974696f6e616c206c6f636b20706572696f6473206120766f746572206d6179206f6666657220746f20737472656e677468656e20746865697220766f74652e204d756c7469706c6573206f6620605075626c696344656c6179602e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004390120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e64756d73207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f6600013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e29040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e3444697370617463685175657565010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f7201013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f6601017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f746504000cd501204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c792069662060766f746572735f666f726020696e636c7564657320746865c90120766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468652064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b61012060766f746572735f666f72602c207468656e20796f752063616e20616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e01181c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e4073746172745f7265666572656e64756d0c2070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c641464656c617938543a3a426c6f636b4e756d62657204502053746172742061207265666572656e64756d2e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f71756575656408107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e011c2050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c001c636f756e63696c1c436f756e63696c01503443616e646964616379426f6e6401003042616c616e63654f663c543e400900000000000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e5050726573656e74536c617368506572566f74657201003042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c753332100200000004350120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e646578100100000008a10120486f77206d616e7920766f746520696e6465786573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e206265207265617065642069662074686569725020617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200500000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697371012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e64657810000000000405012054686520746f74616c206e756d626572206f6620766f746573207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f66010130543a3a4163636f756e744964245665633c626f6f6c3e0400086d012041206c697374206f6620766f74657320666f72206561636820766f7465722c2072657370656374696e6720746865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f7465722077617340206c617374206163746976652061742e385265676973746572496e666f4f66000130543a3a4163636f756e7449644028566f7465496e6465782c20753332290400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e304c6173744163746976654f66000130543a3a4163636f756e74496424566f7465496e646578040004010120546865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f74657220776173206c617374206163746976652061742e18566f746572730100445665633c543a3a4163636f756e7449643e04000460205468652070726573656e7420766f746572206c6973742e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000000304e65787446696e616c6973650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e40536e617073686f7465645374616b65730100445665633c42616c616e63654f663c543e3e040004e820546865207374616b6573206173207468657920776572652061742074686520706f696e7420746861742074686520766f746520656e6465642e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e040004e02047657420746865206c6561646572626f6172642069662077653b726520696e207468652070726573656e746174696f6e2070686173652e0124347365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e086101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e1461012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e042d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e0c78205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e0c650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea501204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e282960607820607369676e6564602073686f756c642068617665206174206c65617374447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570690120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f7420616c72656164793420696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c71012052656d6f7665206120706172746963756c6172206d656d6265722e20412074616c6c792077696c6c2068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e7c20546869732069732065666665637469766520696d6d6564696174656c792e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c6973655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c6973655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c6973656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e38636f756e63696c5f766f74696e6734436f756e63696c566f74696e67012034436f6f6c6f6666506572696f64010038543a3a426c6f636b4e756d62657220e8030000000000000030566f74696e67506572696f64010038543a3a426c6f636b4e756d6265722003000000000000000040456e61637444656c6179506572696f64010038543a3a426c6f636b4e756d62657220000000000000000004cd01204e756d626572206f6620626c6f636b7320627920776869636820746f2064656c617920656e6163746d656e74206f66207375636365737366756c2c206e6f6e2d756e616e696d6f75732d636f756e63696c2d696e7374696761746564207265666572656e64756d2070726f706f73616c732e2450726f706f73616c730100785665633c28543a3a426c6f636b4e756d6265722c20543a3a48617368293e0400002850726f706f73616c4f6600011c543a3a486173682c543a3a50726f706f73616c0400003850726f706f73616c566f7465727301011c543a3a48617368445665633c543a3a4163636f756e7449643e04000034436f756e63696c566f74654f6600015c28543a3a486173682c20543a3a4163636f756e7449642910626f6f6c040000385665746f656450726f706f73616c00011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e2904000001141c70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e0010766f7465082070726f706f73616c1c543a3a486173681c617070726f766510626f6f6c00107665746f043470726f706f73616c5f686173681c543a3a4861736800487365745f636f6f6c6f66665f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e00447365745f766f74696e675f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e0001084054616c6c7943616e63656c6174696f6e1010486173680c7533320c7533320c753332080101204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d2063616e63656c6c6174696f6e20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c54616c6c795265666572656e64756d1010486173680c7533320c7533320c75333208cc204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c636f756e63696c5f6d6f74696f6e7338436f756e63696c4d6f74696f6e7301102450726f706f73616c730100305665633c543a3a486173683e04000498205468652028686173686573206f662920746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e6700011c543a3a48617368e82850726f706f73616c496e6465782c207533322c205665633c543a3a4163636f756e7449643e2c205665633c543a3a4163636f756e7449643e29040004250120566f74657320666f72206120676976656e2070726f706f73616c3a202872657175697265645f7965735f766f7465732c207965735f766f746572732c206e6f5f766f74657273292e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e01081c70726f706f736508247468726573686f6c6430436f6d706163743c7533323e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e0010766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c0001142050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173680c7533320465012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e20753332292e14566f74656414244163636f756e744964104861736810626f6f6c0c7533320c7533320809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67f420612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e206173207533327320726573706563746976656c79292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e001c6772616e6470613c4772616e64706146696e616c69747901083450656e64696e674368616e67650000c853746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265722c20543a3a53657373696f6e4b65793e040000284e657874466f72636564000038543a3a426c6f636b4e756d6265720400000104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0468205265706f727420736f6d65206d69736265686176696f75722e0104384e6577417574686f72697469657304585665633c2853657373696f6e4b65792c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e20747265617375727920547265617375727901203050726f706f73616c426f6e6401001c5065726d696c6c10000000000851012050726f706f7274696f6e206f662066756e647320746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c61636520612070726f706f73616c2e20416e206163636570746564dc2070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f65736e27742e4c50726f706f73616c426f6e644d696e696d756d01003042616c616e63654f663c543e4000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f7401003042616c616e63654f663c543e400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c7300013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01143470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c2d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e1c7365745f706f74041c6e65775f706f7454436f6d706163743c42616c616e63654f663c543e3e04b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e24636f6e666967757265103470726f706f73616c5f626f6e6440436f6d706163743c5065726d696c6c3e5470726f706f73616c5f626f6e645f6d696e696d756d54436f6d706163743c42616c616e63654f663c543e3e307370656e645f706572696f645c436f6d706163743c543a3a426c6f636b4e756d6265723e106275726e40436f6d706163743c5065726d696c6c3e0470202852652d29636f6e6669677572652074686973206d6f64756c652e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e04fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e085d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637420436f6e7472616374012c2c436f6e7472616374466565010028543a3a42616c616e63654015000000000000000000000000000000044d01205468652066656520726571756972656420746f20637265617465206120636f6e74726163742e204174206c6561737420617320626967206173207374616b696e672773205265636c61696d5265626174652e2c43616c6c42617365466565010018543a3a47617320870000000000000004b02054686520666565206368617267656420666f7220612063616c6c20696e746f206120636f6e74726163742e3443726561746542617365466565010018543a3a47617320af0000000000000004b02054686520666565206368617267656420666f72206120637265617465206f66206120636f6e74726163742e204761735072696365010028543a3a42616c616e63654001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e204d6178446570746801000c753332106400000004c820546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e34426c6f636b4761734c696d6974010018543a3a4761732040420f000000000004f020546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204761735370656e74010018543a3a476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100405363686564756c653c543a3a4761733ef000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000000001001000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e28436f6465486173684f66000130543a3a4163636f756e7449642c436f6465486173683c543e040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e305072697374696e65436f646500012c436f6465486173683c543e1c5665633c75383e04000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f7261676500012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c6504000475012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f722074686520657865637574696f6e2e01103c7570646174655f7363686564756c6504207363686564756c65405363686564756c653c543a3a4761733e0cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d69743c436f6d706163743c543a3a4761733e10636f64651c5665633c75383e0445012053746f72657320636f646520696e207468652073746f726167652e20596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e246761735f6c696d69743c436f6d706163743c543a3a4761733e10646174611c5665633c75383e042901204d616b6520612063616c6c20746f206120737065636966696564206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e186372656174651024656e646f776d656e744c436f6d706163743c543a3a42616c616e63653e246761735f6c696d69743c436f6d706163743c543a3a4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e244d01204372656174652061206e657720636f6e74726163742c206f7074696f6e616c6c79207472616e73666572696e6720736f6d652062616c616e636520746f207468652063726561746564206163636f756e742e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d207468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652eb8202d206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20746865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792063726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564b420202075706f6e20616e79206d6573736167652072656365697665642062792074686973206163636f756e742e0114205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365047501205472616e736665722068617070656e6564206066726f6d60202d3e2060746f60207769746820676976656e206076616c7565602061732070617274206f66206120606d6573736167652d63616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e107375646f105375646f01040c4b6579010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000000108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e001c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e10666565731046656573010c485472616e73616374696f6e4261736546656501002841737365744f663c543e400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656501002841737365744f663c543e4000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e5443757272656e745472616e73616374696f6e46656501010c7533322841737365744f663c543e400000000000000000000000000000000010150120546865206065787472696e7369635f696e646578203d3e20616363756d756c617465645f6665657360206d61702c20636f6e7461696e696e67207265636f72647320746fd420747261636b20746865206f766572616c6c2063686172676564206665657320666f722065616368207472616e73616374696f6e2e00c420416c6c207265636f7264732073686f756c642062652072656d6f7665642061742066696e616c6973652073746167652e0001041c43686172676564080c75333218416d6f756e7404a8204665652063686172676564202865787472696e7369635f696e6465782c206665655f616d6f756e7429'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v1/toV2.ts b/packages/metadata/src/Metadata/v1/toV2.ts deleted file mode 100644 index d5805de459..0000000000 --- a/packages/metadata/src/Metadata/v1/toV2.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV1, MetadataV2 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -/** @internal */ -export default function toV2 (registry: Registry, metadataV1: MetadataV1): MetadataV2 { - return registry.createType('MetadataV2', metadataV1); -} diff --git a/packages/metadata/src/Metadata/v2/Metadata.spec.ts b/packages/metadata/src/Metadata/v2/Metadata.spec.ts deleted file mode 100644 index 9de369cc81..0000000000 --- a/packages/metadata/src/Metadata/v2/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import staticSubstrate from './static-substrate.json'; -import rpcData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV2', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 2, rpcData, staticSubstrate); - - toLatest(registry, 2, rpcData, false); - - defaultValues(registry, rpcData, false); -}); diff --git a/packages/metadata/src/Metadata/v2/static-substrate.json b/packages/metadata/src/Metadata/v2/static-substrate.json deleted file mode 100644 index d5057a33a5..0000000000 --- a/packages/metadata/src/Metadata/v2/static-substrate.json +++ /dev/null @@ -1,3093 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V2": { - "modules": [ - { - "name": "system", - "prefix": "System", - "storage": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x0000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "RandomSeed", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "Digest" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": null, - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ] - }, - { - "name": "aura", - "prefix": "", - "storage": null, - "calls": null, - "events": null - }, - { - "name": "timestamp", - "prefix": "Timestamp", - "storage": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "BlockPeriod", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " The minimum (and advised) period between blocks." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ], - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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 `block_period`.", - " ", - " The dispatch origin for this call must be `Inherent`." - ] - } - ], - "events": null - }, - { - "name": "consensus", - "prefix": "Consensus", - "storage": [ - { - "name": "OriginalAuthorities", - "modifier": "Optional", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehaviour." - ] - }, - { - "name": "note_offline", - "args": [ - { - "name": "offline", - "type": "InherentOfflineReport" - } - ], - "documentation": [ - " Note the previous block's validator missed their opportunity to propose a block." - ] - }, - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - } - ], - "events": null - }, - { - "name": "indices", - "prefix": "Indices", - "storage": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ], - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ] - }, - { - "name": "balances", - "prefix": "Balances", - "storage": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total amount of stake on the system." - ] - }, - { - "name": "ExistentialDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount allowed to keep an account open." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account. At least as big as ReclaimRebate." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It is", - " alone used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Furthermore, `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to cleanup data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable. (This is different", - " and wholly unrelated to the `Bondage` system used in the staking module.)", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ], - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Transfer some liquid free balance to another staker." - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "free", - "type": "Compact" - }, - { - "name": "reserved", - "type": "Compact" - } - ], - "documentation": [ - " Set the balances of a given account." - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ] - }, - { - "name": "session", - "prefix": "Session", - "storage": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "SessionLength", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " Current length of the session." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "CurrentStart", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Timestamp when current session started." - ] - }, - { - "name": "ForcingNewSession", - "modifier": "Optional", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " New session is being forced is this entry exists; in which case, the boolean value is whether", - " the new session should be considered a normal rotation (rewardable) or exceptional (slashable)." - ] - }, - { - "name": "LastLengthChange", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " Block at which the session length last changed." - ] - }, - { - "name": "NextKeyFor", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "SessionKey", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The next key for a given validator." - ] - }, - { - "name": "NextSessionLength", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next session length." - ] - } - ], - "calls": [ - { - "name": "set_key", - "args": [ - { - "name": "key", - "type": "SessionKey" - } - ], - "documentation": [ - " Sets the session key of `_validator` to `_key`. This doesn't take effect until the next", - " session." - ] - }, - { - "name": "set_length", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set a new session length. Won't kick in until the next session change (at current length)." - ] - }, - { - "name": "force_new_session", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Forces a new session." - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "BlockNumber" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ] - }, - { - "name": "staking", - "prefix": "Staking", - "storage": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionsPerEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of a staking era in sessions." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "BondingDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of the bonding duration in blocks." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're easy to initialise", - " and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x0c00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate through validators here,", - " but you can find them in the `sessions` module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentEraReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The accumulated reward for the current era. Reset to zero at the beginning of the era and", - " increased for every successfully finished session." - ] - }, - { - "name": "NextSessionsPerEra", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next value of sessions per era." - ] - }, - { - "name": "LastEraLengthChange", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The session index at which the era length last changed." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "u32", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented by one each era that passes." - ] - }, - { - "name": "ForcingNewEra", - "modifier": "Optional", - "type": { - "Plain": "()" - }, - "fallback": "0x00", - "documentation": [ - " We are forcing a new era." - ] - }, - { - "name": "RecentlyOffline", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber,u32)>" - }, - "fallback": "0x00", - "documentation": [ - " Most recent `RECENT_OFFLINE_COUNT` instances. (who it was, when it was reported, how many instances they were offline for)." - ] - } - ], - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " Take the origin account as a stash and lock up `value` of its balance. `controller` will be the", - " account that controls it.", - "", - " The dispatch origin for this call must be _Signed_." - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "BalanceOf" - } - ], - "documentation": [ - " 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.", - "", - " The dispatch origin for this call must be _Signed_ by the controller, not the stash." - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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::existential_deposit(), 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.", - "", - " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", - "", - " See also [`Call::withdraw_unbonded`]." - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " See also [`Call::unbond`]." - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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." - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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." - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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." - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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." - ] - }, - { - "name": "set_sessions_per_era", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the number of sessions in an era." - ] - }, - { - "name": "set_bonding_duration", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The length of the bonding duration in eras." - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_new_era", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward." - ] - }, - { - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and their nominators) has been given a offline-warning (they're still", - " within their grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and their nominators) has been slashed by the given amount." - ] - } - ] - }, - { - "name": "democracy", - "prefix": "Democracy", - "storage": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "LaunchPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "MinimumDeposit", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "PublicDelay", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The delay before enactment for all public referenda." - ] - }, - { - "name": "MaxLockPeriods", - "modifier": "Default", - "type": { - "Plain": "LockPeriods" - }, - "fallback": "0x00", - "documentation": [ - " The maximum number of additional lock periods a voter may offer to strengthen their vote. Multiples of `PublicDelay`." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referendums started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only if `voters_for` includes the", - " voter when called with the referendum (you'll get the default `Vote` value otherwise). If you don't want to check", - " `voters_for`, then you can also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "(AccountId,LockPeriods)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "start_referendum", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Start a referendum." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "lock_periods", - "type": "LockPeriods" - } - ], - "documentation": [ - " Delegate vote." - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - } - ] - }, - { - "name": "council", - "prefix": "Council", - "storage": [ - { - "name": "CandidacyBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x09000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy." - ] - }, - { - "name": "VotingBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "PresentSlashPerVoter", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation." - ] - }, - { - "name": "CarryCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x02000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next vote." - ] - }, - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "InactiveGracePeriod", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x01000000", - "documentation": [ - " How many vote indexes need to go by after a target voter's last vote before they can be reaped if their", - " approvals are moot." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should be sitting on the council." - ] - }, - { - "name": "ActiveCouncil", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current council. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the council member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of votes that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter, respecting the last cleared vote index that this voter was", - " last active at." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "(VoteIndex,u32)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "LastActiveOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VoteIndex", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The last cleared vote index that this voter was last active at." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present voter list." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [] - }, - { - "name": "NextFinalise", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "SnapshotedStakes", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The stakes as they were at the point that the vote ended." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we;re in the presentation phase." - ] - } - ], - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered." - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " May be called by anyone. Returns the voter deposit to `signed`." - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned." - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond." - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()``", - " `signed` should have at least" - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not already", - " in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member. A tally will happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met.", - " This is effective immediately." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalise_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalise_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has started." - ] - }, - { - "name": "TallyFinalised", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has ended (with one or more new members)." - ] - } - ] - }, - { - "name": "council_voting", - "prefix": "CouncilVoting", - "storage": [ - { - "name": "CooloffPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0300000000000000", - "documentation": [] - }, - { - "name": "EnactDelayPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Number of blocks by which to delay enactment of successful, non-unanimous-council-instigated referendum proposals." - ] - }, - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec<(BlockNumber,Hash)>" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalVoters", - "modifier": "Default", - "type": { - "Map": { - "key": "Hash", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "CouncilVoteOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "(Hash,AccountId)", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "VetoedProposal", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - }, - { - "name": "veto", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [] - }, - { - "name": "set_cooloff_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - }, - { - "name": "set_voting_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "TallyCancelation", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum cancellation vote.", - " Last three are yes, no, abstain counts." - ] - }, - { - "name": "TallyReferendum", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum vote.", - " Last three are yes, no, abstain counts." - ] - } - ] - }, - { - "name": "council_motions", - "prefix": "CouncilMotions", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The (hashes of) the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(ProposalIndex,u32,Vec,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes for a given proposal: (required_yes_votes, yes_voters, no_voters)." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "u32" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given u32)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "u32", - "u32" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given as u32s respectively)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - } - ] - }, - { - "name": "finality_tracker", - "prefix": "", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null - }, - { - "name": "grandpa", - "prefix": "GrandpaFinality", - "storage": [ - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehaviour." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(SessionKey,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - } - ] - }, - { - "name": "treasury", - "prefix": "Treasury", - "storage": [ - { - "name": "ProposalBond", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Proportion of funds that should be bonded in order to place a proposal. An accepted", - " proposal gets these back. A rejected proposal doesn't." - ] - }, - { - "name": "ProposalBondMinimum", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0100000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Total funds available to this module for spending." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ], - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "set_pot", - "args": [ - { - "name": "new_pot", - "type": "Compact" - } - ], - "documentation": [ - " Set the balance of funds available to spend." - ] - }, - { - "name": "configure", - "args": [ - { - "name": "proposal_bond", - "type": "Compact" - }, - { - "name": "proposal_bond_minimum", - "type": "Compact" - }, - { - "name": "spend_period", - "type": "Compact" - }, - { - "name": "burn", - "type": "Compact" - } - ], - "documentation": [ - " (Re-)configure this module." - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed." - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ] - }, - { - "name": "contract", - "prefix": "Contract", - "storage": [ - { - "name": "ContractFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x15000000000000000000000000000000", - "documentation": [ - " The fee required to create a contract. At least as big as staking's ReclaimRebate." - ] - }, - { - "name": "CallBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8700000000000000", - "documentation": [ - " The fee charged for a call into a contract." - ] - }, - { - "name": "CreateBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0xaf00000000000000", - "documentation": [ - " The fee charged for a create of a contract." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - }, - { - "name": "MaxDepth", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x64000000", - "documentation": [ - " The maximum nesting level of a call/create stack." - ] - }, - { - "name": "BlockGasLimit", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x40420f0000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block." - ] - }, - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000000010010000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "CodeHashOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "CodeHash", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for the execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter" - ] - }, - { - "name": "AccountInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "ContractAccountInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - } - ], - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores code in the storage. You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Make a call to a specified account, optionally transferring some balance." - ] - }, - { - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Create a new contract, optionally transferring some balance to the created account.", - "", - " Creation is executed as follows:", - "", - " - the destination address is computed based on the sender and hash of the code.", - " - account is created at the computed address.", - " - the `ctor_code` is executed in the context of the newly created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any message received by this account." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` -> `to` with given `value` as part of a `message-call` or `create`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - } - ] - }, - { - "name": "sudo", - "prefix": "Sudo", - "storage": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - } - ], - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v2/static.ts b/packages/metadata/src/Metadata/v2/static.ts deleted file mode 100644 index b5c1f9983a..0000000000 --- a/packages/metadata/src/Metadata/v2/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746102441873797374656d1853797374656d012c304163636f756e744e6f6e6365010130543a3a4163636f756e74496420543a3a496e64657800200000000000000000003845787472696e736963436f756e7400000c75333204000040416c6c45787472696e736963734c656e00000c75333204000024426c6f636b48617368010138543a3a426c6f636b4e756d6265721c543a3a4861736800800000000000000000000000000000000000000000000000000000000000000000003445787472696e7369634461746101010c7533321c5665633c75383e000400002852616e646f6d5365656401001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000000184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a48617368800000000000000000000000000000000000000000000000000000000000000000003845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000018446967657374010024543a3a446967657374040000184576656e74730100685665633c4576656e745265636f72643c543a3a4576656e743e3e0400000001084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1061757261000000002474696d657374616d702454696d657374616d70010c0c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64010024543a3a4d6f6d656e7420050000000000000004c420546865206d696e696d756d2028616e6420616476697365642920706572696f64206265747765656e20626c6f636b732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e205820536574207468652063757272656e742074696d652e00750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062792060626c6f636b5f706572696f64602e0420d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0024636f6e73656e73757324436f6e73656e73757301044c4f726967696e616c417574686f7269746965730000485665633c543a3a53657373696f6e4b65793e0400000118487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0468205265706f727420736f6d65206d69736265686176696f75722e306e6f74655f6f66666c696e65041c6f66666c696e65f43c543a3a496e686572656e744f66666c696e655265706f727420617320496e686572656e744f66666c696e655265706f72743e3a3a496e686572656e74044501204e6f7465207468652070726576696f757320626c6f636b27732076616c696461746f72206d6973736564207468656972206f70706f7274756e69747920746f2070726f706f7365206120626c6f636b2e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d53657401013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e2062616c616e6365732042616c616e636573012834546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004a42054686520746f74616c20616d6f756e74206f66207374616b65206f6e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d020546865206d696e696d756d20616d6f756e7420616c6c6f77656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000042501205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e204174206c6561737420617320626967206173205265636c61696d5265626174652e485472616e73616374696f6e42617365466565010028543a3a42616c616e6365400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e42797465466565010028543a3a42616c616e63654000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c56657374696e67000130543a3a4163636f756e7449646c56657374696e675363686564756c653c543a3a42616c616e63653e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004d01205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974206973690120616c6f6e65207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865726d6f72652c20604f6e4672656542616c616e63655a65726f602063616c6c6261636b410120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e75702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000003075012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e737101207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e20285468697320697320646966666572656e74290120616e642077686f6c6c7920756e72656c6174656420746f207468652060426f6e64616765602073797374656d207573656420696e20746865207374616b696e67206d6f64756c652e29007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e144c6f636b73010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e04d4205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572207374616b65722e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510667265654c436f6d706163743c543a3a42616c616e63653e2072657365727665644c436f6d706163743c543a3a42616c616e63653e049420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e1c53657373696f6e01202856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3453657373696f6e4c656e677468010038543a3a426c6f636b4e756d62657220e803000000000000047c2043757272656e74206c656e677468206f66207468652073657373696f6e2e3043757272656e74496e646578010038543a3a426c6f636b4e756d62657220000000000000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e3043757272656e745374617274010024543a3a4d6f6d656e7420000000000000000004a02054696d657374616d70207768656e2063757272656e742073657373696f6e20737461727465642e44466f7263696e674e657753657373696f6e000010626f6f6c0400087901204e65772073657373696f6e206973206265696e6720666f72636564206973207468697320656e747279206578697374733b20696e20776869636820636173652c2074686520626f6f6c65616e2076616c75652069732077686574686572810120746865206e65772073657373696f6e2073686f756c6420626520636f6e736964657265642061206e6f726d616c20726f746174696f6e202872657761726461626c6529206f7220657863657074696f6e616c2028736c61736861626c65292e404c6173744c656e6774684368616e6765000038543a3a426c6f636b4e756d626572040004c020426c6f636b206174207768696368207468652073657373696f6e206c656e677468206c617374206368616e6765642e284e6578744b6579466f72000130543a3a4163636f756e74496434543a3a53657373696f6e4b6579000400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e444e65787453657373696f6e4c656e677468000038543a3a426c6f636b4e756d6265720400046420546865206e6578742073657373696f6e206c656e6774682e010c1c7365745f6b6579040c6b657934543a3a53657373696f6e4b65790861012053657473207468652073657373696f6e206b6579206f6620605f76616c696461746f726020746f20605f6b6579602e205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e657874242073657373696f6e2e287365745f6c656e677468040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e046d01205365742061206e65772073657373696f6e206c656e6774682e20576f6e2774206b69636b20696e20756e74696c20746865206e6578742073657373696f6e206368616e6765202861742063757272656e74206c656e677468292e44666f7263655f6e65775f73657373696f6e04346170706c795f7265776172647310626f6f6c045820466f726365732061206e65772073657373696f6e2e0104284e657753657373696f6e042c426c6f636b4e756d626572085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e671c5374616b696e6701603856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3853657373696f6e73506572457261010038543a3a426c6f636b4e756d62657220e80300000000000004a420546865206c656e677468206f662061207374616b696e672065726120696e2073657373696f6e732e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e3c426f6e64696e674475726174696f6e010038543a3a426c6f636b4e756d62657220e80300000000000004b820546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20626c6f636b732e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e040008a50120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697365ad0120616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e646564000130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c6564676572000130543a3a4163636f756e744964e45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e145061796565010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01080c0004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f7273010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b657273010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c00000010b101204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e27742069746572617465207468726f7567682076616c696461746f727320686572652cc02062757420796f752063616e2066696e64207468656d20696e20746865206073657373696f6e7360206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010038543a3a426c6f636b4e756d626572200000000000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000869012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f66207468652065726120616e64cc20696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e484e65787453657373696f6e73506572457261000038543a3a426c6f636b4e756d6265720400049020546865206e6578742076616c7565206f662073657373696f6e7320706572206572612e4c4c6173744572614c656e6774684368616e6765010038543a3a426c6f636b4e756d62657220000000000000000004e0205468652073657373696f6e20696e6465782061742077686963682074686520657261206c656e677468206c617374206368616e6765642e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e74010130543a3a4163636f756e7449640c75333200100000000004d10120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e746564206279206f6e652065616368206572612074686174207061737365732e34466f7263696e674e65774572610000082829040004682057652061726520666f7263696e672061206e6577206572612e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e040004f101204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202877686f206974207761732c207768656e20697420776173207265706f727465642c20686f77206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e013c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e1081012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c2062652074686568206163636f756e74207468617420636f6e74726f6c732069742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e28626f6e645f657874726104386d61785f6164646974696f6e616c3042616c616e63654f663c543e1875012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757020666f7224207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e285501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656400202d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e14e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e141101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c0014c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e247365745f7061796565041470617965654452657761726444657374696e6174696f6e14b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e507365745f73657373696f6e735f7065725f657261040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04982053657420746865206e756d626572206f662073657373696f6e7320696e20616e206572612e507365745f626f6e64696e675f6475726174696f6e040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726104346170706c795f7265776172647310626f6f6c083d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332085501204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20676976656e2061206f66666c696e652d7761726e696e67202874686579277265207374696c6c15012077697468696e207468656972206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042d01204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f63726163792444656d6f6372616379013c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f6600012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e304c61756e6368506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e384d696e696d756d4465706f73697401003042616c616e63654f663c543e400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e2c5075626c696344656c6179010038543a3a426c6f636b4e756d62657220000000000000000004d4205468652064656c6179206265666f726520656e6163746d656e7420666f7220616c6c207075626c6963207265666572656e64612e384d61784c6f636b506572696f647301002c4c6f636b506572696f6473040004d90120546865206d6178696d756d206e756d626572206f66206164646974696f6e616c206c6f636b20706572696f6473206120766f746572206d6179206f6666657220746f20737472656e677468656e20746865697220766f74652e204d756c7469706c6573206f6620605075626c696344656c6179602e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004390120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e64756d73207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f6600013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e3444697370617463685175657565010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f7201013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f6601017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f74650004000cd501204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c792069662060766f746572735f666f726020696e636c7564657320746865c90120766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468652064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b61012060766f746572735f666f72602c207468656e20796f752063616e20616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e2c44656c65676174696f6e73010130543a3a4163636f756e7449646c28543a3a4163636f756e7449642c204c6f636b506572696f64732901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e01201c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e4073746172745f7265666572656e64756d0c2070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c641464656c617938543a3a426c6f636b4e756d62657204502053746172742061207265666572656e64756d2e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f71756575656408107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e2064656c65676174650808746f30543a3a4163636f756e744964306c6f636b5f706572696f64732c4c6f636b506572696f6473043c2044656c656761746520766f74652e28756e64656c656761746500044420556e64656c656761746520766f74652e01242050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e744964001c636f756e63696c1c436f756e63696c01503443616e646964616379426f6e6401003042616c616e63654f663c543e400900000000000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e5050726573656e74536c617368506572566f74657201003042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c753332100200000004350120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e646578100100000008a10120486f77206d616e7920766f746520696e6465786573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e206265207265617065642069662074686569725020617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200500000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697371012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e64657810000000000405012054686520746f74616c206e756d626572206f6620766f746573207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f66010130543a3a4163636f756e744964245665633c626f6f6c3e000400086d012041206c697374206f6620766f74657320666f72206561636820766f7465722c2072657370656374696e6720746865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f7465722077617340206c617374206163746976652061742e385265676973746572496e666f4f66000130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e304c6173744163746976654f66000130543a3a4163636f756e74496424566f7465496e64657800040004010120546865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f74657220776173206c617374206163746976652061742e18566f746572730100445665633c543a3a4163636f756e7449643e04000460205468652070726573656e7420766f746572206c6973742e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000000304e65787446696e616c6973650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e40536e617073686f7465645374616b65730100445665633c42616c616e63654f663c543e3e040004e820546865207374616b6573206173207468657920776572652061742074686520706f696e7420746861742074686520766f746520656e6465642e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e040004e02047657420746865206c6561646572626f6172642069662077653b726520696e207468652070726573656e746174696f6e2070686173652e0124347365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e086101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e1461012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e042d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e0c78205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e0c650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea501204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e282960607820607369676e6564602073686f756c642068617665206174206c65617374447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570690120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f7420616c72656164793420696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c71012052656d6f7665206120706172746963756c6172206d656d6265722e20412074616c6c792077696c6c2068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e7c20546869732069732065666665637469766520696d6d6564696174656c792e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c6973655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c6973655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c6973656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e38636f756e63696c5f766f74696e6734436f756e63696c566f74696e67012034436f6f6c6f6666506572696f64010038543a3a426c6f636b4e756d62657220e8030000000000000030566f74696e67506572696f64010038543a3a426c6f636b4e756d6265722003000000000000000040456e61637444656c6179506572696f64010038543a3a426c6f636b4e756d62657220000000000000000004cd01204e756d626572206f6620626c6f636b7320627920776869636820746f2064656c617920656e6163746d656e74206f66207375636365737366756c2c206e6f6e2d756e616e696d6f75732d636f756e63696c2d696e7374696761746564207265666572656e64756d2070726f706f73616c732e2450726f706f73616c730100785665633c28543a3a426c6f636b4e756d6265722c20543a3a48617368293e0400002850726f706f73616c4f6600011c543a3a486173682c543a3a50726f706f73616c000400003850726f706f73616c566f7465727301011c543a3a48617368445665633c543a3a4163636f756e7449643e0004000034436f756e63696c566f74654f6600015c28543a3a486173682c20543a3a4163636f756e7449642910626f6f6c00040000385665746f656450726f706f73616c00011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000001141c70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e0010766f7465082070726f706f73616c1c543a3a486173681c617070726f766510626f6f6c00107665746f043470726f706f73616c5f686173681c543a3a4861736800487365745f636f6f6c6f66665f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e00447365745f766f74696e675f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e0001084054616c6c7943616e63656c6174696f6e1010486173680c7533320c7533320c753332080101204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d2063616e63656c6c6174696f6e20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c54616c6c795265666572656e64756d1010486173680c7533320c7533320c75333208cc204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c636f756e63696c5f6d6f74696f6e7338436f756e63696c4d6f74696f6e7301102450726f706f73616c730100305665633c543a3a486173683e04000498205468652028686173686573206f662920746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e6700011c543a3a48617368e82850726f706f73616c496e6465782c207533322c205665633c543a3a4163636f756e7449643e2c205665633c543a3a4163636f756e7449643e2900040004250120566f74657320666f72206120676976656e2070726f706f73616c3a202872657175697265645f7965735f766f7465732c207965735f766f746572732c206e6f5f766f74657273292e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e01081c70726f706f736508247468726573686f6c6430436f6d706163743c7533323e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e0010766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c0001142050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173680c7533320465012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e20753332292e14566f74656414244163636f756e744964104861736810626f6f6c0c7533320c7533320809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67f420612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e206173207533327320726573706563746976656c79292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e001c6772616e6470613c4772616e64706146696e616c69747901083450656e64696e674368616e67650000c853746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265722c20543a3a53657373696f6e4b65793e040000284e657874466f72636564000038543a3a426c6f636b4e756d6265720400000104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0468205265706f727420736f6d65206d69736265686176696f75722e0104384e6577417574686f72697469657304585665633c2853657373696f6e4b65792c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e20747265617375727920547265617375727901203050726f706f73616c426f6e6401001c5065726d696c6c10000000000851012050726f706f7274696f6e206f662066756e647320746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c61636520612070726f706f73616c2e20416e206163636570746564dc2070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f65736e27742e4c50726f706f73616c426f6e644d696e696d756d01003042616c616e63654f663c543e4000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f7401003042616c616e63654f663c543e400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c7300013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01143470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c2d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e1c7365745f706f74041c6e65775f706f7454436f6d706163743c42616c616e63654f663c543e3e04b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e24636f6e666967757265103470726f706f73616c5f626f6e6440436f6d706163743c5065726d696c6c3e5470726f706f73616c5f626f6e645f6d696e696d756d54436f6d706163743c42616c616e63654f663c543e3e307370656e645f706572696f645c436f6d706163743c543a3a426c6f636b4e756d6265723e106275726e40436f6d706163743c5065726d696c6c3e0470202852652d29636f6e6669677572652074686973206d6f64756c652e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e04fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e085d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637420436f6e747261637401342c436f6e7472616374466565010028543a3a42616c616e63654015000000000000000000000000000000044d01205468652066656520726571756972656420746f20637265617465206120636f6e74726163742e204174206c6561737420617320626967206173207374616b696e672773205265636c61696d5265626174652e2c43616c6c42617365466565010018543a3a47617320870000000000000004b02054686520666565206368617267656420666f7220612063616c6c20696e746f206120636f6e74726163742e3443726561746542617365466565010018543a3a47617320af0000000000000004b02054686520666565206368617267656420666f72206120637265617465206f66206120636f6e74726163742e204761735072696365010028543a3a42616c616e63654001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e204d6178446570746801000c753332106400000004c820546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e34426c6f636b4761734c696d6974010018543a3a4761732040420f000000000004f020546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204761735370656e74010018543a3a476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100405363686564756c653c543a3a4761733ef000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000000001001000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e28436f6465486173684f66000130543a3a4163636f756e7449642c436f6465486173683c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e305072697374696e65436f646500012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f7261676500012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000475012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f722074686520657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045020546865207375627472696520636f756e746572344163636f756e74496e666f4f66000130543a3a4163636f756e7449642c4163636f756e74496e666f00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e01103c7570646174655f7363686564756c6504207363686564756c65405363686564756c653c543a3a4761733e0cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d69743c436f6d706163743c543a3a4761733e10636f64651c5665633c75383e0445012053746f72657320636f646520696e207468652073746f726167652e20596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e246761735f6c696d69743c436f6d706163743c543a3a4761733e10646174611c5665633c75383e042901204d616b6520612063616c6c20746f206120737065636966696564206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e186372656174651024656e646f776d656e744c436f6d706163743c543a3a42616c616e63653e246761735f6c696d69743c436f6d706163743c543a3a4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e245101204372656174652061206e657720636f6e74726163742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e636520746f207468652063726561746564206163636f756e742e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d207468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652eb8202d206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20746865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792063726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564b420202075706f6e20616e79206d6573736167652072656365697665642062792074686973206163636f756e742e0114205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365047501205472616e736665722068617070656e6564206066726f6d60202d3e2060746f60207769746820676976656e206076616c7565602061732070617274206f66206120606d6573736167652d63616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e107375646f105375646f01040c4b6579010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000000108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e001c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v2/toV3.ts b/packages/metadata/src/Metadata/v2/toV3.ts deleted file mode 100644 index 0ca3b5b7a1..0000000000 --- a/packages/metadata/src/Metadata/v2/toV3.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV2, MetadataV3 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -/** @internal */ -export default function toV3 (registry: Registry, metadataV2: MetadataV2): MetadataV3 { - return registry.createType('MetadataV3', metadataV2); -} diff --git a/packages/metadata/src/Metadata/v3/Metadata.spec.ts b/packages/metadata/src/Metadata/v3/Metadata.spec.ts deleted file mode 100644 index d7f34a7279..0000000000 --- a/packages/metadata/src/Metadata/v3/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import staticSubstrate from './static-substrate.json'; -import rpcData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV3', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 3, rpcData, staticSubstrate); - - toLatest(registry, 3, rpcData, false); - - defaultValues(registry, rpcData, false); -}); diff --git a/packages/metadata/src/Metadata/v3/static-substrate.json b/packages/metadata/src/Metadata/v3/static-substrate.json deleted file mode 100644 index 1936d9576e..0000000000 --- a/packages/metadata/src/Metadata/v3/static-substrate.json +++ /dev/null @@ -1,3204 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V3": { - "modules": [ - { - "name": "system", - "prefix": "System", - "storage": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Extrinsics nonce for accounts." - ] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total extrinsics count for the current block." - ] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total length in bytes for all extrinsics put together, for the current block." - ] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Map of block numbers to block hashes." - ] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Extrinsics data for the current block (maps extrinsic's index to its data)." - ] - }, - { - "name": "RandomSeed", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Random seed of the current block." - ] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Hash of the previous block." - ] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Extrinsics root of the current block, also part of the block header." - ] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "Digest" - }, - "fallback": "0x00", - "documentation": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Events deposited for the current block." - ] - } - ], - "calls": null, - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ] - }, - { - "name": "aura", - "prefix": "", - "storage": null, - "calls": null, - "events": null - }, - { - "name": "timestamp", - "prefix": "Timestamp", - "storage": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "BlockPeriod", - "modifier": "Optional", - "type": { - "Plain": "Moment" - }, - "fallback": "0x00", - "documentation": [ - " Old storage item provided for compatibility. Remove after all networks upgraded." - ] - }, - { - "name": "MinimumPeriod", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0300000000000000", - "documentation": [ - " 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." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ], - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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 `minimum_period`.", - " ", - " The dispatch origin for this call must be `Inherent`." - ] - } - ], - "events": null - }, - { - "name": "consensus", - "prefix": "Consensus", - "storage": [ - { - "name": "OriginalAuthorities", - "modifier": "Optional", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - }, - { - "name": "note_offline", - "args": [ - { - "name": "offline", - "type": "InherentOfflineReport" - } - ], - "documentation": [ - " Note the previous block's validator missed their opportunity to propose a block." - ] - }, - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - }, - { - "name": "kill_storage", - "args": [ - { - "name": "keys", - "type": "Vec" - } - ], - "documentation": [ - " Kill some items from storage." - ] - } - ], - "events": null - }, - { - "name": "indices", - "prefix": "Indices", - "storage": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ], - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ] - }, - { - "name": "balances", - "prefix": "Balances", - "storage": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total units issued in the system." - ] - }, - { - "name": "ExistentialDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount required to keep an account open." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It", - " alone is used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to clean up data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable.", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ], - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "free", - "type": "Compact" - }, - { - "name": "reserved", - "type": "Compact" - } - ], - "documentation": [ - " Set the balances of a given account.", - "", - " This will alter `FreeBalance` and `ReservedBalance` in storage.", - " If the new free or reserved balance is below the existential deposit,", - " it will also decrease the total issuance of the system (`TotalIssuance`)", - " and reset the account nonce (`system::AccountNonce`).", - "", - " The dispatch origin for this call is `root`." - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ] - }, - { - "name": "session", - "prefix": "Session", - "storage": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "SessionLength", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " Current length of the session." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "CurrentStart", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Timestamp when current session started." - ] - }, - { - "name": "ForcingNewSession", - "modifier": "Optional", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " New session is being forced is this entry exists; in which case, the boolean value is whether", - " the new session should be considered a normal rotation (rewardable) or exceptional (slashable)." - ] - }, - { - "name": "LastLengthChange", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " Block at which the session length last changed." - ] - }, - { - "name": "NextKeyFor", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "SessionKey", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The next key for a given validator." - ] - }, - { - "name": "NextSessionLength", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next session length." - ] - } - ], - "calls": [ - { - "name": "set_key", - "args": [ - { - "name": "key", - "type": "SessionKey" - } - ], - "documentation": [ - " Sets the session key of `_validator` to `_key`. This doesn't take effect until the next", - " session." - ] - }, - { - "name": "set_length", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set a new session length. Won't kick in until the next session change (at current length)." - ] - }, - { - "name": "force_new_session", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Forces a new session." - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "BlockNumber" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ] - }, - { - "name": "staking", - "prefix": "Staking", - "storage": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionsPerEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of a staking era in sessions." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "BondingDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of the bonding duration in blocks." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x0c00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate through validators here,", - " but you can find them in the `sessions` module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentEraReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The accumulated reward for the current era. Reset to zero at the beginning of the era and", - " increased for every successfully finished session." - ] - }, - { - "name": "NextSessionsPerEra", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next value of sessions per era." - ] - }, - { - "name": "LastEraLengthChange", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The session index at which the era length last changed." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "u32", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented by one each era that passes." - ] - }, - { - "name": "ForcingNewEra", - "modifier": "Optional", - "type": { - "Plain": "()" - }, - "fallback": "0x00", - "documentation": [ - " We are forcing a new era." - ] - }, - { - "name": "RecentlyOffline", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber,u32)>" - }, - "fallback": "0x00", - "documentation": [ - " Most recent `RECENT_OFFLINE_COUNT` instances. (who it was, when it was reported, how many instances they were offline for)." - ] - } - ], - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " Take the origin account as a stash and lock up `value` of its balance. `controller` will be the", - " account that controls it.", - "", - " The dispatch origin for this call must be _Signed_." - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " The dispatch origin for this call must be _Signed_ by the stash, not the controller." - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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::existential_deposit(), 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.", - "", - " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", - "", - " See also [`Call::withdraw_unbonded`]." - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " See also [`Call::unbond`]." - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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." - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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." - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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." - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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 stash, not the controller." - ] - }, - { - "name": "set_sessions_per_era", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the number of sessions in an era." - ] - }, - { - "name": "set_bonding_duration", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The length of the bonding duration in eras." - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_new_era", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward." - ] - }, - { - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and their nominators) has been given a offline-warning (they're still", - " within their grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and their nominators) has been slashed by the given amount." - ] - } - ] - }, - { - "name": "democracy", - "prefix": "Democracy", - "storage": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "LaunchPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "MinimumDeposit", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "PublicDelay", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The delay before enactment for all public referenda." - ] - }, - { - "name": "MaxLockPeriods", - "modifier": "Default", - "type": { - "Plain": "LockPeriods" - }, - "fallback": "0x00", - "documentation": [ - " The maximum number of additional lock periods a voter may offer to strengthen their vote. Multiples of `PublicDelay`." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referendums started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only if `voters_for` includes the", - " voter when called with the referendum (you'll get the default `Vote` value otherwise). If you don't want to check", - " `voters_for`, then you can also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "(AccountId,LockPeriods)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "start_referendum", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Start a referendum." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "lock_periods", - "type": "LockPeriods" - } - ], - "documentation": [ - " Delegate vote." - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - } - ] - }, - { - "name": "council", - "prefix": "Council", - "storage": [ - { - "name": "CandidacyBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x09000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy." - ] - }, - { - "name": "VotingBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "PresentSlashPerVoter", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation." - ] - }, - { - "name": "CarryCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x02000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next vote." - ] - }, - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "InactiveGracePeriod", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x01000000", - "documentation": [ - " How many vote indexes need to go by after a target voter's last vote before they can be reaped if their", - " approvals are moot." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should be sitting on the council." - ] - }, - { - "name": "ActiveCouncil", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current council. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the council member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of votes that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter, respecting the last cleared vote index that this voter was", - " last active at." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "(VoteIndex,u32)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "LastActiveOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "VoteIndex", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The last cleared vote index that this voter was last active at." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present voter list." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [] - }, - { - "name": "NextFinalize", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "SnapshotedStakes", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The stakes as they were at the point that the vote ended." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we;re in the presentation phase." - ] - } - ], - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered." - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " May be called by anyone. Returns the voter deposit to `signed`." - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned." - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond." - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()``", - " `signed` should have at least" - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not already", - " in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member. A tally will happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met.", - " This is effective immediately." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalize_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalize_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has started." - ] - }, - { - "name": "TallyFinalized", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has ended (with one or more new members)." - ] - } - ] - }, - { - "name": "council_voting", - "prefix": "CouncilVoting", - "storage": [ - { - "name": "CooloffPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0300000000000000", - "documentation": [] - }, - { - "name": "EnactDelayPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Number of blocks by which to delay enactment of successful, non-unanimous-council-instigated referendum proposals." - ] - }, - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec<(BlockNumber,Hash)>" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ProposalVoters", - "modifier": "Default", - "type": { - "Map": { - "key": "Hash", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "CouncilVoteOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "(Hash,AccountId)", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "VetoedProposal", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - }, - { - "name": "veto", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [] - }, - { - "name": "set_cooloff_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - }, - { - "name": "set_voting_period", - "args": [ - { - "name": "blocks", - "type": "Compact" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "TallyCancelation", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum cancellation vote.", - " Last three are yes, no, abstain counts." - ] - }, - { - "name": "TallyReferendum", - "args": [ - "Hash", - "u32", - "u32", - "u32" - ], - "documentation": [ - " A voting tally has happened for a referendum vote.", - " Last three are yes, no, abstain counts." - ] - } - ] - }, - { - "name": "council_motions", - "prefix": "CouncilMotions", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The (hashes of) the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "key": "Hash", - "value": "(ProposalIndex,u32,Vec,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes for a given proposal: (required_yes_votes, yes_voters, no_voters)." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "u32" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given u32)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "u32", - "u32" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given as u32s respectively)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - } - ] - }, - { - "name": "finality_tracker", - "prefix": "", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null - }, - { - "name": "grandpa", - "prefix": "GrandpaFinality", - "storage": [ - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(SessionKey,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - } - ] - }, - { - "name": "treasury", - "prefix": "Treasury", - "storage": [ - { - "name": "ProposalBond", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Proportion of funds that should be bonded in order to place a proposal. An accepted", - " proposal gets these back. A rejected proposal doesn't." - ] - }, - { - "name": "ProposalBondMinimum", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0100000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Total funds available to this module for spending." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ], - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "set_pot", - "args": [ - { - "name": "new_pot", - "type": "Compact" - } - ], - "documentation": [ - " Set the balance of funds available to spend." - ] - }, - { - "name": "configure", - "args": [ - { - "name": "proposal_bond", - "type": "Compact" - }, - { - "name": "proposal_bond_minimum", - "type": "Compact" - }, - { - "name": "spend_period", - "type": "Compact" - }, - { - "name": "burn", - "type": "Compact" - } - ], - "documentation": [ - " (Re-)configure this module." - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed." - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ] - }, - { - "name": "contract", - "prefix": "Contract", - "storage": [ - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "ContractFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x15000000000000000000000000000000", - "documentation": [ - " The fee required to create a contract instance." - ] - }, - { - "name": "CallBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8700000000000000", - "documentation": [ - " The base fee charged for calling into a contract." - ] - }, - { - "name": "CreateBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0xaf00000000000000", - "documentation": [ - " The base fee charged for creating a contract." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - }, - { - "name": "MaxDepth", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x64000000", - "documentation": [ - " The maximum nesting level of a call/create stack." - ] - }, - { - "name": "BlockGasLimit", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x40420f0000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block." - ] - }, - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000000010010000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "CodeHashOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "CodeHash", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for the execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter" - ] - }, - { - "name": "AccountInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "key": "AccountId", - "value": "ContractAccountInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - } - ], - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores the given binary Wasm code into the chains storage and returns its `codehash`.", - " You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Creates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", - "", - " Creation is executed as follows:", - "", - " - the destination address is computed based on the sender and hash of the code.", - " - the smart-contract account is created at the computed address.", - " - the `ctor_code` is executed in the context of the newly created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any call received by this account.", - " - The contract is initialized." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` to `to` with given `value` as part of a `call` or `create`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - } - ] - }, - { - "name": "sudo", - "prefix": "Sudo", - "storage": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [] - } - ], - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v3/static.ts b/packages/metadata/src/Metadata/v3/static.ts deleted file mode 100644 index d175a45e59..0000000000 --- a/packages/metadata/src/Metadata/v3/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746103441873797374656d1853797374656d012c304163636f756e744e6f6e6365010130543a3a4163636f756e74496420543a3a496e64657800200000000000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004390120546f74616c206c656e67746820696e20627974657320666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b48617368010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e7369634461746101010c7533321c5665633c75383e0004000431012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d6170732065787472696e736963277320696e64657820746f206974732064617461292e2852616e646f6d5365656401001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004882052616e646f6d2073656564206f66207468652063757272656e7420626c6f636b2e184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e18446967657374010024543a3a446967657374040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e74730100685665633c4576656e745265636f72643c543a3a4576656e743e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e0001084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1061757261000000002474696d657374616d702454696d657374616d7001100c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64000024543a3a4d6f6d656e740400044501204f6c642073746f72616765206974656d2070726f766964656420666f7220636f6d7061746962696c6974792e2052656d6f766520616674657220616c6c206e6574776f726b732075706772616465642e344d696e696d756d506572696f64010024543a3a4d6f6d656e7420030000000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e205820536574207468652063757272656e742074696d652e00750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008d01205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627920606d696e696d756d5f706572696f64602e0420d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0024636f6e73656e73757324436f6e73656e73757301044c4f726967696e616c417574686f7269746965730000485665633c543a3a53657373696f6e4b65793e040000011c487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e306e6f74655f6f66666c696e65041c6f66666c696e65f43c543a3a496e686572656e744f66666c696e655265706f727420617320496e686572656e744f66666c696e655265706f72743e3a3a496e686572656e74044501204e6f7465207468652070726576696f757320626c6f636b27732076616c696461746f72206d6973736564207468656972206f70706f7274756e69747920746f2070726f706f7365206120626c6f636b2e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d53657401013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e2062616c616e6365732042616c616e636573012834546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e42617365466565010028543a3a42616c616e6365400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e42797465466565010028543a3a42616c616e63654000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c56657374696e67000130543a3a4163636f756e7449646c56657374696e675363686564756c653c543a3a42616c616e63653e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e6365010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b73010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e20d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510667265654c436f6d706163743c543a3a42616c616e63653e2072657365727665644c436f6d706163743c543a3a42616c616e63653e209420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00010120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c25012069742077696c6c20616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e63656029d820616e6420726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e1c53657373696f6e01202856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3453657373696f6e4c656e677468010038543a3a426c6f636b4e756d62657220e803000000000000047c2043757272656e74206c656e677468206f66207468652073657373696f6e2e3043757272656e74496e646578010038543a3a426c6f636b4e756d62657220000000000000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e3043757272656e745374617274010024543a3a4d6f6d656e7420000000000000000004a02054696d657374616d70207768656e2063757272656e742073657373696f6e20737461727465642e44466f7263696e674e657753657373696f6e000010626f6f6c0400087901204e65772073657373696f6e206973206265696e6720666f72636564206973207468697320656e747279206578697374733b20696e20776869636820636173652c2074686520626f6f6c65616e2076616c75652069732077686574686572810120746865206e65772073657373696f6e2073686f756c6420626520636f6e736964657265642061206e6f726d616c20726f746174696f6e202872657761726461626c6529206f7220657863657074696f6e616c2028736c61736861626c65292e404c6173744c656e6774684368616e6765000038543a3a426c6f636b4e756d626572040004c020426c6f636b206174207768696368207468652073657373696f6e206c656e677468206c617374206368616e6765642e284e6578744b6579466f72000130543a3a4163636f756e74496434543a3a53657373696f6e4b6579000400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e444e65787453657373696f6e4c656e677468000038543a3a426c6f636b4e756d6265720400046420546865206e6578742073657373696f6e206c656e6774682e010c1c7365745f6b6579040c6b657934543a3a53657373696f6e4b65790861012053657473207468652073657373696f6e206b6579206f6620605f76616c696461746f726020746f20605f6b6579602e205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e657874242073657373696f6e2e287365745f6c656e677468040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e046d01205365742061206e65772073657373696f6e206c656e6774682e20576f6e2774206b69636b20696e20756e74696c20746865206e6578742073657373696f6e206368616e6765202861742063757272656e74206c656e677468292e44666f7263655f6e65775f73657373696f6e04346170706c795f7265776172647310626f6f6c045820466f726365732061206e65772073657373696f6e2e0104284e657753657373696f6e042c426c6f636b4e756d626572085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e671c5374616b696e6701603856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3853657373696f6e73506572457261010038543a3a426c6f636b4e756d62657220e80300000000000004a420546865206c656e677468206f662061207374616b696e672065726120696e2073657373696f6e732e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e3c426f6e64696e674475726174696f6e010038543a3a426c6f636b4e756d62657220e80300000000000004b820546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20626c6f636b732e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e040008a50120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697a65ad0120616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e646564000130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c6564676572000130543a3a4163636f756e744964e45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e145061796565010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f7273010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01080c0004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f7273010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b657273010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c00000010b101204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e27742069746572617465207468726f7567682076616c696461746f727320686572652cc02062757420796f752063616e2066696e64207468656d20696e20746865206073657373696f6e7360206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010038543a3a426c6f636b4e756d626572200000000000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000869012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f66207468652065726120616e64cc20696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e484e65787453657373696f6e73506572457261000038543a3a426c6f636b4e756d6265720400049020546865206e6578742076616c7565206f662073657373696f6e7320706572206572612e4c4c6173744572614c656e6774684368616e6765010038543a3a426c6f636b4e756d62657220000000000000000004e0205468652073657373696f6e20696e6465782061742077686963682074686520657261206c656e677468206c617374206368616e6765642e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e74010130543a3a4163636f756e7449640c75333200100000000004d10120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e746564206279206f6e652065616368206572612074686174207061737365732e34466f7263696e674e65774572610000082829040004682057652061726520666f7263696e672061206e6577206572612e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e040004f101204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202877686f206974207761732c207768656e20697420776173207265706f727465642c20686f77206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e013c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e1081012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c2062652074686568206163636f756e74207468617420636f6e74726f6c732069742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e1875012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757020666f7224207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e285501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656400202d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e14e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e141101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c0014c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e247365745f7061796565041470617965654452657761726444657374696e6174696f6e14b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e507365745f73657373696f6e735f7065725f657261040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04982053657420746865206e756d626572206f662073657373696f6e7320696e20616e206572612e507365745f626f6e64696e675f6475726174696f6e040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726104346170706c795f7265776172647310626f6f6c083d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332085501204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20676976656e2061206f66666c696e652d7761726e696e67202874686579277265207374696c6c15012077697468696e207468656972206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042d01204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f63726163792444656d6f6372616379013c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f6600012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e304c61756e6368506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e384d696e696d756d4465706f73697401003042616c616e63654f663c543e400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e2c5075626c696344656c6179010038543a3a426c6f636b4e756d62657220000000000000000004d4205468652064656c6179206265666f726520656e6163746d656e7420666f7220616c6c207075626c6963207265666572656e64612e384d61784c6f636b506572696f647301002c4c6f636b506572696f6473040004d90120546865206d6178696d756d206e756d626572206f66206164646974696f6e616c206c6f636b20706572696f6473206120766f746572206d6179206f6666657220746f20737472656e677468656e20746865697220766f74652e204d756c7469706c6573206f6620605075626c696344656c6179602e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004390120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e64756d73207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f6600013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e3444697370617463685175657565010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f7201013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f6601017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f74650004000cd501204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c792069662060766f746572735f666f726020696e636c7564657320746865c90120766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468652064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b61012060766f746572735f666f72602c207468656e20796f752063616e20616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e2c44656c65676174696f6e73010130543a3a4163636f756e7449646c28543a3a4163636f756e7449642c204c6f636b506572696f64732901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e01201c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e4073746172745f7265666572656e64756d0c2070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c641464656c617938543a3a426c6f636b4e756d62657204502053746172742061207265666572656e64756d2e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f71756575656408107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e2064656c65676174650808746f30543a3a4163636f756e744964306c6f636b5f706572696f64732c4c6f636b506572696f6473043c2044656c656761746520766f74652e28756e64656c656761746500044420556e64656c656761746520766f74652e01242050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e744964001c636f756e63696c1c436f756e63696c01503443616e646964616379426f6e6401003042616c616e63654f663c543e400900000000000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e5050726573656e74536c617368506572566f74657201003042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c753332100200000004350120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e646578100100000008a10120486f77206d616e7920766f746520696e6465786573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e206265207265617065642069662074686569725020617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200500000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697371012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e64657810000000000405012054686520746f74616c206e756d626572206f6620766f746573207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f66010130543a3a4163636f756e744964245665633c626f6f6c3e000400086d012041206c697374206f6620766f74657320666f72206561636820766f7465722c2072657370656374696e6720746865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f7465722077617340206c617374206163746976652061742e385265676973746572496e666f4f66000130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e304c6173744163746976654f66000130543a3a4163636f756e74496424566f7465496e64657800040004010120546865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f74657220776173206c617374206163746976652061742e18566f746572730100445665633c543a3a4163636f756e7449643e04000460205468652070726573656e7420766f746572206c6973742e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000000304e65787446696e616c697a650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e40536e617073686f7465645374616b65730100445665633c42616c616e63654f663c543e3e040004e820546865207374616b6573206173207468657920776572652061742074686520706f696e7420746861742074686520766f746520656e6465642e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e040004e02047657420746865206c6561646572626f6172642069662077653b726520696e207468652070726573656e746174696f6e2070686173652e0124347365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e086101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e1461012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e042d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e0c78205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e0c650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea501204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e282960607820607369676e6564602073686f756c642068617665206174206c65617374447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570690120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f7420616c72656164793420696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c71012052656d6f7665206120706172746963756c6172206d656d6265722e20412074616c6c792077696c6c2068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e7c20546869732069732065666665637469766520696d6d6564696174656c792e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c697a656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e38636f756e63696c5f766f74696e6734436f756e63696c566f74696e67012034436f6f6c6f6666506572696f64010038543a3a426c6f636b4e756d62657220e8030000000000000030566f74696e67506572696f64010038543a3a426c6f636b4e756d6265722003000000000000000040456e61637444656c6179506572696f64010038543a3a426c6f636b4e756d62657220000000000000000004cd01204e756d626572206f6620626c6f636b7320627920776869636820746f2064656c617920656e6163746d656e74206f66207375636365737366756c2c206e6f6e2d756e616e696d6f75732d636f756e63696c2d696e7374696761746564207265666572656e64756d2070726f706f73616c732e2450726f706f73616c730100785665633c28543a3a426c6f636b4e756d6265722c20543a3a48617368293e0400002850726f706f73616c4f6600011c543a3a486173682c543a3a50726f706f73616c000400003850726f706f73616c566f7465727301011c543a3a48617368445665633c543a3a4163636f756e7449643e0004000034436f756e63696c566f74654f6600015c28543a3a486173682c20543a3a4163636f756e7449642910626f6f6c00040000385665746f656450726f706f73616c00011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000001141c70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e0010766f7465082070726f706f73616c1c543a3a486173681c617070726f766510626f6f6c00107665746f043470726f706f73616c5f686173681c543a3a4861736800487365745f636f6f6c6f66665f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e00447365745f766f74696e675f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e0001084054616c6c7943616e63656c6174696f6e1010486173680c7533320c7533320c753332080101204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d2063616e63656c6c6174696f6e20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c54616c6c795265666572656e64756d1010486173680c7533320c7533320c75333208cc204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c636f756e63696c5f6d6f74696f6e7338436f756e63696c4d6f74696f6e7301102450726f706f73616c730100305665633c543a3a486173683e04000498205468652028686173686573206f662920746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e6700011c543a3a48617368e82850726f706f73616c496e6465782c207533322c205665633c543a3a4163636f756e7449643e2c205665633c543a3a4163636f756e7449643e2900040004250120566f74657320666f72206120676976656e2070726f706f73616c3a202872657175697265645f7965735f766f7465732c207965735f766f746572732c206e6f5f766f74657273292e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e01081c70726f706f736508247468726573686f6c6430436f6d706163743c7533323e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e0010766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c0001142050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173680c7533320465012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e20753332292e14566f74656414244163636f756e744964104861736810626f6f6c0c7533320c7533320809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67f420612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e206173207533327320726573706563746976656c79292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e001c6772616e6470613c4772616e64706146696e616c69747901083450656e64696e674368616e67650000c853746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265722c20543a3a53657373696f6e4b65793e040000284e657874466f72636564000038543a3a426c6f636b4e756d6265720400000104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e0104384e6577417574686f72697469657304585665633c2853657373696f6e4b65792c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e20747265617375727920547265617375727901203050726f706f73616c426f6e6401001c5065726d696c6c10000000000851012050726f706f7274696f6e206f662066756e647320746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c61636520612070726f706f73616c2e20416e206163636570746564dc2070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f65736e27742e4c50726f706f73616c426f6e644d696e696d756d01003042616c616e63654f663c543e4000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f7401003042616c616e63654f663c543e400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c7300013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01143470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c2d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e1c7365745f706f74041c6e65775f706f7454436f6d706163743c42616c616e63654f663c543e3e04b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e24636f6e666967757265103470726f706f73616c5f626f6e6440436f6d706163743c5065726d696c6c3e5470726f706f73616c5f626f6e645f6d696e696d756d54436f6d706163743c42616c616e63654f663c543e3e307370656e645f706572696f645c436f6d706163743c543a3a426c6f636b4e756d6265723e106275726e40436f6d706163743c5065726d696c6c3e0470202852652d29636f6e6669677572652074686973206d6f64756c652e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e04fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e085d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637420436f6e747261637401442c5472616e7366657246656501003042616c616e63654f663c543e40000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656501003042616c616e63654f663c543e4000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e4261736546656501003042616c616e63654f663c543e400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656501003042616c616e63654f663c543e4000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e747261637446656501003042616c616e63654f663c543e401500000000000000000000000000000004c0205468652066656520726571756972656420746f20637265617465206120636f6e747261637420696e7374616e63652e2c43616c6c42617365466565010018543a3a47617320870000000000000004c820546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e3443726561746542617365466565010018543a3a47617320af0000000000000004b820546865206261736520666565206368617267656420666f72206372656174696e67206120636f6e74726163742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e204d6178446570746801000c753332106400000004c820546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e34426c6f636b4761734c696d6974010018543a3a4761732040420f000000000004f020546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204761735370656e74010018543a3a476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100405363686564756c653c543a3a4761733ef000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000000001001000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e28436f6465486173684f66000130543a3a4163636f756e7449642c436f6465486173683c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e305072697374696e65436f646500012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f7261676500012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000475012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f722074686520657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045020546865207375627472696520636f756e746572344163636f756e74496e666f4f66000130543a3a4163636f756e7449642c4163636f756e74496e666f00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e01103c7570646174655f7363686564756c6504207363686564756c65405363686564756c653c543a3a4761733e0cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d69743c436f6d706163743c543a3a4761733e10636f64651c5665633c75383e0859012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e186372656174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28a90120437265617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d207468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2074686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20746865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792063726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e0114205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365045501205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e107375646f105375646f01040c4b6579010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000000108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e001c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v3/toV4.ts b/packages/metadata/src/Metadata/v3/toV4.ts deleted file mode 100644 index e8f6fd0d68..0000000000 --- a/packages/metadata/src/Metadata/v3/toV4.ts +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV3, MetadataV4, ModuleMetadataV4, StorageFunctionMetadataV3, StorageFunctionMetadataV4 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -import { Option } from '@polkadot/types/codec'; - -/** @internal */ -function toV4StorageFunction (registry: Registry, storageFn: StorageFunctionMetadataV3): StorageFunctionMetadataV4 { - const { documentation, fallback, modifier, name, type } = storageFn; - - // Convert the old type to the new type: there is one new field - // called `hasher`, which we initialize to xxHash (the default in - // v3). - const [newType, index] = type.isPlain - ? [type.asPlain, 0] - : type.isMap - ? [registry.createType('MapTypeV4', { - hasher: registry.createType('StorageHasherV4', 'Twox128'), - key: type.asMap.key, - linked: type.asMap.linked, - value: type.asMap.value - }), 1] - : [registry.createType('DoubleMapTypeV4', { - hasher: registry.createType('StorageHasherV4', 'Twox128'), - key1: type.asDoubleMap.key1, - key2: type.asDoubleMap.key2, - key2Hasher: type.asDoubleMap.key2Hasher, - value: type.asDoubleMap.value - }), 2]; - - return registry.createType('StorageFunctionMetadataV4', { - documentation, - fallback, - modifier, - name, - type: registry.createType('StorageFunctionTypeV4', newType, index) - }); -} - -/** @internal */ -export default function toV4 (registry: Registry, { modules }: MetadataV3): MetadataV4 { - return registry.createType('MetadataV4', { - modules: modules.map(({ calls, events, name, prefix, storage }): ModuleMetadataV4 => - registry.createType('ModuleMetadataV4', { - calls, - events, - name, - prefix, - storage: storage.isSome - ? new Option( - registry, - 'Vec', - storage.unwrap().map((v): StorageFunctionMetadataV4 => toV4StorageFunction(registry, v)) - ) - : undefined - }) - ) - }); -} diff --git a/packages/metadata/src/Metadata/v4/Metadata.spec.ts b/packages/metadata/src/Metadata/v4/Metadata.spec.ts deleted file mode 100644 index e422f24c60..0000000000 --- a/packages/metadata/src/Metadata/v4/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import staticSubstrate from './static-substrate.json'; -import rpcData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV4', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 4, rpcData, staticSubstrate); - - toLatest(registry, 4, rpcData, false); - - defaultValues(registry, rpcData, false); -}); diff --git a/packages/metadata/src/Metadata/v4/static-substrate.json b/packages/metadata/src/Metadata/v4/static-substrate.json deleted file mode 100644 index 71e6162c1b..0000000000 --- a/packages/metadata/src/Metadata/v4/static-substrate.json +++ /dev/null @@ -1,3423 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V4": { - "modules": [ - { - "name": "system", - "prefix": "System", - "storage": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Extrinsics nonce for accounts." - ] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total extrinsics count for the current block." - ] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total length in bytes for all extrinsics put together, for the current block." - ] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Map of block numbers to block hashes." - ] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Extrinsics data for the current block (maps an extrinsic's index to its data)." - ] - }, - { - "name": "RandomMaterial", - "modifier": "Default", - "type": { - "Plain": "(i8,Vec)" - }, - "fallback": "0x0000", - "documentation": [ - " Series of block headers from the last 81 blocks that acts as random seed material. This is arranged as a", - " ring buffer with the `i8` prefix being the index into the `Vec` of the oldest hash." - ] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Hash of the previous block." - ] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Extrinsics root of the current block, also part of the block header." - ] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "Digest" - }, - "fallback": "0x00", - "documentation": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Events deposited for the current block." - ] - }, - { - "name": "EventCount", - "modifier": "Default", - "type": { - "Plain": "EventIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of events in the `Events` list." - ] - }, - { - "name": "EventTopics", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "()", - "key2": "Hash", - "value": "Vec<(BlockNumber,EventIndex)>", - "key2Hasher": "blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " Mapping between a topic (represented by T::Hash) and a vector of indexes", - " of events in the `>` list.", - "", - " The first key serves no purpose. This field is declared as double_map just", - " for convenience of using `remove_prefix`.", - "", - " 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." - ] - } - ], - "calls": null, - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ] - }, - { - "name": "aura", - "prefix": "", - "storage": null, - "calls": null, - "events": null - }, - { - "name": "timestamp", - "prefix": "Timestamp", - "storage": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "BlockPeriod", - "modifier": "Optional", - "type": { - "Plain": "Moment" - }, - "fallback": "0x00", - "documentation": [ - " Old storage item provided for compatibility. Remove after all networks upgraded." - ] - }, - { - "name": "MinimumPeriod", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0300000000000000", - "documentation": [ - " 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." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ], - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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 `minimum_period`.", - "", - " The dispatch origin for this call must be `Inherent`." - ] - } - ], - "events": null - }, - { - "name": "consensus", - "prefix": "Consensus", - "storage": [ - { - "name": "OriginalAuthorities", - "modifier": "Optional", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - }, - { - "name": "note_offline", - "args": [ - { - "name": "offline", - "type": "InherentOfflineReport" - } - ], - "documentation": [ - " Note that the previous block's validator missed its opportunity to propose a block." - ] - }, - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - }, - { - "name": "kill_storage", - "args": [ - { - "name": "keys", - "type": "Vec" - } - ], - "documentation": [ - " Kill some items from storage." - ] - } - ], - "events": null - }, - { - "name": "indices", - "prefix": "Indices", - "storage": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ], - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ] - }, - { - "name": "balances", - "prefix": "Balances", - "storage": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total units issued in the system." - ] - }, - { - "name": "ExistentialDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount required to keep an account open." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It", - " alone is used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to clean up data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable.", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ], - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "free", - "type": "Compact" - }, - { - "name": "reserved", - "type": "Compact" - } - ], - "documentation": [ - " Set the balances of a given account.", - "", - " This will alter `FreeBalance` and `ReservedBalance` in storage.", - " If the new free or reserved balance is below the existential deposit,", - " it will also decrease the total issuance of the system (`TotalIssuance`)", - " and reset the account nonce (`system::AccountNonce`).", - "", - " The dispatch origin for this call is `root`." - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ] - }, - { - "name": "session", - "prefix": "Session", - "storage": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "SessionLength", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " Current length of the session." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "CurrentStart", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Timestamp when current session started." - ] - }, - { - "name": "ForcingNewSession", - "modifier": "Optional", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " New session is being forced if this entry exists; in which case, the boolean value is true if", - " the new session should be considered a normal rotation (rewardable) and false if the new session", - " should be considered exceptional (slashable)." - ] - }, - { - "name": "LastLengthChange", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " Block at which the session length last changed." - ] - }, - { - "name": "NextKeyFor", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "SessionKey", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The next key for a given validator." - ] - }, - { - "name": "NextSessionLength", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next session length." - ] - } - ], - "calls": [ - { - "name": "set_key", - "args": [ - { - "name": "key", - "type": "SessionKey" - } - ], - "documentation": [ - " Sets the session key of a validator (function caller) to `key`.", - " This doesn't take effect until the next session." - ] - }, - { - "name": "set_length", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set a new session length. Won't kick in until the next session change (at current length)." - ] - }, - { - "name": "force_new_session", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Forces a new session." - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "BlockNumber" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ] - }, - { - "name": "staking", - "prefix": "Staking", - "storage": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionsPerEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " The length of a staking era in sessions." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "BondingDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0c00000000000000", - "documentation": [ - " The length of the bonding duration in eras." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x0c00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate through validators here,", - " but you can find them in the Session module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentEraReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The accumulated reward for the current era. Reset to zero at the beginning of the era and", - " increased for every successfully finished session." - ] - }, - { - "name": "NextSessionsPerEra", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " The next value of sessions per era." - ] - }, - { - "name": "LastEraLengthChange", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The session index at which the era length last changed." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "u32", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented by one each era that passes." - ] - }, - { - "name": "ForcingNewEra", - "modifier": "Optional", - "type": { - "Plain": "()" - }, - "fallback": "0x00", - "documentation": [ - " We are forcing a new era." - ] - }, - { - "name": "RecentlyOffline", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber,u32)>" - }, - "fallback": "0x00", - "documentation": [ - " Most recent `RECENT_OFFLINE_COUNT` instances. (Who it was, when it was reported, how many instances they were offline for)." - ] - } - ], - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " Take the origin account as a stash and lock up `value` of its balance. `controller` will be the", - " account that controls it.", - "", - " The dispatch origin for this call must be _Signed_ by the stash account." - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " The dispatch origin for this call must be _Signed_ by the stash, not the controller." - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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::existential_deposit(), 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.", - "", - " See also [`Call::withdraw_unbonded`]." - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " See also [`Call::unbond`]." - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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." - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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." - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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." - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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 stash, not the controller." - ] - }, - { - "name": "set_sessions_per_era", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the number of sessions in an era." - ] - }, - { - "name": "set_bonding_duration", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The length of the bonding duration in eras." - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_new_era", - "args": [ - { - "name": "apply_rewards", - "type": "bool" - } - ], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward." - ] - }, - { - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and its nominators) has been given an offline-warning (it is still", - " within its grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and its nominators) has been slashed by the given amount." - ] - } - ] - }, - { - "name": "democracy", - "prefix": "Democracy", - "storage": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referenda started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only", - " if `voters_for` includes the voter when called with the referendum (you'll get the", - " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", - " also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(AccountId,Conviction)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - }, - { - "name": "LastTabledWasExternal", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the last referendum tabled was submitted externally. False if it was a public", - " proposal." - ] - }, - { - "name": "NextExternal", - "modifier": "Optional", - "type": { - "Plain": "(Proposal,VoteThreshold)" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Blacklist", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Cancellations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Record of all proposals that have been subject to emergency cancellation." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken." - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "proxy_vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", - " the proposal; otherwise it is a vote to keep the status quo." - ] - }, - { - "name": "emergency_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "voting_period", - "type": "BlockNumber" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Schedule an emergency referendum.", - "", - " This will create a new referendum for the `proposal`, approved as long as counted votes", - " exceed `threshold` and, if approved, enacted after the given `delay`.", - "", - " It may be called from either the Root or the Emergency origin." - ] - }, - { - "name": "emergency_cancel", - "args": [ - { - "name": "ref_index", - "type": "ReferendumIndex" - } - ], - "documentation": [ - " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", - " referendum." - ] - }, - { - "name": "external_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a referendum to be tabled once it is legal to schedule an external", - " referendum." - ] - }, - { - "name": "external_propose_majority", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", - " an external referendum." - ] - }, - { - "name": "veto_external", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [ - " Veto and blacklist the external proposal hash." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - }, - { - "name": "what", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "set_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Specify a proxy. Called by the stash." - ] - }, - { - "name": "resign_proxy", - "args": [], - "documentation": [ - " Clear the proxy. Called by the proxy." - ] - }, - { - "name": "remove_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Clear the proxy. Called by the stash." - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "conviction", - "type": "Conviction" - } - ], - "documentation": [ - " Delegate vote." - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "ExternalTabled", - "args": [], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - }, - { - "name": "Vetoed", - "args": [ - "AccountId", - "Hash", - "BlockNumber" - ], - "documentation": [] - } - ] - }, - { - "name": "council", - "prefix": "Council", - "storage": [ - { - "name": "CandidacyBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x09000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy." - ] - }, - { - "name": "VotingBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "PresentSlashPerVoter", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation." - ] - }, - { - "name": "CarryCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x02000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next vote." - ] - }, - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "InactiveGracePeriod", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x01000000", - "documentation": [ - " How many vote indexes need to go by after a target voter's last vote before they can be reaped if their", - " approvals are moot." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should be sitting on the council." - ] - }, - { - "name": "ActiveCouncil", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current council. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the council member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of votes that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter, respecting the last cleared vote index that this voter was", - " last active at." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(VoteIndex,u32)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "LastActiveOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VoteIndex", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The last cleared vote index that this voter was last active at." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present voter list." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [] - }, - { - "name": "NextFinalize", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "SnapshotedStakes", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The stakes as they were at the point that the vote ended." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we;re in the presentation phase." - ] - } - ], - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered." - ] - }, - { - "name": "proxy_set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals from a proxy. Approval slots stay valid as long as candidates in those slots", - " are registered." - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " May be called by anyone. Returns the voter deposit to `signed`." - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned." - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond." - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()``", - " `signed` should have at least" - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not", - " already in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member from the council. This is effective immediately.", - "", - " Note: A tally should happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalize_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalize_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has started." - ] - }, - { - "name": "TallyFinalized", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has ended (with one or more new members)." - ] - } - ] - }, - { - "name": "council_motions", - "prefix": "CouncilMotions", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - } - ], - "calls": [ - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a councilor using the `Member` origin.", - "", - " Origin must be a council member." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single councillor did some action; `bool` is true if returned without error." - ] - } - ] - }, - { - "name": "finality_tracker", - "prefix": "", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null - }, - { - "name": "grandpa", - "prefix": "GrandpaFinality", - "storage": [ - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(SessionKey,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - } - ] - }, - { - "name": "treasury", - "prefix": "Treasury", - "storage": [ - { - "name": "ProposalBond", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " 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." - ] - }, - { - "name": "ProposalBondMinimum", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0100000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Total funds available to this module for spending." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ], - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "set_pot", - "args": [ - { - "name": "new_pot", - "type": "Compact" - } - ], - "documentation": [ - " Set the balance of funds available to spend." - ] - }, - { - "name": "configure", - "args": [ - { - "name": "proposal_bond", - "type": "Compact" - }, - { - "name": "proposal_bond_minimum", - "type": "Compact" - }, - { - "name": "spend_period", - "type": "Compact" - }, - { - "name": "burn", - "type": "Compact" - } - ], - "documentation": [ - " (Re-)configure this module." - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed." - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned." - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ] - }, - { - "name": "contract", - "prefix": "Contract", - "storage": [ - { - "name": "SignedClaimHandicap", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Number of block delay an extrinsic claim surcharge has.", - "", - " When claim surchage is called by an extrinsic the rent is checked", - " for current_block - delay" - ] - }, - { - "name": "TombstoneDeposit", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount required to generate a tombstone." - ] - }, - { - "name": "StorageSizeOffset", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Size of a contract at the time of creation. This is a simple way to ensure", - " that empty contracts eventually gets deleted." - ] - }, - { - "name": "RentByteFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Price of a byte of storage per one block interval. Should be greater than 0." - ] - }, - { - "name": "RentDepositOffset", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of funds a contract should deposit in order to offset", - " the cost of one byte.", - "", - " 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." - ] - }, - { - "name": "SurchargeReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Reward that is received by the party whose touch has led", - " to removal of a contract." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "ContractFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x15000000000000000000000000000000", - "documentation": [ - " The fee required to create a contract instance." - ] - }, - { - "name": "CallBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8700000000000000", - "documentation": [ - " The base fee charged for calling into a contract." - ] - }, - { - "name": "CreateBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0xaf00000000000000", - "documentation": [ - " The base fee charged for creating a contract." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - }, - { - "name": "MaxDepth", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x64000000", - "documentation": [ - " The maximum nesting level of a call/create stack." - ] - }, - { - "name": "BlockGasLimit", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8096980000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block." - ] - }, - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000400000000000100100000000020000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter." - ] - }, - { - "name": "ContractInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ContractInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - } - ], - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", - " You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Creates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", - "", - " Creation is executed as follows:", - "", - " - The destination address is computed based on the sender and hash of the code.", - " - The smart-contract account is created at the computed address.", - " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any call received by this account.", - " - The contract is initialized." - ] - }, - { - "name": "claim_surcharge", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "aux_sender", - "type": "Option" - } - ], - "documentation": [ - " 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.", - "", - " If contract is not evicted as a result of this call, no actions are taken and", - " the sender is not eligible for the reward." - ] - }, - { - "name": "restore_to", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "rent_allowance", - "type": "BalanceOf" - }, - { - "name": "delta", - "type": "Vec" - } - ], - "documentation": [ - " Allows a contract to restore a tombstone by giving its storage.", - "", - " The contract that wants to restore (i.e. origin of the call, or `msg.sender` in Solidity terms) will compute a", - " tombstone with its storage and the given code_hash. If the computed tombstone", - " match the destination one, the destination contract is restored with the rent_allowance` specified,", - " while the origin sends all its funds to the destination and is removed." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` to `to` with given `value` as part of a `call` or `create`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - }, - { - "name": "Contract", - "args": [ - "AccountId", - "Bytes" - ], - "documentation": [ - " An event from contract of account." - ] - } - ] - }, - { - "name": "sudo", - "prefix": "Sudo", - "storage": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " The `AccountId` of the sudo key." - ] - } - ], - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Authenticates the sudo key and dispatches a function call with `Root` origin.", - "", - " The dispatch origin for this call must be _Signed_." - ] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [ - " 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_." - ] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v4/static.ts b/packages/metadata/src/Metadata/v4/static.ts deleted file mode 100644 index d5419dc395..0000000000 --- a/packages/metadata/src/Metadata/v4/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746104401873797374656d1853797374656d0134304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e64657800200000000000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004390120546f74616c206c656e67746820696e20627974657320666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e3852616e646f6d4d6174657269616c0100482869382c205665633c543a3a486173683e2908000008a50120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e205468697320697320617272616e676564206173206151012072696e6720627566666572207769746820746865206069386020707265666978206265696e672074686520696e64657820696e746f20746865206056656360206f6620746865206f6c6465737420686173682e184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e18446967657374010024543a3a446967657374040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e28626c616b65325f3235360400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e0001084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1061757261000000002474696d657374616d702454696d657374616d7001100c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64000024543a3a4d6f6d656e740400044501204f6c642073746f72616765206974656d2070726f766964656420666f7220636f6d7061746962696c6974792e2052656d6f766520616674657220616c6c206e6574776f726b732075706772616465642e344d696e696d756d506572696f64010024543a3a4d6f6d656e7420030000000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e205820536574207468652063757272656e742074696d652e00750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008d01205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627920606d696e696d756d5f706572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0024636f6e73656e73757324436f6e73656e73757301044c4f726967696e616c417574686f7269746965730000485665633c543a3a53657373696f6e4b65793e040000011c487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e306e6f74655f6f66666c696e65041c6f66666c696e65f43c543a3a496e686572656e744f66666c696e655265706f727420617320496e686572656e744f66666c696e655265706f72743e3a3a496e686572656e74045101204e6f74652074686174207468652070726576696f757320626c6f636b27732076616c696461746f72206d697373656420697473206f70706f7274756e69747920746f2070726f706f7365206120626c6f636b2e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e2062616c616e6365732042616c616e636573012834546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e42617365466565010028543a3a42616c616e6365400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e42797465466565010028543a3a42616c616e63654000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c56657374696e6700010130543a3a4163636f756e7449646c56657374696e675363686564756c653c543a3a42616c616e63653e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e20d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510667265654c436f6d706163743c543a3a42616c616e63653e2072657365727665644c436f6d706163743c543a3a42616c616e63653e209420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00010120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c25012069742077696c6c20616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e63656029d820616e6420726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e1c53657373696f6e01202856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3453657373696f6e4c656e677468010038543a3a426c6f636b4e756d62657220e803000000000000047c2043757272656e74206c656e677468206f66207468652073657373696f6e2e3043757272656e74496e646578010038543a3a426c6f636b4e756d62657220000000000000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e3043757272656e745374617274010024543a3a4d6f6d656e7420000000000000000004a02054696d657374616d70207768656e2063757272656e742073657373696f6e20737461727465642e44466f7263696e674e657753657373696f6e000010626f6f6c04000c7901204e65772073657373696f6e206973206265696e6720666f72636564206966207468697320656e747279206578697374733b20696e20776869636820636173652c2074686520626f6f6c65616e2076616c75652069732074727565206966850120746865206e65772073657373696f6e2073686f756c6420626520636f6e736964657265642061206e6f726d616c20726f746174696f6e202872657761726461626c652920616e642066616c736520696620746865206e65772073657373696f6eb82073686f756c6420626520636f6e7369646572656420657863657074696f6e616c2028736c61736861626c65292e404c6173744c656e6774684368616e6765000038543a3a426c6f636b4e756d626572040004c020426c6f636b206174207768696368207468652073657373696f6e206c656e677468206c617374206368616e6765642e284e6578744b6579466f7200010130543a3a4163636f756e74496434543a3a53657373696f6e4b6579000400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e444e65787453657373696f6e4c656e677468000038543a3a426c6f636b4e756d6265720400046420546865206e6578742073657373696f6e206c656e6774682e010c1c7365745f6b6579040c6b657934543a3a53657373696f6e4b65790801012053657473207468652073657373696f6e206b6579206f6620612076616c696461746f72202866756e6374696f6e2063616c6c65722920746f20606b6579602ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e287365745f6c656e677468040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e046d01205365742061206e65772073657373696f6e206c656e6774682e20576f6e2774206b69636b20696e20756e74696c20746865206e6578742073657373696f6e206368616e6765202861742063757272656e74206c656e677468292e44666f7263655f6e65775f73657373696f6e04346170706c795f7265776172647310626f6f6c045820466f726365732061206e65772073657373696f6e2e0104284e657753657373696f6e042c426c6f636b4e756d626572085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e671c5374616b696e6701603856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3853657373696f6e73506572457261010038543a3a426c6f636b4e756d62657220e80300000000000004a420546865206c656e677468206f662061207374616b696e672065726120696e2073657373696f6e732e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e3c426f6e64696e674475726174696f6e010038543a3a426c6f636b4e756d626572200c0000000000000004b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e040008a50120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697a65ad0120616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964e45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01080c0004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727301010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c00000010b101204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e27742069746572617465207468726f7567682076616c696461746f727320686572652cb42062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010038543a3a426c6f636b4e756d626572200000000000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000869012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f66207468652065726120616e64cc20696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e484e65787453657373696f6e73506572457261000038543a3a426c6f636b4e756d6265720400049020546865206e6578742076616c7565206f662073657373696f6e7320706572206572612e4c4c6173744572614c656e6774684368616e6765010038543a3a426c6f636b4e756d62657220000000000000000004e0205468652073657373696f6e20696e6465782061742077686963682074686520657261206c656e677468206c617374206368616e6765642e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e7401010130543a3a4163636f756e7449640c75333200100000000004d10120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e746564206279206f6e652065616368206572612074686174207061737365732e34466f7263696e674e65774572610000082829040004682057652061726520666f7263696e672061206e6577206572612e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e040004f101204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202857686f206974207761732c207768656e20697420776173207265706f727465642c20686f77206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e013c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e1081012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c2062652074686568206163636f756e74207468617420636f6e74726f6c732069742e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e1875012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757020666f7224207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e385501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656400202d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e14e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e141101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c0014c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e247365745f7061796565041470617965654452657761726444657374696e6174696f6e14b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e507365745f73657373696f6e735f7065725f657261040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04982053657420746865206e756d626572206f662073657373696f6e7320696e20616e206572612e507365745f626f6e64696e675f6475726174696f6e040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726104346170706c795f7265776172647310626f6f6c083d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332084901204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20676976656e20616e206f66666c696e652d7761726e696e6720286974206973207374696c6c0d012077697468696e20697473206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f63726163792444656d6f6372616379013c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00007028543a3a50726f706f73616c2c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01401c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e44656d657267656e63795f70726f706f7365102070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c6434766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721888205363686564756c6520616e20656d657267656e6379207265666572656e64756d2e00610120546869732077696c6c206372656174652061206e6577207265666572656e64756d20666f7220746865206070726f706f73616c602c20617070726f766564206173206c6f6e6720617320636f756e74656420766f74657319012065786365656420607468726573686f6c646020616e642c20696620617070726f7665642c20656e61637465642061667465722074686520676976656e206064656c6179602e00fc204974206d61792062652063616c6c65642066726f6d206569746865722074686520526f6f74206f722074686520456d657267656e6379206f726967696e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479042070726f706f73616c40426f783c543a3a50726f706f73616c3e085901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449640498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e3072657369676e5f70726f787900049820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964049820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e043c2044656c656761746520766f74652e28756e64656c656761746500044420556e64656c656761746520766f74652e012c2050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e003845787465726e616c5461626c656400001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e74496400185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572001c636f756e63696c1c436f756e63696c01503443616e646964616379426f6e6401003042616c616e63654f663c543e400900000000000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e5050726573656e74536c617368506572566f74657201003042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c753332100200000004350120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e646578100100000008a10120486f77206d616e7920766f746520696e6465786573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e206265207265617065642069662074686569725020617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200500000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697371012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e64657810000000000405012054686520746f74616c206e756d626572206f6620766f746573207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f6601010130543a3a4163636f756e744964245665633c626f6f6c3e000400086d012041206c697374206f6620766f74657320666f72206561636820766f7465722c2072657370656374696e6720746865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f7465722077617340206c617374206163746976652061742e385265676973746572496e666f4f6600010130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e304c6173744163746976654f6600010130543a3a4163636f756e74496424566f7465496e64657800040004010120546865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f74657220776173206c617374206163746976652061742e18566f746572730100445665633c543a3a4163636f756e7449643e04000460205468652070726573656e7420766f746572206c6973742e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000000304e65787446696e616c697a650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e40536e617073686f7465645374616b65730100445665633c42616c616e63654f663c543e3e040004e820546865207374616b6573206173207468657920776572652061742074686520706f696e7420746861742074686520766f746520656e6465642e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e040004e02047657420746865206c6561646572626f6172642069662077653b726520696e207468652070726573656e746174696f6e2070686173652e0128347365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e086101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c70726f78795f7365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e089501205365742063616e64696461746520617070726f76616c732066726f6d20612070726f78792e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e1461012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e042d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e0c78205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e0c650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea501204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e282960607820607369676e6564602073686f756c642068617665206174206c65617374447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570490120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f745420616c726561647920696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651031012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d2074686520636f756e63696c2e20546869732069732065666665637469766520696d6d6564696174656c792e002101204e6f74653a20412074616c6c792073686f756c642068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c697a656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e3c636f756e63696c5f6d6f74696f6e7338436f756e63696c4d6f74696f6e7301102450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e010c1c65786563757465042070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e0c010120446973706174636820612070726f706f73616c2066726f6d206120636f756e63696c6f72207573696e672074686520604d656d62657260206f726967696e2e0084204f726967696e206d757374206265206120636f756e63696c206d656d6265722e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e0010766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c0001182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c043d0120412073696e676c6520636f756e63696c6c6f722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e001c6772616e6470613c4772616e64706146696e616c69747901083450656e64696e674368616e67650000c853746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265722c20543a3a53657373696f6e4b65793e040000284e657874466f72636564000038543a3a426c6f636b4e756d6265720400000104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e0104384e6577417574686f72697469657304585665633c2853657373696f6e4b65792c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e20747265617375727920547265617375727901203050726f706f73616c426f6e6401001c5065726d696c6c1000000000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d01003042616c616e63654f663c543e4000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f7401003042616c616e63654f663c543e400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01143470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c2d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e1c7365745f706f74041c6e65775f706f7454436f6d706163743c42616c616e63654f663c543e3e04b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e24636f6e666967757265103470726f706f73616c5f626f6e6440436f6d706163743c5065726d696c6c3e5470726f706f73616c5f626f6e645f6d696e696d756d54436f6d706163743c42616c616e63654f663c543e3e307370656e645f706572696f645c436f6d706163743c543a3a426c6f636b4e756d6265723e106275726e40436f6d706163743c5065726d696c6c3e0470202852652d29636f6e6669677572652074686973206d6f64756c652e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e04fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e085d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637420436f6e747261637401584c5369676e6564436c61696d48616e6469636170010038543a3a426c6f636b4e756d62657220000000000000000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000901205768656e20636c61696d2073757263686167652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f73697401003042616c616e63654f663c543e400000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f666673657401000c7533321000000000082d012053697a65206f66206120636f6e7472616374206174207468652074696d65206f66206372656174696f6e2e205468697320697320612073696d706c652077617920746f20656e73757265b8207468617420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e744279746546656501003042616c616e63654f663c543e4000000000000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f666673657401003042616c616e63654f663c543e40000000000000000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c53757263686172676552657761726401003042616c616e63654f663c543e400000000000000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e7366657246656501003042616c616e63654f663c543e40000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656501003042616c616e63654f663c543e4000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e4261736546656501003042616c616e63654f663c543e400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656501003042616c616e63654f663c543e4000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e747261637446656501003042616c616e63654f663c543e401500000000000000000000000000000004c0205468652066656520726571756972656420746f20637265617465206120636f6e747261637420696e7374616e63652e2c43616c6c42617365466565010018543a3a47617320870000000000000004c820546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e3443726561746542617365466565010018543a3a47617320af0000000000000004b820546865206261736520666565206368617267656420666f72206372656174696e67206120636f6e74726163742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e204d6178446570746801000c753332106400000004c820546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e34426c6f636b4761734c696d6974010018543a3a47617320809698000000000004f020546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204761735370656e74010018543a3a476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100405363686564756c653c543a3a4761733e750100000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000040000000000010010000000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e01183c7570646174655f7363686564756c6504207363686564756c65405363686564756c653c543a3a4761733e0cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d69743c436f6d706163743c543a3a4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e186372656174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28a90120437265617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e28726573746f72655f746f10106465737430543a3a4163636f756e74496424636f64655f686173682c436f6465486173683c543e3872656e745f616c6c6f77616e63653042616c616e63654f663c543e1464656c7461545665633c657865633a3a53746f726167654b65793e18010120416c6c6f7773206120636f6e747261637420746f20726573746f7265206120746f6d6273746f6e6520627920676976696e67206974732073746f726167652e00bd012054686520636f6e747261637420746861742077616e747320746f20726573746f72652028692e652e206f726967696e206f66207468652063616c6c2c206f7220606d73672e73656e6465726020696e20536f6c6964697479207465726d73292077696c6c20636f6d707574652061390120746f6d6273746f6e652077697468206974732073746f7261676520616e642074686520676976656e20636f64655f686173682e2049662074686520636f6d707574656420746f6d6273746f6e659101206d61746368207468652064657374696e6174696f6e206f6e652c207468652064657374696e6174696f6e20636f6e747261637420697320726573746f7265642077697468207468652072656e745f616c6c6f77616e636560207370656369666965642c2101207768696c6520746865206f726967696e2073656e647320616c6c206974732066756e647320746f207468652064657374696e6174696f6e20616e642069732072656d6f7665642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365045501205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e107375646f105375646f01040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e0c39012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c75012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e01081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v4/toV5.ts b/packages/metadata/src/Metadata/v4/toV5.ts deleted file mode 100644 index 9fc0f80f7d..0000000000 --- a/packages/metadata/src/Metadata/v4/toV5.ts +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV4, MetadataV5, ModuleMetadataV5, StorageFunctionMetadataV4, StorageFunctionMetadataV5, StorageHasherV5 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -import { Option } from '@polkadot/types/codec'; -import Text from '@polkadot/types/primitive/Text'; -import { assert } from '@polkadot/util'; - -const hasherMap: Map = new Map([ - ['blake2_128', 'Blake2_128'], - ['blake2_256', 'Blake2_256'], - ['twox_128', 'Twox128'], - ['twox_256', 'Twox256'], - ['twox_64_concat', 'Twox64Concat'] -]); - -/** @internal */ -function toStorageHasher (registry: Registry, text: Text): StorageHasherV5 { - const mapped = hasherMap.get(text.toString()); - - assert(mapped, `Invalid Storage hasher: ${text.toString()}`); - - return registry.createType('StorageHasherV5', mapped); -} - -/** @internal */ -function toV5StorageFunction (registry: Registry, storageFn: StorageFunctionMetadataV4): StorageFunctionMetadataV5 { - const { documentation, fallback, modifier, name, type } = storageFn; - const [newType, index] = type.isPlain - ? [type.asPlain, 0] - : type.isMap - ? [type.asMap, 1] - : [registry.createType('DoubleMapTypeV5', { - hasher: type.asDoubleMap.hasher, - key1: type.asDoubleMap.key1, - key2: type.asDoubleMap.key2, - key2Hasher: toStorageHasher(registry, type.asDoubleMap.key2Hasher), - value: type.asDoubleMap.value - }), 2]; - - return registry.createType('StorageFunctionMetadataV5', { - documentation, - fallback, - modifier, - name, - type: registry.createType('StorageFunctionTypeV5', newType, index) - }); -} - -/** @internal */ -export default function toV5 (registry: Registry, { modules }: MetadataV4): MetadataV5 { - return registry.createType('MetadataV5', { - modules: modules.map(({ calls, events, name, prefix, storage }): ModuleMetadataV5 => - registry.createType('ModuleMetadataV5', { - calls, - events, - name, - prefix, - storage: storage.isSome - ? new Option( - registry, - 'Vec', - storage.unwrap().map((v): StorageFunctionMetadataV5 => toV5StorageFunction(registry, v)) - ) - : undefined - }) - ) - }); -} diff --git a/packages/metadata/src/Metadata/v5/Metadata.spec.ts b/packages/metadata/src/Metadata/v5/Metadata.spec.ts deleted file mode 100644 index 4773f03193..0000000000 --- a/packages/metadata/src/Metadata/v5/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import substrateJson from './static-substrate.json'; -import substrateData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV5 (substrate)', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 5, substrateData, substrateJson); - - toLatest(registry, 5, substrateData, false); - - defaultValues(registry, substrateData, false); -}); diff --git a/packages/metadata/src/Metadata/v5/static-substrate.json b/packages/metadata/src/Metadata/v5/static-substrate.json deleted file mode 100644 index 9ee1893462..0000000000 --- a/packages/metadata/src/Metadata/v5/static-substrate.json +++ /dev/null @@ -1,3580 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V5": { - "modules": [ - { - "name": "system", - "prefix": "System", - "storage": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Extrinsics nonce for accounts." - ] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total extrinsics count for the current block." - ] - }, - { - "name": "AllExtrinsicsWeight", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total weight for all extrinsics put together, for the current block." - ] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Map of block numbers to block hashes." - ] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Extrinsics data for the current block (maps an extrinsic's index to its data)." - ] - }, - { - "name": "RandomMaterial", - "modifier": "Default", - "type": { - "Plain": "(i8,Vec)" - }, - "fallback": "0x0000", - "documentation": [ - " Series of block headers from the last 81 blocks that acts as random seed material. This is arranged as a", - " ring buffer with the `i8` prefix being the index into the `Vec` of the oldest hash." - ] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Hash of the previous block." - ] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Extrinsics root of the current block, also part of the block header." - ] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "DigestOf" - }, - "fallback": "0x00", - "documentation": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Events deposited for the current block." - ] - }, - { - "name": "EventCount", - "modifier": "Default", - "type": { - "Plain": "EventIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of events in the `Events` list." - ] - }, - { - "name": "EventTopics", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "()", - "key2": "Hash", - "value": "Vec<(BlockNumber,EventIndex)>", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " Mapping between a topic (represented by T::Hash) and a vector of indexes", - " of events in the `>` list.", - "", - " The first key serves no purpose. This field is declared as double_map just", - " for convenience of using `remove_prefix`.", - "", - " 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." - ] - } - ], - "calls": [ - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - }, - { - "name": "kill_storage", - "args": [ - { - "name": "keys", - "type": "Vec" - } - ], - "documentation": [ - " Kill some items from storage." - ] - } - ], - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ] - }, - { - "name": "aura", - "prefix": "", - "storage": null, - "calls": null, - "events": null - }, - { - "name": "timestamp", - "prefix": "Timestamp", - "storage": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "BlockPeriod", - "modifier": "Optional", - "type": { - "Plain": "Moment" - }, - "fallback": "0x00", - "documentation": [ - " Old storage item provided for compatibility. Remove after all networks upgraded." - ] - }, - { - "name": "MinimumPeriod", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0300000000000000", - "documentation": [ - " 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." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ], - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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 `minimum_period`.", - "", - " The dispatch origin for this call must be `Inherent`." - ] - } - ], - "events": null - }, - { - "name": "indices", - "prefix": "Indices", - "storage": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ], - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ] - }, - { - "name": "balances", - "prefix": "Balances", - "storage": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total units issued in the system." - ] - }, - { - "name": "ExistentialDeposit", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount required to keep an account open." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It", - " alone is used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to clean up data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable.", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ], - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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 types. 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` and `T::OnFreeBalanceZero::on_free_balance_zero`.", - "", - " # " - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "new_free", - "type": "Compact" - }, - { - "name": "new_reserved", - "type": "Compact" - } - ], - "documentation": [ - " 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 (`system::AccountNonce`).", - "", - " The dispatch origin for this call is `root`.", - "", - " # ", - " - Independent of the arguments.", - " - Contains a limited number of reads and writes.", - " # " - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ] - }, - { - "name": "session", - "prefix": "Session", - "storage": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "Changed", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if anything has changed in this session." - ] - }, - { - "name": "NextKeyFor", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Keys", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The next key for a given validator." - ] - }, - { - "name": "Active", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The keys that are currently active." - ] - } - ], - "calls": [ - { - "name": "set_keys", - "args": [ - { - "name": "keys", - "type": "Keys" - }, - { - "name": "proof", - "type": "Bytes" - } - ], - "documentation": [ - " Sets the session key(s) of the function caller to `key`.", - " 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.", - "", - " # ", - " - O(1).", - " - One extra DB entry.", - " # " - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "SessionIndex" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ] - }, - { - "name": "staking", - "prefix": "Staking", - "storage": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x0c00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate", - " through validators here, but you can find them in the Session module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "EraIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentEraReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The accumulated reward for the current era. Reset to zero at the beginning of the era", - " and increased for every successfully finished session." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "u32", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented", - " by one each era that passes." - ] - }, - { - "name": "RecentlyOffline", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber,u32)>" - }, - "fallback": "0x00", - "documentation": [ - " Most recent `RECENT_OFFLINE_COUNT` instances. (Who it was, when it was reported, how", - " many instances they were offline for)." - ] - }, - { - "name": "ForceNewEra", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the next session change will be a new era regardless of index." - ] - } - ], - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " Take the origin account as a stash and lock up `value` of its balance. `controller` will", - " be the account that controls it.", - "", - " The dispatch origin for this call must be _Signed_ by the stash account.", - "", - " # ", - " - 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.", - "", - " NOTE: At the moment, there are no financial restrictions to bond", - " (which creates a bunch of storage items for an account). In essence, nothing prevents many accounts from", - " spamming `Staking` storage by bonding 1 UNIT. See test case: `bond_with_no_staked_value`.", - " # " - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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::existential_deposit(), 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.", - "", - " 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.", - " " - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " 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.", - " # " - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains a limited number of reads.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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.", - "", - " # ", - " - The transaction's complexity is proportional to the size of `targets`,", - " which is capped at `MAX_NOMINATIONS`.", - " - Both the reads and writes follow a similar pattern.", - " # " - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains one read.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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.", - " # " - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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 stash, not the controller.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains a limited number of reads.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_new_era", - "args": [], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward.", - "", - " # ", - " - Independent of the arguments.", - " - Triggers the Phragmen election. Expensive but not user-controlled.", - " - Depends on state: `O(|edges| * |validators|)`.", - " # " - ] - }, - { - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and its nominators) has been given an offline-warning (it is still", - " within its grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and its nominators) has been slashed by the given amount." - ] - } - ] - }, - { - "name": "democracy", - "prefix": "Democracy", - "storage": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referenda started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only", - " if `voters_for` includes the voter when called with the referendum (you'll get the", - " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", - " also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(AccountId,Conviction)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - }, - { - "name": "LastTabledWasExternal", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the last referendum tabled was submitted externally. False if it was a public", - " proposal." - ] - }, - { - "name": "NextExternal", - "modifier": "Optional", - "type": { - "Plain": "(Proposal,VoteThreshold)" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Blacklist", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Cancellations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Record of all proposals that have been subject to emergency cancellation." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - Two DB changes, one DB entry.", - " # " - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "proxy_vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", - " the proposal; otherwise it is a vote to keep the status quo.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "emergency_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "voting_period", - "type": "BlockNumber" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Schedule an emergency referendum.", - "", - " This will create a new referendum for the `proposal`, approved as long as counted votes", - " exceed `threshold` and, if approved, enacted after the given `delay`.", - "", - " It may be called from either the Root or the Emergency origin." - ] - }, - { - "name": "emergency_cancel", - "args": [ - { - "name": "ref_index", - "type": "ReferendumIndex" - } - ], - "documentation": [ - " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", - " referendum." - ] - }, - { - "name": "external_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a referendum to be tabled once it is legal to schedule an external", - " referendum." - ] - }, - { - "name": "external_propose_majority", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", - " an external referendum." - ] - }, - { - "name": "veto_external", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [ - " Veto and blacklist the external proposal hash." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - }, - { - "name": "what", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "set_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Specify a proxy. Called by the stash.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "resign_proxy", - "args": [], - "documentation": [ - " Clear the proxy. Called by the proxy.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "remove_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Clear the proxy. Called by the stash.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "conviction", - "type": "Conviction" - } - ], - "documentation": [ - " Delegate vote.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote.", - "", - " # ", - " - O(1).", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "ExternalTabled", - "args": [], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - }, - { - "name": "Vetoed", - "args": [ - "AccountId", - "Hash", - "BlockNumber" - ], - "documentation": [] - } - ] - }, - { - "name": "council", - "prefix": "Council", - "storage": [ - { - "name": "CandidacyBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x09000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy." - ] - }, - { - "name": "VotingBond", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "VotingFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of fee paid upon each vote submission, unless if they submit a _hole_ index and replace it." - ] - }, - { - "name": "PresentSlashPerVoter", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation." - ] - }, - { - "name": "CarryCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x02000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next vote." - ] - }, - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "InactiveGracePeriod", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x01000000", - "documentation": [ - " How many vote indices need to go by after a target voter's last vote before they can be reaped if their", - " approvals are moot." - ] - }, - { - "name": "VotingPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0xe803000000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0500000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should be sitting on the council." - ] - }, - { - "name": "DecayRatio", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x18000000", - "documentation": [ - " Decay factor of weight when being accumulated. It should typically be set to", - " __at least__ `council_size -1` to keep the council secure.", - " When set to `N`, it indicates `(1/N)^t` of staked is decayed at weight increment step `t`.", - " 0 will result in no weight being added at all (normal approval voting)." - ] - }, - { - "name": "ActiveCouncil", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current council. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the council member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of vote rounds that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(AccountId,SetIndex)", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter. The votes are stored as numeric values and parsed in a bit-wise manner.", - "", - " In order to get a human-readable representation (`Vec`), use [`all_approvals_of`].", - "", - " Furthermore, each vector of scalars is chunked with the cap of `APPROVAL_SET_SIZE`." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(VoteIndex,u32)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "VoterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VoterInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Basic information about a voter." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "SetIndex", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The present voter list (chunked and capped at [`VOTER_SET_SIZE`])." - ] - }, - { - "name": "NextVoterSet", - "modifier": "Default", - "type": { - "Plain": "SetIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " the next free set to store a voter in. This will keep growing." - ] - }, - { - "name": "VoterCount", - "modifier": "Default", - "type": { - "Plain": "SetIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current number of Voters." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Current number of active candidates" - ] - }, - { - "name": "NextFinalize", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we're in the presentation phase. The first element is the weight of each entry;", - " It may be the direct summed approval stakes, or a weighted version of it." - ] - } - ], - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "hint", - "type": "SetIndex" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered.", - "", - " Locks the total balance of caller indefinitely.", - " Only [`retract_voter`] or [`reap_inactive_voter`] can unlock the balance.", - "", - " `hint` argument is interpreted differently based on:", - " - if `origin` is setting approvals for the first time: The index will be checked", - " for being a valid _hole_ in the voter list.", - " - if the hint is correctly pointing to a hole, no fee is deducted from `origin`.", - " - Otherwise, the call will succeed but the index is ignored and simply a push to the last chunk", - " with free space happens. If the new push causes a new chunk to be created, a fee indicated by", - " [`VotingFee`] is deducted.", - " - if `origin` is already a voter: the index __must__ be valid and point to the correct", - " position of the `origin` in the current voters list.", - "", - " Note that any trailing `false` votes in `votes` is ignored; In approval voting, not voting for a candidate", - " and voting false, are equal.", - "", - " # ", - " - O(1).", - " - Two extra DB entries, one DB change.", - " - Argument `votes` is limited in length to number of candidates.", - " # " - ] - }, - { - "name": "proxy_set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "hint", - "type": "SetIndex" - } - ], - "documentation": [ - " Set candidate approvals from a proxy. Approval slots stay valid as long as candidates in those slots", - " are registered.", - "", - " # ", - " - Same as `set_approvals` with one additional storage read.", - " # " - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " Both indices must be provided as explained in [`voter_at`] function.", - "", - " May be called by anyone. Returns the voter deposit to `signed`.", - "", - " # ", - " - O(1).", - " - Two fewer DB entries, one DB change.", - " # " - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned.", - "", - " The index must be provided as explained in [`voter_at`] function.", - "", - " Also removes the lock on the balance of the voter. See [`do_set_approvals()`].", - "", - " # ", - " - O(1).", - " - Two fewer DB entries, one DB change.", - " # " - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond.", - "", - " NOTE: if `origin` has already assigned approvals via [`set_approvals`],", - " it will NOT have any usable funds to pass candidacy bond and must first retract.", - " Note that setting approvals will lock the entire balance of the voter until", - " retraction or being reported.", - "", - " # ", - " - Independent of input.", - " - Three DB changes.", - " # " - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()`", - " `signed` should have at least", - "", - " # ", - " - O(voters) compute.", - " - One DB change.", - " # " - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not", - " already in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member from the council. This is effective immediately.", - "", - " Note: A tally should happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalize_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalize_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has started." - ] - }, - { - "name": "TallyFinalized", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of council seat(s)) has ended (with one or more new members)." - ] - } - ] - }, - { - "name": "council_motions", - "prefix": "CouncilMotions", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - } - ], - "calls": [ - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a councilor using the `Member` origin.", - "", - " Origin must be a council member." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single councillor did some action; `bool` is true if returned without error." - ] - } - ] - }, - { - "name": "finality_tracker", - "prefix": "", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null - }, - { - "name": "grandpa", - "prefix": "GrandpaFinality", - "storage": [ - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "Vec<(AuthorityId,AuthorityWeight)>" - }, - "fallback": "0x00", - "documentation": [ - " The current authority set." - ] - }, - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [ - " Pending change: (signaled at, scheduled change)." - ] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " next block number where we can force a change." - ] - }, - { - "name": "Stalled", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,BlockNumber)" - }, - "fallback": "0x00", - "documentation": [ - " `true` if we are currently stalled." - ] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(AuthorityId,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - } - ] - }, - { - "name": "treasury", - "prefix": "Treasury", - "storage": [ - { - "name": "ProposalBond", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " 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." - ] - }, - { - "name": "ProposalBondMinimum", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0100000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "modifier": "Default", - "type": { - "Plain": "Permill" - }, - "fallback": "0x00000000", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - }, - { - "name": "Pot", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Total funds available to this module for spending." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ], - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change, one extra DB entry.", - " # " - ] - }, - { - "name": "set_pot", - "args": [ - { - "name": "new_pot", - "type": "Compact" - } - ], - "documentation": [ - " Set the balance of funds available to spend." - ] - }, - { - "name": "configure", - "args": [ - { - "name": "proposal_bond", - "type": "Compact" - }, - { - "name": "proposal_bond_minimum", - "type": "Compact" - }, - { - "name": "spend_period", - "type": "Compact" - }, - { - "name": "burn", - "type": "Compact" - } - ], - "documentation": [ - " (Re-)configure this module." - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB clear.", - " # " - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ] - }, - { - "name": "contract", - "prefix": "Contract", - "storage": [ - { - "name": "SignedClaimHandicap", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Number of block delay an extrinsic claim surcharge has.", - "", - " When claim surchage is called by an extrinsic the rent is checked", - " for current_block - delay" - ] - }, - { - "name": "TombstoneDeposit", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The minimum amount required to generate a tombstone." - ] - }, - { - "name": "StorageSizeOffset", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Size of a contract at the time of creation. This is a simple way to ensure", - " that empty contracts eventually gets deleted." - ] - }, - { - "name": "RentByteFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Price of a byte of storage per one block interval. Should be greater than 0." - ] - }, - { - "name": "RentDepositOffset", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of funds a contract should deposit in order to offset", - " the cost of one byte.", - "", - " 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." - ] - }, - { - "name": "SurchargeReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Reward that is received by the party whose touch has led", - " to removal of a contract." - ] - }, - { - "name": "TransferFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "ContractFee", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x15000000000000000000000000000000", - "documentation": [ - " The fee required to create a contract instance." - ] - }, - { - "name": "CallBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8700000000000000", - "documentation": [ - " The base fee charged for calling into a contract." - ] - }, - { - "name": "CreateBaseFee", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0xaf00000000000000", - "documentation": [ - " The base fee charged for creating a contract." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - }, - { - "name": "MaxDepth", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x64000000", - "documentation": [ - " The maximum nesting level of a call/create stack." - ] - }, - { - "name": "BlockGasLimit", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x8096980000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block." - ] - }, - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000400000000000100100000000020000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter." - ] - }, - { - "name": "ContractInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ContractInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - } - ], - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", - " You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Creates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", - "", - " Creation is executed as follows:", - "", - " - The destination address is computed based on the sender and hash of the code.", - " - The smart-contract account is created at the computed address.", - " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any call received by this account.", - " - The contract is initialized." - ] - }, - { - "name": "claim_surcharge", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "aux_sender", - "type": "Option" - } - ], - "documentation": [ - " 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.", - "", - " If contract is not evicted as a result of this call, no actions are taken and", - " the sender is not eligible for the reward." - ] - }, - { - "name": "restore_to", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "rent_allowance", - "type": "BalanceOf" - }, - { - "name": "delta", - "type": "Vec" - } - ], - "documentation": [ - " Allows a contract to restore a tombstone by giving its storage.", - "", - " The contract that wants to restore (i.e. origin of the call, or `msg.sender` in Solidity terms) will compute a", - " tombstone with its storage and the given code_hash. If the computed tombstone", - " match the destination one, the destination contract is restored with the rent_allowance` specified,", - " while the origin sends all its funds to the destination and is removed." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` to `to` with given `value` as part of a `call` or `create`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - }, - { - "name": "Contract", - "args": [ - "AccountId", - "Bytes" - ], - "documentation": [ - " An event from contract of account." - ] - } - ] - }, - { - "name": "sudo", - "prefix": "Sudo", - "storage": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " The `AccountId` of the sudo key." - ] - } - ], - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " 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.", - " - No DB writes.", - " # " - ] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - " # " - ] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v5/static.ts b/packages/metadata/src/Metadata/v5/static.ts deleted file mode 100644 index 1ddf500e6c..0000000000 --- a/packages/metadata/src/Metadata/v5/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d657461053c1873797374656d1853797374656d0134304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e64657800200000000000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e7369637357656967687400000c753332040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e3852616e646f6d4d6174657269616c0100482869382c205665633c543a3a486173683e2908000008a50120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e205468697320697320617272616e676564206173206151012072696e6720627566666572207769746820746865206069386020707265666978206265696e672074686520696e64657820696e746f20746865206056656360206f6620746865206f6c6465737420686173682e184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e01141872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e01084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1061757261000000002474696d657374616d702454696d657374616d7001100c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64000024543a3a4d6f6d656e740400044501204f6c642073746f72616765206974656d2070726f766964656420666f7220636f6d7061746962696c6974792e2052656d6f766520616674657220616c6c206e6574776f726b732075706772616465642e344d696e696d756d506572696f64010024543a3a4d6f6d656e7420030000000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e205820536574207468652063757272656e742074696d652e00750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008d01205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627920606d696e696d756d5f706572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e2062616c616e6365732042616c616e636573012834546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e42617365466565010028543a3a42616c616e6365400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e42797465466565010028543a3a42616c616e63654000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c56657374696e6700010130543a3a4163636f756e7449646c56657374696e675363686564756c653c543a3a42616c616e63653e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e5cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742ce82069742077696c6c20726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e1c53657373696f6e01142856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e1c4368616e676564010010626f6f6c040004b8205472756520696620616e797468696e6720686173206368616e67656420696e20746869732073657373696f6e2e284e6578744b6579466f7200010130543a3a4163636f756e7449641c543a3a4b657973000400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e184163746976650101010c753332385665633c4f70617175654b65793e000400049020546865206b6579732074686174206172652063757272656e746c79206163746976652e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e20202d204f2831292e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e671c5374616b696e6701503856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01080c0004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727301010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000859012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f662074686520657261dc20616e6420696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e7401010130543a3a4163636f756e7449640c753332001000000000085d0120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e74656474206279206f6e652065616368206572612074686174207061737365732e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e0400085501204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202857686f206974207761732c207768656e20697420776173207265706f727465642c20686f779c206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e2c466f7263654e6577457261010010626f6f6c0400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e013410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e4465012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c882062652074686520206163636f756e74207468617420636f6e74726f6c732069742e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e000501204e4f54453a20417420746865206d6f6d656e742c20746865726520617265206e6f2066696e616e6369616c207265737472696374696f6e7320746f20626f6e64a50120287768696368206372656174657320612062756e6368206f662073746f72616765206974656d7320666f7220616e206163636f756e74292e20496e20657373656e63652c206e6f7468696e672070726576656e7473206d616e79206163636f756e74732066726f6d6901207370616d6d696e6720605374616b696e67602073746f7261676520627920626f6e64696e67203120554e49542e20536565207465737420636173653a2060626f6e645f776974685f6e6f5f7374616b65645f76616c7565602e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3065012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703820666f7220207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e8101202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e20497420696d706c696573490120202060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c20776869636820697320696e6469726563746c79cc202020757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e2ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726100203d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732e1501202d205472696767657273207468652050687261676d656e20656c656374696f6e2e20457870656e7369766520627574206e6f7420757365722d636f6e74726f6c6c65642ec4202d20446570656e6473206f6e2073746174653a20604f287c65646765737c202a207c76616c696461746f72737c29602e302023203c2f7765696768743e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332084901204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20676976656e20616e206f66666c696e652d7761726e696e6720286974206973207374696c6c0d012077697468696e20697473206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f63726163792444656d6f6372616379013c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00007028543a3a50726f706f73616c2c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01401c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e44656d657267656e63795f70726f706f7365102070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c6434766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721888205363686564756c6520616e20656d657267656e6379207265666572656e64756d2e00610120546869732077696c6c206372656174652061206e6577207265666572656e64756d20666f7220746865206070726f706f73616c602c20617070726f766564206173206c6f6e6720617320636f756e74656420766f74657319012065786365656420607468726573686f6c646020616e642c20696620617070726f7665642c20656e61637465642061667465722074686520676976656e206064656c6179602e00fc204974206d61792062652063616c6c65642066726f6d206569746865722074686520526f6f74206f722074686520456d657267656e6379206f726967696e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479042070726f706f73616c40426f783c543a3a50726f706f73616c3e085901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e012c2050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e003845787465726e616c5461626c656400001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e74496400185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572001c636f756e63696c1c436f756e63696c015c3443616e646964616379426f6e6401003042616c616e63654f663c543e400900000000000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e24566f74696e6746656501003042616c616e63654f663c543e4000000000000000000000000000000000049d012054686520616d6f756e74206f662066656520706169642075706f6e206561636820766f7465207375626d697373696f6e2c20756e6c6573732069662074686579207375626d69742061205f686f6c655f20696e64657820616e64207265706c6163652069742e5050726573656e74536c617368506572566f74657201003042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c753332100200000004350120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e646578100100000008a10120486f77206d616e7920766f746520696e6469636573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e206265207265617065642069662074686569725020617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200500000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e284465636179526174696f01000c753332101800000010350120446563617920666163746f72206f6620776569676874207768656e206265696e6720616363756d756c617465642e2049742073686f756c64207479706963616c6c792062652073657420746fec205f5f6174206c656173745f5f2060636f756e63696c5f73697a65202d316020746f206b6565702074686520636f756e63696c207365637572652e6d01205768656e2073657420746f20604e602c20697420696e64696361746573206028312f4e295e7460206f66207374616b656420697320646563617965642061742077656967687420696e6372656d656e742073746570206074602e210120302077696c6c20726573756c7420696e206e6f20776569676874206265696e6720616464656420617420616c6c20286e6f726d616c20617070726f76616c20766f74696e67292e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697371012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e6465781000000000041d012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f660101016028543a3a4163636f756e7449642c20536574496e64657829445665633c417070726f76616c466c61673e00040014a1012041206c697374206f6620766f74657320666f72206561636820766f7465722e2054686520766f746573206172652073746f726564206173206e756d657269632076616c75657320616e642070617273656420696e2061206269742d77697365206d616e6e65722e00650120496e206f7264657220746f2067657420612068756d616e2d7265616461626c6520726570726573656e746174696f6e2028605665633c626f6f6c3e60292c20757365205b60616c6c5f617070726f76616c735f6f66605d2e00510120467572746865726d6f72652c206561636820766563746f72206f66207363616c617273206973206368756e6b656420776974682074686520636170206f662060415050524f56414c5f5345545f53495a45602e385265676973746572496e666f4f6600010130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e2c566f746572496e666f4f6600010130543a3a4163636f756e7449645c566f746572496e666f3c42616c616e63654f663c543e3e000400048420426173696320696e666f726d6174696f6e2061626f7574206120766f7465722e18566f7465727301010120536574496e646578645665633c4f7074696f6e3c543a3a4163636f756e7449643e3e000400040d01205468652070726573656e7420766f746572206c69737420286368756e6b656420616e6420636170706564206174205b60564f5445525f5345545f53495a45605d292e304e657874566f746572536574010020536574496e646578100000000004fc20746865206e65787420667265652073657420746f2073746f7265206120766f74657220696e2e20546869732077696c6c206b6565702067726f77696e672e28566f746572436f756e74010020536574496e646578100000000004682043757272656e74206e756d626572206f6620566f746572732e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000004902043757272656e74206e756d626572206f66206163746976652063616e64696461746573304e65787446696e616c697a650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e0400089d012047657420746865206c6561646572626f61726420696620776527726520696e207468652070726573656e746174696f6e2070686173652e2054686520666972737420656c656d656e742069732074686520776569676874206f66206561636820656e7472793b2901204974206d617920626520746865206469726563742073756d6d656420617070726f76616c207374616b65732c206f7220612077656967687465642076657273696f6e206f662069742e0128347365745f617070726f76616c730c14766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e1068696e7420536574496e646578606101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e00c0204c6f636b732074686520746f74616c2062616c616e6365206f662063616c6c657220696e646566696e6974656c792e2901204f6e6c79205b60726574726163745f766f746572605d206f72205b60726561705f696e6163746976655f766f746572605d2063616e20756e6c6f636b207468652062616c616e63652e00d4206068696e746020617267756d656e7420697320696e74657270726574656420646966666572656e746c79206261736564206f6e3a4501202d20696620606f726967696e602069732073657474696e6720617070726f76616c7320666f72207468652066697273742074696d653a2054686520696e6465782077696c6c20626520636865636b6564b020666f72206265696e6720612076616c6964205f686f6c655f20696e2074686520766f746572206c6973742e4d012020202d206966207468652068696e7420697320636f72726563746c7920706f696e74696e6720746f206120686f6c652c206e6f206665652069732064656475637465642066726f6d20606f726967696e602e89012020202d204f74686572776973652c207468652063616c6c2077696c6c2073756363656564206275742074686520696e6465782069732069676e6f72656420616e642073696d706c792061207075736820746f20746865206c617374206368756e6b81012020207769746820667265652073706163652068617070656e732e20496620746865206e65772070757368206361757365732061206e6577206368756e6b20746f20626520637265617465642c20612066656520696e64696361746564206279742020205b60566f74696e67466565605d2069732064656475637465642e5d01202d20696620606f726967696e6020697320616c7265616479206120766f7465723a2074686520696e646578205f5f6d7573745f5f2062652076616c696420616e6420706f696e7420746f2074686520636f7272656374d420706f736974696f6e206f662074686520606f726967696e6020696e207468652063757272656e7420766f74657273206c6973742e00ad01204e6f7465207468617420616e7920747261696c696e67206066616c73656020766f74657320696e2060766f746573602069732069676e6f7265643b20496e20617070726f76616c20766f74696e672c206e6f7420766f74696e6720666f7220612063616e6469646174657420616e6420766f74696e672066616c73652c2061726520657175616c2e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20657874726120444220656e74726965732c206f6e65204442206368616e67652e0501202d20417267756d656e742060766f74657360206973206c696d6974656420696e206c656e67746820746f206e756d626572206f662063616e646964617465732e302023203c2f7765696768743e4c70726f78795f7365745f617070726f76616c730c14766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e1068696e7420536574496e646578189501205365742063616e64696461746520617070726f76616c732066726f6d20612070726f78792e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e002c2023203c7765696768743ef0202d2053616d6520617320607365745f617070726f76616c73602077697468206f6e65206164646974696f6e616c2073746f7261676520726561642e302023203c2f7765696768743e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e3061012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e00150120426f746820696e6469636573206d7573742062652070726f7669646564206173206578706c61696e656420696e205b60766f7465725f6174605d2066756e6374696f6e2e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20666577657220444220656e74726965732c206f6e65204442206368616e67652e302023203c2f7765696768743e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e282d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e0009012054686520696e646578206d7573742062652070726f7669646564206173206578706c61696e656420696e205b60766f7465725f6174605d2066756e6374696f6e2e003d0120416c736f2072656d6f76657320746865206c6f636b206f6e207468652062616c616e6365206f662074686520766f7465722e20536565205b60646f5f7365745f617070726f76616c732829605d2e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20666577657220444220656e74726965732c206f6e65204442206368616e67652e302023203c2f7765696768743e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e3478205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e002101204e4f54453a20696620606f726967696e602068617320616c72656164792061737369676e656420617070726f76616c7320766961205b607365745f617070726f76616c73605d2c45012069742077696c6c204e4f54206861766520616e7920757361626c652066756e647320746f20706173732063616e64696461637920626f6e6420616e64206d75737420666972737420726574726163742e3101204e6f746520746861742073657474696e6720617070726f76616c732077696c6c206c6f636b2074686520656e746972652062616c616e6365206f662074686520766f74657220756e74696c782072657472616374696f6e206f72206265696e67207265706f727465642e002c2023203c7765696768743e60202d20496e646570656e64656e74206f6620696e7075742e50202d205468726565204442206368616e6765732e302023203c2f7765696768743e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e20650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea101204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e2829607820607369676e6564602073686f756c642068617665206174206c65617374002c2023203c7765696768743e54202d204f28766f746572732920636f6d707574652e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570490120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f745420616c726561647920696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651031012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d2074686520636f756e63696c2e20546869732069732065666665637469766520696d6d6564696174656c792e002101204e6f74653a20412074616c6c792073686f756c642068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c697a656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e3c636f756e63696c5f6d6f74696f6e7338436f756e63696c4d6f74696f6e7301102450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e010c1c65786563757465042070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e0c010120446973706174636820612070726f706f73616c2066726f6d206120636f756e63696c6f72207573696e672074686520604d656d62657260206f726967696e2e0084204f726967696e206d757374206265206120636f756e63696c206d656d6265722e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c043d0120412073696e676c6520636f756e63696c6c6f722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e001c6772616e6470613c4772616e64706146696e616c69747901102c417574686f72697469657301008c5665633c28417574686f7269747949642c20417574686f72697479576569676874293e0400046c205468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e0104384e6577417574686f726974696573045c5665633c28417574686f7269747949642c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e20747265617375727920547265617375727901203050726f706f73616c426f6e6401001c5065726d696c6c1000000000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d01003042616c616e63654f663c543e4000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f7401003042616c616e63654f663c543e400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01143470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e1c7365745f706f74041c6e65775f706f7454436f6d706163743c42616c616e63654f663c543e3e04b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e24636f6e666967757265103470726f706f73616c5f626f6e6440436f6d706163743c5065726d696c6c3e5470726f706f73616c5f626f6e645f6d696e696d756d54436f6d706163743c42616c616e63654f663c543e3e307370656e645f706572696f645c436f6d706163743c543a3a426c6f636b4e756d6265723e106275726e40436f6d706163743c5065726d696c6c3e0470202852652d29636f6e6669677572652074686973206d6f64756c652e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637420436f6e747261637401584c5369676e6564436c61696d48616e6469636170010038543a3a426c6f636b4e756d62657220000000000000000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000901205768656e20636c61696d2073757263686167652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f73697401003042616c616e63654f663c543e400000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f666673657401000c7533321000000000082d012053697a65206f66206120636f6e7472616374206174207468652074696d65206f66206372656174696f6e2e205468697320697320612073696d706c652077617920746f20656e73757265b8207468617420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e744279746546656501003042616c616e63654f663c543e4000000000000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f666673657401003042616c616e63654f663c543e40000000000000000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c53757263686172676552657761726401003042616c616e63654f663c543e400000000000000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e7366657246656501003042616c616e63654f663c543e40000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656501003042616c616e63654f663c543e4000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e4261736546656501003042616c616e63654f663c543e400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656501003042616c616e63654f663c543e4000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e747261637446656501003042616c616e63654f663c543e401500000000000000000000000000000004c0205468652066656520726571756972656420746f20637265617465206120636f6e747261637420696e7374616e63652e2c43616c6c42617365466565010018543a3a47617320870000000000000004c820546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e3443726561746542617365466565010018543a3a47617320af0000000000000004b820546865206261736520666565206368617267656420666f72206372656174696e67206120636f6e74726163742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e204d6178446570746801000c753332106400000004c820546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e34426c6f636b4761734c696d6974010018543a3a47617320809698000000000004f020546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204761735370656e74010018543a3a476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100405363686564756c653c543a3a4761733e750100000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000040000000000010010000000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e01183c7570646174655f7363686564756c6504207363686564756c65405363686564756c653c543a3a4761733e0cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d69743c436f6d706163743c543a3a4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e186372656174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28a90120437265617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e28726573746f72655f746f10106465737430543a3a4163636f756e74496424636f64655f686173682c436f6465486173683c543e3872656e745f616c6c6f77616e63653042616c616e63654f663c543e1464656c7461545665633c657865633a3a53746f726167654b65793e18010120416c6c6f7773206120636f6e747261637420746f20726573746f7265206120746f6d6273746f6e6520627920676976696e67206974732073746f726167652e00bd012054686520636f6e747261637420746861742077616e747320746f20726573746f72652028692e652e206f726967696e206f66207468652063616c6c2c206f7220606d73672e73656e6465726020696e20536f6c6964697479207465726d73292077696c6c20636f6d707574652061390120746f6d6273746f6e652077697468206974732073746f7261676520616e642074686520676976656e20636f64655f686173682e2049662074686520636f6d707574656420746f6d6273746f6e659101206d61746368207468652064657374696e6174696f6e206f6e652c207468652064657374696e6174696f6e20636f6e747261637420697320726573746f7265642077697468207468652072656e745f616c6c6f77616e636560207370656369666965642c2101207768696c6520746865206f726967696e2073656e647320616c6c206974732066756e647320746f207468652064657374696e6174696f6e20616e642069732072656d6f7665642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365045501205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e107375646f105375646f01040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2439012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204e6f204442207772697465732e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v5/toV6.ts b/packages/metadata/src/Metadata/v5/toV6.ts deleted file mode 100644 index b90dee3108..0000000000 --- a/packages/metadata/src/Metadata/v5/toV6.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV5, MetadataV6, ModuleMetadataV6 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -/** @internal */ -export default function toV6 (registry: Registry, { modules }: MetadataV5): MetadataV6 { - return registry.createType('MetadataV6', { - modules: modules.map(({ calls, events, name, prefix, storage }): ModuleMetadataV6 => - registry.createType('ModuleMetadataV6', { - calls, - constants: [], - events, - name, - prefix, - storage - }) - ) - }); -} diff --git a/packages/metadata/src/Metadata/v6/Metadata.spec.ts b/packages/metadata/src/Metadata/v6/Metadata.spec.ts deleted file mode 100644 index 462947c659..0000000000 --- a/packages/metadata/src/Metadata/v6/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import substrateJson from './static-substrate.json'; -import substrateData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV6 (substrate)', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 6, substrateData, substrateJson); - - toLatest(registry, 6, substrateData); - - defaultValues(registry, substrateData); -}); diff --git a/packages/metadata/src/Metadata/v6/static-substrate.json b/packages/metadata/src/Metadata/v6/static-substrate.json deleted file mode 100644 index 23454fba1b..0000000000 --- a/packages/metadata/src/Metadata/v6/static-substrate.json +++ /dev/null @@ -1,4104 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V6": { - "modules": [ - { - "name": "system", - "prefix": "System", - "storage": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Extrinsics nonce for accounts." - ] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total extrinsics count for the current block." - ] - }, - { - "name": "AllExtrinsicsWeight", - "modifier": "Optional", - "type": { - "Plain": "Weight" - }, - "fallback": "0x00", - "documentation": [ - " Total weight for all extrinsics put together, for the current block." - ] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total length (in bytes) for all extrinsics put together, for the current block." - ] - }, - { - "name": "NextWeightMultiplier", - "modifier": "Default", - "type": { - "Plain": "WeightMultiplier" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The next weight multiplier. This should be updated at the end of each block based on the", - " saturation level (weight)." - ] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Map of block numbers to block hashes." - ] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Extrinsics data for the current block (maps an extrinsic's index to its data)." - ] - }, - { - "name": "RandomMaterial", - "modifier": "Default", - "type": { - "Plain": "(i8,Vec)" - }, - "fallback": "0x0000", - "documentation": [ - " Series of block headers from the last 81 blocks that acts as random seed material. This is arranged as a", - " ring buffer with the `i8` prefix being the index into the `Vec` of the oldest hash." - ] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Hash of the previous block." - ] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Extrinsics root of the current block, also part of the block header." - ] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "DigestOf" - }, - "fallback": "0x00", - "documentation": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Events deposited for the current block." - ] - }, - { - "name": "EventCount", - "modifier": "Default", - "type": { - "Plain": "EventIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of events in the `Events` list." - ] - }, - { - "name": "EventTopics", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "()", - "key2": "Hash", - "value": "Vec<(BlockNumber,EventIndex)>", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " Mapping between a topic (represented by T::Hash) and a vector of indexes", - " of events in the `>` list.", - "", - " The first key serves no purpose. This field is declared as double_map just", - " for convenience of using `remove_prefix`.", - "", - " 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." - ] - } - ], - "calls": [ - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - }, - { - "name": "kill_storage", - "args": [ - { - "name": "keys", - "type": "Vec" - } - ], - "documentation": [ - " Kill some items from storage." - ] - } - ], - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [], - "documentation": [ - " An extrinsic failed." - ] - } - ], - "constants": [] - }, - { - "name": "aura", - "prefix": "Aura", - "storage": [ - { - "name": "LastTimestamp", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The last timestamp." - ] - }, - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current authorities" - ] - } - ], - "calls": [], - "events": null, - "constants": [] - }, - { - "name": "timestamp", - "prefix": "Timestamp", - "storage": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ], - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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`." - ] - } - ], - "events": null, - "constants": [ - { - "name": "MinimumPeriod", - "type": "Moment", - "value": "0x0300000000000000", - "documentation": [ - " 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." - ] - } - ] - }, - { - "name": "authorship", - "prefix": "Authorship", - "storage": [ - { - "name": "Uncles", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Uncles" - ] - }, - { - "name": "Author", - "modifier": "Optional", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x00", - "documentation": [ - " Author of current block." - ] - }, - { - "name": "DidSetUncles", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Whether uncles were already set in this block." - ] - } - ], - "calls": [ - { - "name": "set_uncles", - "args": [ - { - "name": "new_uncles", - "type": "Vec
" - } - ], - "documentation": [ - " Provide a set of uncles." - ] - } - ], - "events": null, - "constants": [] - }, - { - "name": "indices", - "prefix": "Indices", - "storage": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ], - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ], - "constants": [] - }, - { - "name": "balances", - "prefix": "Balances", - "storage": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total units issued in the system." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It", - " alone is used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to clean up data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable.", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ], - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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 types. 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` and `T::OnFreeBalanceZero::on_free_balance_zero`.", - "", - " # " - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "new_free", - "type": "Compact" - }, - { - "name": "new_reserved", - "type": "Compact" - } - ], - "documentation": [ - " 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 (`system::AccountNonce`).", - "", - " The dispatch origin for this call is `root`.", - "", - " # ", - " - Independent of the arguments.", - " - Contains a limited number of reads and writes.", - " # " - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ], - "constants": [ - { - "name": "ExistentialDeposit", - "type": "Balance", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " The minimum amount required to keep an account open." - ] - }, - { - "name": "TransferFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "type": "Balance", - "value": "0x00e40b54020000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - } - ] - }, - { - "name": "staking", - "prefix": "Staking", - "storage": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "SessionReward", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x3c000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "OfflineSlash", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x40420f00", - "documentation": [ - " Slash, per validator that is taken for the first time they are found to be offline." - ] - }, - { - "name": "OfflineSlashGrace", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of instances of offline reports before slashing begins for validators." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x0c00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate", - " through validators here, but you can find them in the Session module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "EraIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentSessionReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Maximum reward, per validator, that is provided per acceptable session." - ] - }, - { - "name": "CurrentEraReward", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The accumulated reward for the current era. Reset to zero at the beginning of the era", - " and increased for every successfully finished session." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "SlashCount", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "u32", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " The number of times a given validator has been reported offline. This gets decremented", - " by one each era that passes." - ] - }, - { - "name": "RecentlyOffline", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber,u32)>" - }, - "fallback": "0x00", - "documentation": [ - " Most recent `RECENT_OFFLINE_COUNT` instances. (Who it was, when it was reported, how", - " many instances they were offline for)." - ] - }, - { - "name": "ForceNewEra", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the next session change will be a new era regardless of index." - ] - }, - { - "name": "BondedEras", - "modifier": "Default", - "type": { - "Plain": "Vec<(EraIndex,SessionIndex)>" - }, - "fallback": "0x00", - "documentation": [ - " A mapping from still-bonded eras to the first session index of that era." - ] - } - ], - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " 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 `existential_deposit` defined in the Balances module.", - "", - " The dispatch origin for this call must be _Signed_ by the stash account.", - "", - " # ", - " - 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.", - " # " - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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::existential_deposit(), 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.", - "", - " 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.", - " " - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " 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.", - " # " - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains a limited number of reads.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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.", - "", - " # ", - " - The transaction's complexity is proportional to the size of `targets`,", - " which is capped at `MAX_NOMINATIONS`.", - " - Both the reads and writes follow a similar pattern.", - " # " - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains one read.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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.", - " # " - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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 stash, not the controller.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains a limited number of reads.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_new_era", - "args": [], - "documentation": [ - " Force there to be a new era. This also forces a new session immediately after.", - " `apply_rewards` should be true for validators to get the session reward.", - "", - " # ", - " - Independent of the arguments.", - " - Triggers the Phragmen election. Expensive but not user-controlled.", - " - Depends on state: `O(|edges| * |validators|)`.", - " # " - ] - }, - { - "name": "set_offline_slash_grace", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " Set the offline slash grace period." - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "OfflineWarning", - "args": [ - "AccountId", - "u32" - ], - "documentation": [ - " One validator (and its nominators) has been given an offline-warning (it is still", - " within its grace). The accrued number of slashes is recorded, too." - ] - }, - { - "name": "OfflineSlash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and its nominators) has been slashed by the given amount." - ] - } - ], - "constants": [ - { - "name": "SessionsPerEra", - "type": "SessionIndex", - "value": "0x06000000", - "documentation": [ - " Number of sessions per era." - ] - }, - { - "name": "BondingDuration", - "type": "EraIndex", - "value": "0xa0020000", - "documentation": [ - " Number of eras that staked funds must remain bonded for." - ] - } - ] - }, - { - "name": "session", - "prefix": "Session", - "storage": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "Changed", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if anything has changed in this session." - ] - }, - { - "name": "QueuedChanged", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Queued keys changed." - ] - }, - { - "name": "QueuedKeys", - "modifier": "Default", - "type": { - "Plain": "Vec<(ValidatorId,Keys)>" - }, - "fallback": "0x00", - "documentation": [ - " The queued keys for the next session. When the next session begins, these keys", - " will be used to determine the validator's session keys." - ] - }, - { - "name": "NextKeys", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Twox64Concat", - "key1": "Bytes", - "key2": "ValidatorId", - "value": "Keys", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " The next session keys for a validator.", - "", - " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", - " the trie. Having all data in the same branch should prevent slowing down other queries." - ] - }, - { - "name": "KeyOwner", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Twox64Concat", - "key1": "Bytes", - "key2": "(KeyTypeId,Bytes)", - "value": "ValidatorId", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " The owner of a key. The second key is the `KeyTypeId` + the encoded key.", - "", - " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", - " the trie. Having all data in the same branch should prevent slowing down other queries." - ] - } - ], - "calls": [ - { - "name": "set_keys", - "args": [ - { - "name": "keys", - "type": "Keys" - }, - { - "name": "proof", - "type": "Bytes" - } - ], - "documentation": [ - " Sets the session key(s) of the function caller to `key`.", - " 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.", - "", - " # ", - " - O(log n) in number of accounts.", - " - One extra DB entry.", - " # " - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "SessionIndex" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ], - "constants": [ - { - "name": "DEDUP_KEY_PREFIX", - "type": "Bytes", - "value": "0x343a73657373696f6e3a6b657973", - "documentation": [ - " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", - " of the trie." - ] - } - ] - }, - { - "name": "democracy", - "prefix": "Democracy", - "storage": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referenda started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only", - " if `voters_for` includes the voter when called with the referendum (you'll get the", - " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", - " also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(AccountId,Conviction)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - }, - { - "name": "LastTabledWasExternal", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the last referendum tabled was submitted externally. False if it was a public", - " proposal." - ] - }, - { - "name": "NextExternal", - "modifier": "Optional", - "type": { - "Plain": "(Proposal,VoteThreshold)" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Blacklist", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Cancellations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Record of all proposals that have been subject to emergency cancellation." - ] - } - ], - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - Two DB changes, one DB entry.", - " # " - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "proxy_vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", - " the proposal; otherwise it is a vote to keep the status quo.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "emergency_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "threshold", - "type": "VoteThreshold" - }, - { - "name": "voting_period", - "type": "BlockNumber" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " Schedule an emergency referendum.", - "", - " This will create a new referendum for the `proposal`, approved as long as counted votes", - " exceed `threshold` and, if approved, enacted after the given `delay`.", - "", - " It may be called from either the Root or the Emergency origin." - ] - }, - { - "name": "emergency_cancel", - "args": [ - { - "name": "ref_index", - "type": "ReferendumIndex" - } - ], - "documentation": [ - " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", - " referendum." - ] - }, - { - "name": "external_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a referendum to be tabled once it is legal to schedule an external", - " referendum." - ] - }, - { - "name": "external_propose_majority", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", - " an external referendum." - ] - }, - { - "name": "external_push", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - }, - { - "name": "voting_period", - "type": "BlockNumber" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " 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.", - "", - " - `proposal_hash`: The hash of the current external proposal.", - " - `voting_period`: The period that is allowed for voting on this proposal.", - " - `delay`: The number of block after voting has ended in approval and this should be", - " enacted. Increased to `EmergencyVotingPeriod` if too low." - ] - }, - { - "name": "veto_external", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [ - " Veto and blacklist the external proposal hash." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - }, - { - "name": "what", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "set_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Specify a proxy. Called by the stash.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "resign_proxy", - "args": [], - "documentation": [ - " Clear the proxy. Called by the proxy.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "remove_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Clear the proxy. Called by the stash.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "conviction", - "type": "Conviction" - } - ], - "documentation": [ - " Delegate vote.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote.", - "", - " # ", - " - O(1).", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "ExternalTabled", - "args": [], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - }, - { - "name": "Vetoed", - "args": [ - "AccountId", - "Hash", - "BlockNumber" - ], - "documentation": [] - } - ], - "constants": [ - { - "name": "EnactmentPeriod", - "type": "BlockNumber", - "value": "0x8097060000000000", - "documentation": [ - " 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." - ] - }, - { - "name": "LaunchPeriod", - "type": "BlockNumber", - "value": "0x0027060000000000", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "VotingPeriod", - "type": "BlockNumber", - "value": "0x0027060000000000", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "MinimumDeposit", - "type": "BalanceOf", - "value": "0x0000c16ff28623000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "EmergencyVotingPeriod", - "type": "BlockNumber", - "value": "0xc0a8000000000000", - "documentation": [ - " Minimum voting period allowed for an emergency referendum." - ] - }, - { - "name": "CooloffPeriod", - "type": "BlockNumber", - "value": "0x8097060000000000", - "documentation": [ - " Period in blocks where an external proposal may not be re-submitted after being vetoed." - ] - } - ] - }, - { - "name": "collective", - "prefix": "Collective", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current members of the collective. This is stored sorted (just by value)." - ] - } - ], - "calls": [ - { - "name": "set_members", - "args": [ - { - "name": "new_members", - "type": "Vec" - } - ], - "documentation": [ - " Set the collective's membership manually to `new_members`. Be nice to the chain and", - " provide it pre-sorted.", - "", - " Requires root origin." - ] - }, - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a member using the `Member` origin.", - "", - " Origin must be a member of the collective." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single member did some action; `bool` is true if returned without error." - ] - } - ], - "constants": [] - }, - { - "name": "collective", - "prefix": "Collective", - "storage": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current members of the collective. This is stored sorted (just by value)." - ] - } - ], - "calls": [ - { - "name": "set_members", - "args": [ - { - "name": "new_members", - "type": "Vec" - } - ], - "documentation": [ - " Set the collective's membership manually to `new_members`. Be nice to the chain and", - " provide it pre-sorted.", - "", - " Requires root origin." - ] - }, - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a member using the `Member` origin.", - "", - " Origin must be a member of the collective." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single member did some action; `bool` is true if returned without error." - ] - } - ], - "constants": [] - }, - { - "name": "elections", - "prefix": "Council", - "storage": [ - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should constitute the collective." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current membership. When there's a vote going on, this should still be used for executive", - " matters. The block number (second element in the tuple) is the block that their position is", - " active until (calculated by the sum of the block number when the member was elected", - " and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of vote rounds that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(AccountId,SetIndex)", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A list of votes for each voter. The votes are stored as numeric values and parsed in a bit-wise manner.", - "", - " In order to get a human-readable representation (`Vec`), use [`all_approvals_of`].", - "", - " Furthermore, each vector of scalars is chunked with the cap of `APPROVAL_SET_SIZE`." - ] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(VoteIndex,u32)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they are not", - " currently registered." - ] - }, - { - "name": "VoterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VoterInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Basic information about a voter." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "SetIndex", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The present voter list (chunked and capped at [`VOTER_SET_SIZE`])." - ] - }, - { - "name": "NextVoterSet", - "modifier": "Default", - "type": { - "Plain": "SetIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " the next free set to store a voter in. This will keep growing." - ] - }, - { - "name": "VoterCount", - "modifier": "Default", - "type": { - "Plain": "SetIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current number of Voters." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Current number of active candidates" - ] - }, - { - "name": "NextFinalize", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we're in the presentation phase. The first element is the weight of each entry;", - " It may be the direct summed approval stakes, or a weighted version of it." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - } - ], - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "hint", - "type": "SetIndex" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered.", - "", - " Locks the total balance of caller indefinitely.", - " Only [`retract_voter`] or [`reap_inactive_voter`] can unlock the balance.", - "", - " `hint` argument is interpreted differently based on:", - " - if `origin` is setting approvals for the first time: The index will be checked", - " for being a valid _hole_ in the voter list.", - " - if the hint is correctly pointing to a hole, no fee is deducted from `origin`.", - " - Otherwise, the call will succeed but the index is ignored and simply a push to the last chunk", - " with free space happens. If the new push causes a new chunk to be created, a fee indicated by", - " [`VotingFee`] is deducted.", - " - if `origin` is already a voter: the index __must__ be valid and point to the correct", - " position of the `origin` in the current voters list.", - "", - " Note that any trailing `false` votes in `votes` is ignored; In approval voting, not voting for a candidate", - " and voting false, are equal.", - "", - " # ", - " - O(1).", - " - Two extra DB entries, one DB change.", - " - Argument `votes` is limited in length to number of candidates.", - " # " - ] - }, - { - "name": "proxy_set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "hint", - "type": "SetIndex" - } - ], - "documentation": [ - " Set candidate approvals from a proxy. Approval slots stay valid as long as candidates in those slots", - " are registered.", - "", - " # ", - " - Same as `set_approvals` with one additional storage read.", - " # " - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot after", - " the voter gave their last approval set.", - "", - " Both indices must be provided as explained in [`voter_at`] function.", - "", - " May be called by anyone. Returns the voter deposit to `signed`.", - "", - " # ", - " - O(1).", - " - Two fewer DB entries, one DB change.", - " # " - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned.", - "", - " The index must be provided as explained in [`voter_at`] function.", - "", - " Also removes the lock on the balance of the voter. See [`do_set_approvals()`].", - "", - " # ", - " - O(1).", - " - Two fewer DB entries, one DB change.", - " # " - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond.", - "", - " NOTE: if `origin` has already assigned approvals via [`set_approvals`],", - " it will NOT have any usable funds to pass candidacy bond and must first retract.", - " Note that setting approvals will lock the entire balance of the voter until", - " retraction or being reported.", - "", - " # ", - " - Independent of input.", - " - Three DB changes.", - " # " - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `signed` is one of the top Self::carry_count() + current_vote().1 candidates.", - " Only works if the `block_number >= current_vote().0` and `< current_vote().0 + presentation_duration()`", - " `signed` should have at least", - "", - " # ", - " - O(voters) compute.", - " - One DB change.", - " # " - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not", - " already in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member from the set. This is effective immediately.", - "", - " Note: A tally should happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalize_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalize_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of seat(s)) has started." - ] - }, - { - "name": "TallyFinalized", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of seat(s)) has ended (with one or more new members)." - ] - } - ], - "constants": [ - { - "name": "CandidacyBond", - "type": "BalanceOf", - "value": "0x0080c6a47e8d03000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy. A reasonable", - " default value is 9." - ] - }, - { - "name": "VotingBond", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "VotingFee", - "type": "BalanceOf", - "value": "0x0080f420e6b500000000000000000000", - "documentation": [ - " The amount of fee paid upon each vote submission, unless if they submit a", - " _hole_ index and replace it." - ] - }, - { - "name": "PresentSlashPerVoter", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation. A", - " reasonable default value is 1." - ] - }, - { - "name": "CarryCount", - "type": "u32", - "value": "0x06000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next", - " vote. A reasonable default value is 2." - ] - }, - { - "name": "InactiveGracePeriod", - "type": "VoteIndex", - "value": "0x01000000", - "documentation": [ - " How many vote indices need to go by after a target voter's last vote before", - " they can be reaped if their approvals are moot. A reasonable default value", - " is 1." - ] - }, - { - "name": "VotingPeriod", - "type": "BlockNumber", - "value": "0x8070000000000000", - "documentation": [ - " How often (in blocks) to check for new votes. A reasonable default value", - " is 1000." - ] - }, - { - "name": "DecayRatio", - "type": "u32", - "value": "0x00000000", - "documentation": [ - " Decay factor of weight when being accumulated. It should typically be set to", - " __at least__ `membership_size -1` to keep the collective secure.", - " When set to `N`, it indicates `(1/N)^t` of staked is decayed at weight", - " increment step `t`. 0 will result in no weight being added at all (normal", - " approval voting). A reasonable default value is 24." - ] - }, - { - "name": "VOTER_SET_SIZE", - "type": "u32", - "value": "0x40000000", - "documentation": [ - " The chunk size of the voter vector." - ] - }, - { - "name": "APPROVAL_SET_SIZE", - "type": "u32", - "value": "0x08000000", - "documentation": [ - " The chunk size of the approval vector." - ] - } - ] - }, - { - "name": "finality_tracker", - "prefix": "", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null, - "constants": [ - { - "name": "WindowSize", - "type": "BlockNumber", - "value": "0x6500000000000000", - "documentation": [ - " The number of recent samples to keep from this chain. Default is 101." - ] - }, - { - "name": "ReportLatency", - "type": "BlockNumber", - "value": "0xe803000000000000", - "documentation": [ - " The delay after which point things become suspicious. Default is 1000." - ] - } - ] - }, - { - "name": "grandpa", - "prefix": "GrandpaFinality", - "storage": [ - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "Vec<(AuthorityId,AuthorityWeight)>" - }, - "fallback": "0x00", - "documentation": [ - " The current authority set." - ] - }, - { - "name": "State", - "modifier": "Default", - "type": { - "Plain": "StoredState" - }, - "fallback": "0x00", - "documentation": [ - " State of the current authority set." - ] - }, - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [ - " Pending change: (signaled at, scheduled change)." - ] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " next block number where we can force a change." - ] - }, - { - "name": "Stalled", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,BlockNumber)" - }, - "fallback": "0x00", - "documentation": [ - " `true` if we are currently stalled." - ] - } - ], - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(AuthorityId,u64)>" - ], - "documentation": [ - " New authority set has been applied." - ] - }, - { - "name": "Paused", - "args": [], - "documentation": [ - " Current authority set has been paused." - ] - }, - { - "name": "Resumed", - "args": [], - "documentation": [ - " Current authority set has been resumed." - ] - } - ], - "constants": [] - }, - { - "name": "treasury", - "prefix": "Treasury", - "storage": [ - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ], - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change, one extra DB entry.", - " # " - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB clear.", - " # " - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ], - "constants": [ - { - "name": "ProposalBond", - "type": "Permill", - "value": "0x50c30000", - "documentation": [ - " 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." - ] - }, - { - "name": "ProposalBondMinimum", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "type": "BlockNumber", - "value": "0x4038000000000000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "type": "Permill", - "value": "0x20a10700", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - } - ] - }, - { - "name": "contracts", - "prefix": "Contract", - "storage": [ - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter." - ] - }, - { - "name": "ContractInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ContractInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - } - ], - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", - " You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "create", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Creates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", - "", - " Creation is executed as follows:", - "", - " - The destination address is computed based on the sender and hash of the code.", - " - The smart-contract account is created at the computed address.", - " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any call received by this account.", - " - The contract is initialized." - ] - }, - { - "name": "claim_surcharge", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "aux_sender", - "type": "Option" - } - ], - "documentation": [ - " 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.", - "", - " If contract is not evicted as a result of this call, no actions are taken and", - " the sender is not eligible for the reward." - ] - }, - { - "name": "restore_to", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "rent_allowance", - "type": "BalanceOf" - }, - { - "name": "delta", - "type": "Vec" - } - ], - "documentation": [ - " Allows a contract to restore a tombstone by giving its storage.", - "", - " The contract that wants to restore (i.e. origin of the call, or `msg.sender` in Solidity terms) will compute a", - " tombstone with its storage and the given code_hash. If the computed tombstone", - " match the destination one, the destination contract is restored with the rent_allowance` specified,", - " while the origin sends all its funds to the destination and is removed." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` to `to` with given `value` as part of a `call` or `create`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - }, - { - "name": "Contract", - "args": [ - "AccountId", - "Bytes" - ], - "documentation": [ - " An event from contract of account." - ] - } - ], - "constants": [ - { - "name": "SignedClaimHandicap", - "type": "BlockNumber", - "value": "0x0200000000000000", - "documentation": [ - " 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" - ] - }, - { - "name": "TombstoneDeposit", - "type": "BalanceOf", - "value": "0x10000000000000000000000000000000", - "documentation": [ - " The minimum amount required to generate a tombstone." - ] - }, - { - "name": "StorageSizeOffset", - "type": "u32", - "value": "0x08000000", - "documentation": [ - " Size of a contract at the time of creation. This is a simple way to ensure", - " that empty contracts eventually gets deleted." - ] - }, - { - "name": "RentByteFee", - "type": "BalanceOf", - "value": "0x04000000000000000000000000000000", - "documentation": [ - " Price of a byte of storage per one block interval. Should be greater than 0." - ] - }, - { - "name": "RentDepositOffset", - "type": "BalanceOf", - "value": "0xe8030000000000000000000000000000", - "documentation": [ - " The amount of funds a contract should deposit in order to offset", - " the cost of one byte.", - "", - " 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." - ] - }, - { - "name": "SurchargeReward", - "type": "BalanceOf", - "value": "0x96000000000000000000000000000000", - "documentation": [ - " Reward that is received by the party whose touch has led", - " to removal of a contract." - ] - }, - { - "name": "TransferFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "type": "BalanceOf", - "value": "0x00e40b54020000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "ContractFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create a contract instance. A reasonable default value", - " is 21." - ] - }, - { - "name": "CallBaseFee", - "type": "Gas", - "value": "0xe803000000000000", - "documentation": [ - " The base fee charged for calling into a contract. A reasonable default", - " value is 135." - ] - }, - { - "name": "CreateBaseFee", - "type": "Gas", - "value": "0xe803000000000000", - "documentation": [ - " The base fee charged for creating a contract. A reasonable default value", - " is 175." - ] - }, - { - "name": "MaxDepth", - "type": "u32", - "value": "0x00040000", - "documentation": [ - " The maximum nesting level of a call/create stack. A reasonable default", - " value is 100." - ] - }, - { - "name": "MaxValueSize", - "type": "u32", - "value": "0x00400000", - "documentation": [ - " The maximum size of a storage value in bytes. A reasonable default is 16 KiB." - ] - }, - { - "name": "BlockGasLimit", - "type": "Gas", - "value": "0x8096980000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block. A reasonable", - " default value is 10_000_000." - ] - } - ] - }, - { - "name": "sudo", - "prefix": "Sudo", - "storage": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " The `AccountId` of the sudo key." - ] - } - ], - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " 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.", - " - No DB writes.", - " # " - ] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - " # " - ] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - } - ], - "constants": [] - }, - { - "name": "im_online", - "prefix": "ImOnline", - "storage": [ - { - "name": "GossipAt", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x0000000000000000", - "documentation": [] - }, - { - "name": "LastNewEraStart", - "modifier": "Optional", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "ReceivedHeartbeats", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "SessionIndex", - "key2": "AuthorityId", - "value": "Bytes", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [] - } - ], - "calls": [ - { - "name": "heartbeat", - "args": [ - { - "name": "heartbeat", - "type": "Heartbeat" - }, - { - "name": "_signature", - "type": "Bytes" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "HeartbeatReceived", - "args": [ - "BlockNumber", - "AuthorityId" - ], - "documentation": [ - " A new heartbeat was received at this `BlockNumber` from `AuthorityId`" - ] - } - ], - "constants": [ - { - "name": "SessionsPerEra", - "type": "SessionIndex", - "value": "0x06000000", - "documentation": [ - " Number of sessions per era." - ] - } - ] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v6/static.ts b/packages/metadata/src/Metadata/v6/static.ts deleted file mode 100644 index ed6c131100..0000000000 --- a/packages/metadata/src/Metadata/v6/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746106481873797374656d1853797374656d013c304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e64657800200000000000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e504e6578745765696768744d756c7469706c6965720100405765696768744d756c7469706c69657220000000000000000008650120546865206e65787420776569676874206d756c7469706c6965722e20546869732073686f756c6420626520757064617465642061742074686520656e64206f66206561636820626c6f636b206261736564206f6e207468656c2073617475726174696f6e206c6576656c2028776569676874292e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e3852616e646f6d4d6174657269616c0100482869382c205665633c543a3a486173683e2908000008a50120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e205468697320697320617272616e676564206173206151012072696e6720627566666572207769746820746865206069386020707265666978206265696e672074686520696e64657820696e746f20746865206056656360206f6620746865206f6c6465737420686173682e184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e01141872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e01084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e00106175726110417572610108344c61737454696d657374616d70010024543a3a4d6f6d656e74200000000000000000045020546865206c6173742074696d657374616d702e2c417574686f72697469657301004c5665633c543a3a417574686f7269747949643e04000460205468652063757272656e7420617574686f726974696573010000002474696d657374616d702454696d657374616d7001080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420030000000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e28617574686f727368697028417574686f7273686970010c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e002062616c616e6365732042616c616e636573011434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e5cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742ce82069742077696c6c20726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e14484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e4261736546656528543a3a42616c616e6365400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656528543a3a42616c616e63654000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c7374616b696e671c5374616b696e6701543856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01080c0004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727301010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000859012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f662074686520657261dc20616e6420696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e7401010130543a3a4163636f756e7449640c753332001000000000085d0120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e74656474206279206f6e652065616368206572612074686174207061737365732e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e0400085501204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202857686f206974207761732c207768656e20697420776173207265706f727465642c20686f779c206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e2c466f7263654e6577457261010010626f6f6c0400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e013410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e005101206076616c756560206d757374206265206d6f7265207468616e2074686520606578697374656e7469616c5f6465706f7369746020646566696e656420696e207468652042616c616e636573206d6f64756c652e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e2ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726100203d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732e1501202d205472696767657273207468652050687261676d656e20656c656374696f6e2e20457870656e7369766520627574206e6f7420757365722d636f6e74726f6c6c65642ec4202d20446570656e6473206f6e2073746174653a20604f287c65646765737c202a207c76616c696461746f72737c29602e302023203c2f7765696768743e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332084901204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20676976656e20616e206f66666c696e652d7761726e696e6720286974206973207374696c6c0d012077697468696e20697473206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e1c73657373696f6e1c53657373696f6e011c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e1c4368616e676564010010626f6f6c040004b8205472756520696620616e797468696e6720686173206368616e67656420696e20746869732073657373696f6e2e345175657565644368616e676564010010626f6f6c0400045420517565756564206b657973206368616e6765642e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e204e6578744b6579730002041c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002041c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e2464656d6f63726163792444656d6f6372616379013c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00007028543a3a50726f706f73616c2c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01441c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e44656d657267656e63795f70726f706f7365102070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c6434766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721888205363686564756c6520616e20656d657267656e6379207265666572656e64756d2e00610120546869732077696c6c206372656174652061206e6577207265666572656e64756d20666f7220746865206070726f706f73616c602c20617070726f766564206173206c6f6e6720617320636f756e74656420766f74657319012065786365656420607468726573686f6c646020616e642c20696620617070726f7665642c20656e61637465642061667465722074686520676976656e206064656c6179602e00fc204974206d61792062652063616c6c65642066726f6d206569746865722074686520526f6f74206f722074686520456d657267656e6379206f726967696e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479042070726f706f73616c40426f783c543a3a50726f706f73616c3e085901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e3465787465726e616c5f707573680c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572205101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e2d01202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265f0202020656e61637465642e20496e6372656173656420746f2060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e012c2050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e003845787465726e616c5461626c656400001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e74496400185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657200183c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657220809706000000000014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657220002706000000000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657220002706000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d62657220c0a800000000000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657220809706000000000004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e28636f6c6c65637469766528436f6c6c65637469766501142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0028636f6c6c65637469766528436f6c6c65637469766501142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0024656c656374696f6e731c436f756e63696c01405050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d626572200000000000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d626572200000000000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c6420636f6e737469747574652074686520636f6c6c6563746976652e1c4d656d6265727301008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400107901205468652063757272656e74206d656d626572736869702e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976657101206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617420746865697220706f736974696f6e20697351012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e20746865206d656d6265722077617320656c65637465646820616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e6465781000000000041d012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f660101016028543a3a4163636f756e7449642c20536574496e64657829445665633c417070726f76616c466c61673e00040014a1012041206c697374206f6620766f74657320666f72206561636820766f7465722e2054686520766f746573206172652073746f726564206173206e756d657269632076616c75657320616e642070617273656420696e2061206269742d77697365206d616e6e65722e00650120496e206f7264657220746f2067657420612068756d616e2d7265616461626c6520726570726573656e746174696f6e2028605665633c626f6f6c3e60292c20757365205b60616c6c5f617070726f76616c735f6f66605d2e00510120467572746865726d6f72652c206561636820766563746f72206f66207363616c617273206973206368756e6b656420776974682074686520636170206f662060415050524f56414c5f5345545f53495a45602e385265676973746572496e666f4f6600010130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400087d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e6560206966207468657920617265206e6f74582063757272656e746c7920726567697374657265642e2c566f746572496e666f4f6600010130543a3a4163636f756e7449645c566f746572496e666f3c42616c616e63654f663c543e3e000400048420426173696320696e666f726d6174696f6e2061626f7574206120766f7465722e18566f7465727301010120536574496e646578645665633c4f7074696f6e3c543a3a4163636f756e7449643e3e000400040d01205468652070726573656e7420766f746572206c69737420286368756e6b656420616e6420636170706564206174205b60564f5445525f5345545f53495a45605d292e304e657874566f746572536574010020536574496e646578100000000004fc20746865206e65787420667265652073657420746f2073746f7265206120766f74657220696e2e20546869732077696c6c206b6565702067726f77696e672e28566f746572436f756e74010020536574496e646578100000000004682043757272656e74206e756d626572206f6620566f746572732e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000004902043757272656e74206e756d626572206f66206163746976652063616e64696461746573304e65787446696e616c697a650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e0400089d012047657420746865206c6561646572626f61726420696620776527726520696e207468652070726573656e746174696f6e2070686173652e2054686520666972737420656c656d656e742069732074686520776569676874206f66206561636820656e7472793b2901204974206d617920626520746865206469726563742073756d6d656420617070726f76616c207374616b65732c206f7220612077656967687465642076657273696f6e206f662069742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e0128347365745f617070726f76616c730c14766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e1068696e7420536574496e646578606101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e00c0204c6f636b732074686520746f74616c2062616c616e6365206f662063616c6c657220696e646566696e6974656c792e2901204f6e6c79205b60726574726163745f766f746572605d206f72205b60726561705f696e6163746976655f766f746572605d2063616e20756e6c6f636b207468652062616c616e63652e00d4206068696e746020617267756d656e7420697320696e74657270726574656420646966666572656e746c79206261736564206f6e3a4501202d20696620606f726967696e602069732073657474696e6720617070726f76616c7320666f72207468652066697273742074696d653a2054686520696e6465782077696c6c20626520636865636b6564b020666f72206265696e6720612076616c6964205f686f6c655f20696e2074686520766f746572206c6973742e4d012020202d206966207468652068696e7420697320636f72726563746c7920706f696e74696e6720746f206120686f6c652c206e6f206665652069732064656475637465642066726f6d20606f726967696e602e89012020202d204f74686572776973652c207468652063616c6c2077696c6c2073756363656564206275742074686520696e6465782069732069676e6f72656420616e642073696d706c792061207075736820746f20746865206c617374206368756e6b81012020207769746820667265652073706163652068617070656e732e20496620746865206e65772070757368206361757365732061206e6577206368756e6b20746f20626520637265617465642c20612066656520696e64696361746564206279742020205b60566f74696e67466565605d2069732064656475637465642e5d01202d20696620606f726967696e6020697320616c7265616479206120766f7465723a2074686520696e646578205f5f6d7573745f5f2062652076616c696420616e6420706f696e7420746f2074686520636f7272656374d420706f736974696f6e206f662074686520606f726967696e6020696e207468652063757272656e7420766f74657273206c6973742e00ad01204e6f7465207468617420616e7920747261696c696e67206066616c73656020766f74657320696e2060766f746573602069732069676e6f7265643b20496e20617070726f76616c20766f74696e672c206e6f7420766f74696e6720666f7220612063616e6469646174657420616e6420766f74696e672066616c73652c2061726520657175616c2e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20657874726120444220656e74726965732c206f6e65204442206368616e67652e0501202d20417267756d656e742060766f74657360206973206c696d6974656420696e206c656e67746820746f206e756d626572206f662063616e646964617465732e302023203c2f7765696768743e4c70726f78795f7365745f617070726f76616c730c14766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e1068696e7420536574496e646578189501205365742063616e64696461746520617070726f76616c732066726f6d20612070726f78792e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e002c2023203c7765696768743ef0202d2053616d6520617320607365745f617070726f76616c73602077697468206f6e65206164646974696f6e616c2073746f7261676520726561642e302023203c2f7765696768743e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e3061012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e00150120426f746820696e6469636573206d7573742062652070726f7669646564206173206578706c61696e656420696e205b60766f7465725f6174605d2066756e6374696f6e2e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20666577657220444220656e74726965732c206f6e65204442206368616e67652e302023203c2f7765696768743e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e282d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e0009012054686520696e646578206d7573742062652070726f7669646564206173206578706c61696e656420696e205b60766f7465725f6174605d2066756e6374696f6e2e003d0120416c736f2072656d6f76657320746865206c6f636b206f6e207468652062616c616e6365206f662074686520766f7465722e20536565205b60646f5f7365745f617070726f76616c732829605d2e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20666577657220444220656e74726965732c206f6e65204442206368616e67652e302023203c2f7765696768743e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e3478205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e002101204e4f54453a20696620606f726967696e602068617320616c72656164792061737369676e656420617070726f76616c7320766961205b607365745f617070726f76616c73605d2c45012069742077696c6c204e4f54206861766520616e7920757361626c652066756e647320746f20706173732063616e64696461637920626f6e6420616e64206d75737420666972737420726574726163742e3101204e6f746520746861742073657474696e6720617070726f76616c732077696c6c206c6f636b2074686520656e746972652062616c616e6365206f662074686520766f74657220756e74696c782072657472616374696f6e206f72206265696e67207265706f727465642e002c2023203c7765696768743e60202d20496e646570656e64656e74206f6620696e7075742e50202d205468726565204442206368616e6765732e302023203c2f7765696768743e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e20650120436c61696d207468617420607369676e656460206973206f6e65206f662074686520746f702053656c663a3a63617272795f636f756e742829202b2063757272656e745f766f746528292e312063616e646964617465732ea101204f6e6c7920776f726b73206966207468652060626c6f636b5f6e756d626572203e3d2063757272656e745f766f746528292e306020616e6420603c2063757272656e745f766f746528292e30202b2070726573656e746174696f6e5f6475726174696f6e2829607820607369676e6564602073686f756c642068617665206174206c65617374002c2023203c7765696768743e54202d204f28766f746572732920636f6d707574652e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570490120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f745420616c726561647920696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651021012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c792e002101204e6f74653a20412074616c6c792073686f756c642068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204d420412074616c6c792028666f7220617070726f76616c20766f746573206f662073656174287329292068617320737461727465642e3854616c6c7946696e616c697a656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04490120412074616c6c792028666f7220617070726f76616c20766f746573206f662073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e283443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000008390120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e204120726561736f6e61626c65502064656661756c742076616c756520697320392e28566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a0000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e24566f74696e674665653042616c616e63654f663c543e400080f420e6b5000000000000000000000829012054686520616d6f756e74206f662066656520706169642075706f6e206561636820766f7465207375626d697373696f6e2c20756e6c6573732069662074686579207375626d6974206174205f686f6c655f20696e64657820616e64207265706c6163652069742e5050726573656e74536c617368506572566f7465723042616c616e63654f663c543e400010a5d4e80000000000000000000000081501205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e20417c20726561736f6e61626c652064656661756c742076616c756520697320312e284361727279436f756e740c7533321006000000081d0120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e6578749c20766f74652e204120726561736f6e61626c652064656661756c742076616c756520697320322e4c496e6163746976654772616365506572696f6424566f7465496e64657810010000000c310120486f77206d616e7920766f746520696e6469636573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f72652d0120746865792063616e2062652072656170656420696620746865697220617070726f76616c7320617265206d6f6f742e204120726561736f6e61626c652064656661756c742076616c75651820697320312e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657220807000000000000008250120486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e204120726561736f6e61626c652064656661756c742076616c75652420697320313030302e284465636179526174696f0c753332100000000014350120446563617920666163746f72206f6620776569676874207768656e206265696e6720616363756d756c617465642e2049742073686f756c64207479706963616c6c792062652073657420746f0501205f5f6174206c656173745f5f20606d656d626572736869705f73697a65202d316020746f206b6565702074686520636f6c6c656374697665207365637572652e1d01205768656e2073657420746f20604e602c20697420696e64696361746573206028312f4e295e7460206f66207374616b6564206973206465636179656420617420776569676874290120696e6372656d656e742073746570206074602e20302077696c6c20726573756c7420696e206e6f20776569676874206265696e6720616464656420617420616c6c20286e6f726d616cd020617070726f76616c20766f74696e67292e204120726561736f6e61626c652064656661756c742076616c75652069732032342e38564f5445525f5345545f53495a450c7533321040000000049020546865206368756e6b2073697a65206f662074686520766f74657220766563746f722e44415050524f56414c5f5345545f53495a450c7533321008000000049c20546865206368756e6b2073697a65206f662074686520617070726f76616c20766563746f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d62657220650000000000000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657220e803000000000000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e1c6772616e6470613c4772616e64706146696e616c69747901142c417574686f72697469657301008c5665633c28417574686f7269747949642c20417574686f72697479576569676874293e0400046c205468652063757272656e7420617574686f72697479207365742e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f726974696573045c5665633c28417574686f7269747949642c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00207472656173757279205472656173757279010c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e103050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d626572204038000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e24636f6e74726163747320436f6e7472616374011c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01183c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e186372656174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28a90120437265617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e28726573746f72655f746f10106465737430543a3a4163636f756e74496424636f64655f686173682c436f6465486173683c543e3872656e745f616c6c6f77616e63653042616c616e63654f663c543e1464656c7461545665633c657865633a3a53746f726167654b65793e18010120416c6c6f7773206120636f6e747261637420746f20726573746f7265206120746f6d6273746f6e6520627920676976696e67206974732073746f726167652e00bd012054686520636f6e747261637420746861742077616e747320746f20726573746f72652028692e652e206f726967696e206f66207468652063616c6c2c206f7220606d73672e73656e6465726020696e20536f6c6964697479207465726d73292077696c6c20636f6d707574652061390120746f6d6273746f6e652077697468206974732073746f7261676520616e642074686520676976656e20636f64655f686173682e2049662074686520636f6d707574656420746f6d6273746f6e659101206d61746368207468652064657374696e6174696f6e206f6e652c207468652064657374696e6174696f6e20636f6e747261637420697320726573746f7265642077697468207468652072656e745f616c6c6f77616e636560207370656369666965642c2101207768696c6520746865206f726967696e2073656e647320616c6c206974732066756e647320746f207468652064657374696e6174696f6e20616e642069732072656d6f7665642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365045501205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d62657220020000000000000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e401000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c7533321008000000082d012053697a65206f66206120636f6e7472616374206174207468652074696d65206f66206372656174696f6e2e205468697320697320612073696d706c652077617920746f20656e73757265b8207468617420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4004000000000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e40e80300000000000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e409600000000000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000082d01205468652066656520726571756972656420746f20637265617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e34437265617465426173654665650c47617320e80300000000000008250120546865206261736520666565206368617267656420666f72206372656174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c7533321000040000081d0120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e107375646f105375646f01040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2439012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204e6f204442207772697465732e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e0024696d5f6f6e6c696e6520496d4f6e6c696e65010c20476f737369704174010038543a3a426c6f636b4e756d626572200000000000000000003c4c6173744e6577457261537461727400005473657373696f6e3a3a53657373696f6e496e646578040000485265636569766564486561727462656174730102015473657373696f6e3a3a53657373696f6e496e64657838543a3a417574686f7269747949641c5665633c75383e010400000104246865617274626561740824686561727462656174a44865617274626561743c543a3a426c6f636b4e756d6265722c20543a3a417574686f7269747949643e285f7369676e61747572651c5665633c75383e000104444865617274626561745265636569766564082c426c6f636b4e756d6265722c417574686f7269747949640419012041206e6577206865617274626561742077617320726563656976656420617420746869732060426c6f636b4e756d626572602066726f6d2060417574686f72697479496460043853657373696f6e735065724572615473657373696f6e3a3a53657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v6/toV7.ts b/packages/metadata/src/Metadata/v6/toV7.ts deleted file mode 100644 index 098018ba9b..0000000000 --- a/packages/metadata/src/Metadata/v6/toV7.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV6, MetadataV7, ModuleMetadataV7 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -/** @internal */ -export default function toV7 (registry: Registry, { modules }: MetadataV6): MetadataV7 { - return registry.createType('MetadataV7', { - modules: modules.map(({ calls, constants, events, name, prefix, storage }): ModuleMetadataV7 => - registry.createType('ModuleMetadataV7', { - calls, - constants, - events, - name, - storage: storage.isSome - ? registry.createType('StorageMetadataV7', { items: storage.unwrap(), prefix }) - : null - }) - ) - }); -} diff --git a/packages/metadata/src/Metadata/v7/Metadata.spec.ts b/packages/metadata/src/Metadata/v7/Metadata.spec.ts deleted file mode 100644 index 1cb6adbffb..0000000000 --- a/packages/metadata/src/Metadata/v7/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import substrateJson from './static-substrate.json'; -import substrateData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV7 (substrate)', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 7, substrateData, substrateJson); - - toLatest(registry, 7, substrateData); - - defaultValues(registry, substrateData); -}); diff --git a/packages/metadata/src/Metadata/v7/static-substrate.json b/packages/metadata/src/Metadata/v7/static-substrate.json deleted file mode 100644 index 5fc901fb68..0000000000 --- a/packages/metadata/src/Metadata/v7/static-substrate.json +++ /dev/null @@ -1,4544 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V7": { - "modules": [ - { - "name": "System", - "storage": { - "prefix": "System", - "items": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " Extrinsics nonce for accounts." - ] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total extrinsics count for the current block." - ] - }, - { - "name": "AllExtrinsicsWeight", - "modifier": "Optional", - "type": { - "Plain": "Weight" - }, - "fallback": "0x00", - "documentation": [ - " Total weight for all extrinsics put together, for the current block." - ] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total length (in bytes) for all extrinsics put together, for the current block." - ] - }, - { - "name": "NextWeightMultiplier", - "modifier": "Default", - "type": { - "Plain": "WeightMultiplier" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The next weight multiplier. This should be updated at the end of each block based on the", - " saturation level (weight)." - ] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Map of block numbers to block hashes." - ] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Extrinsics data for the current block (maps an extrinsic's index to its data)." - ] - }, - { - "name": "RandomMaterial", - "modifier": "Default", - "type": { - "Plain": "(i8,Vec)" - }, - "fallback": "0x0000", - "documentation": [ - " Series of block headers from the last 81 blocks that acts as random seed material. This is arranged as a", - " ring buffer with the `i8` prefix being the index into the `Vec` of the oldest hash." - ] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Hash of the previous block." - ] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Extrinsics root of the current block, also part of the block header." - ] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "DigestOf" - }, - "fallback": "0x00", - "documentation": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Events deposited for the current block." - ] - }, - { - "name": "EventCount", - "modifier": "Default", - "type": { - "Plain": "EventIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of events in the `Events` list." - ] - }, - { - "name": "EventTopics", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "()", - "key2": "Hash", - "value": "Vec<(BlockNumber,EventIndex)>", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " Mapping between a topic (represented by T::Hash) and a vector of indexes", - " of events in the `>` list.", - "", - " The first key serves no purpose. This field is declared as double_map just", - " for convenience of using `remove_prefix`.", - "", - " 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." - ] - } - ] - }, - "calls": [ - { - "name": "fill_block", - "args": [], - "documentation": [ - " A big dispatch that will disallow any other transaction to be included." - ] - }, - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - }, - { - "name": "kill_storage", - "args": [ - { - "name": "keys", - "type": "Vec" - } - ], - "documentation": [ - " Kill some items from storage." - ] - }, - { - "name": "kill_prefix", - "args": [ - { - "name": "prefix", - "type": "Key" - } - ], - "documentation": [ - " Kill all storage items with a key that starts with the given prefix." - ] - } - ], - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [ - "DispatchError" - ], - "documentation": [ - " An extrinsic failed." - ] - } - ], - "constants": [] - }, - { - "name": "Utility", - "storage": null, - "calls": [ - { - "name": "batch", - "args": [ - { - "name": "calls", - "type": "Vec" - } - ], - "documentation": [ - " Send a batch of dispatch calls (only root)." - ] - } - ], - "events": [ - { - "name": "BatchExecuted", - "args": [ - "Vec>" - ], - "documentation": [] - } - ], - "constants": [] - }, - { - "name": "Babe", - "storage": { - "prefix": "Babe", - "items": [ - { - "name": "EpochIndex", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current epoch index." - ] - }, - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" - }, - "fallback": "0x00", - "documentation": [ - " Current epoch authorities." - ] - }, - { - "name": "GenesisSlot", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The slot at which the first epoch actually started. This is 0", - " until the first block of the chain." - ] - }, - { - "name": "CurrentSlot", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current slot number." - ] - }, - { - "name": "Randomness", - "modifier": "Default", - "type": { - "Plain": "[u8;32]" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " 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." - ] - }, - { - "name": "NextRandomness", - "modifier": "Default", - "type": { - "Plain": "[u8;32]" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Next epoch randomness." - ] - }, - { - "name": "SegmentIndex", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " 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." - ] - }, - { - "name": "UnderConstruction", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Vec<[u8;32]>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "Initialized", - "modifier": "Optional", - "type": { - "Plain": "MaybeVrf" - }, - "fallback": "0x00", - "documentation": [ - " Temporary value (cleared at block finalization) which is `Some`", - " if per-block initialization has already been called for current block." - ] - } - ] - }, - "calls": [], - "events": null, - "constants": [ - { - "name": "EpochDuration", - "type": "u64", - "value": "0xc800000000000000", - "documentation": [ - " The number of **slots** that an epoch takes. We couple sessions to", - " epochs, i.e. we start a new session once the new epoch begins." - ] - }, - { - "name": "ExpectedBlockTime", - "type": "Moment", - "value": "0xb80b000000000000", - "documentation": [ - " 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)." - ] - } - ] - }, - { - "name": "Timestamp", - "storage": { - "prefix": "Timestamp", - "items": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ] - }, - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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`." - ] - } - ], - "events": null, - "constants": [ - { - "name": "MinimumPeriod", - "type": "Moment", - "value": "0xdc05000000000000", - "documentation": [ - " 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." - ] - } - ] - }, - { - "name": "Authorship", - "storage": { - "prefix": "Authorship", - "items": [ - { - "name": "Uncles", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Uncles" - ] - }, - { - "name": "Author", - "modifier": "Optional", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x00", - "documentation": [ - " Author of current block." - ] - }, - { - "name": "DidSetUncles", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Whether uncles were already set in this block." - ] - } - ] - }, - "calls": [ - { - "name": "set_uncles", - "args": [ - { - "name": "new_uncles", - "type": "Vec
" - } - ], - "documentation": [ - " Provide a set of uncles." - ] - } - ], - "events": null, - "constants": [] - }, - { - "name": "Indices", - "storage": { - "prefix": "Indices", - "items": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ] - }, - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ], - "constants": [] - }, - { - "name": "Balances", - "storage": { - "prefix": "Balances", - "items": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total units issued in the system." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It", - " alone is used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to clean up data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable.", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ] - }, - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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 types. 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` and `T::OnFreeBalanceZero::on_free_balance_zero`.", - "", - " # " - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "new_free", - "type": "Compact" - }, - { - "name": "new_reserved", - "type": "Compact" - } - ], - "documentation": [ - " 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 (`system::AccountNonce`).", - "", - " The dispatch origin for this call is `root`.", - "", - " # ", - " - Independent of the arguments.", - " - Contains a limited number of reads and writes.", - " # " - ] - }, - { - "name": "force_transfer", - "args": [ - { - "name": "source", - "type": "LookupSource" - }, - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Exactly as `transfer`, except the origin must be root and the source account may be", - " specified." - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ], - "constants": [ - { - "name": "ExistentialDeposit", - "type": "Balance", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " The minimum amount required to keep an account open." - ] - }, - { - "name": "TransferFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "type": "Balance", - "value": "0x00e40b54020000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - } - ] - }, - { - "name": "Staking", - "storage": { - "prefix": "Staking", - "items": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate", - " through validators here, but you can find them in the Session module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "EraIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentEraStart", - "modifier": "Default", - "type": { - "Plain": "MomentOf" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The start of the current era." - ] - }, - { - "name": "CurrentEraStartSessionIndex", - "modifier": "Default", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The session index at which the current era started." - ] - }, - { - "name": "CurrentEraPointsEarned", - "modifier": "Default", - "type": { - "Plain": "EraPoints" - }, - "fallback": "0x0000000000", - "documentation": [ - " Rewards for the current era. Using indices of current elected set." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "ForceEra", - "modifier": "Default", - "type": { - "Plain": "Forcing" - }, - "fallback": "0x00", - "documentation": [ - " True if the next session change will be a new era regardless of index." - ] - }, - { - "name": "SlashRewardFraction", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x00000000", - "documentation": [ - " The percentage of the slash that is distributed to reporters.", - "", - " The rest of the slashed value is handled by the `Slash`." - ] - }, - { - "name": "BondedEras", - "modifier": "Default", - "type": { - "Plain": "Vec<(EraIndex,SessionIndex)>" - }, - "fallback": "0x00", - "documentation": [ - " A mapping from still-bonded eras to the first session index of that era." - ] - }, - { - "name": "EraSlashJournal", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "EraIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " All slashes that have occurred in a given era." - ] - } - ] - }, - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - 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.", - " # " - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " 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.", - " " - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " 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.", - " # " - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains a limited number of reads.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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.", - "", - " # ", - " - The transaction's complexity is proportional to the size of `targets`,", - " which is capped at `MAX_NOMINATIONS`.", - " - Both the reads and writes follow a similar pattern.", - " # " - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains one read.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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.", - " # " - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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.", - " # " - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_no_eras", - "args": [], - "documentation": [ - " Force there to be no new eras indefinitely.", - "", - " # ", - " - No arguments.", - " # " - ] - }, - { - "name": "force_new_era", - "args": [], - "documentation": [ - " 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.", - "", - " # ", - " - No arguments.", - " # " - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the given balance." - ] - }, - { - "name": "Slash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and its nominators) has been slashed by the given amount." - ] - }, - { - "name": "OldSlashingReportDiscarded", - "args": [ - "SessionIndex" - ], - "documentation": [ - " An old slashing report from a prior era was discarded because it could", - " not be processed." - ] - } - ], - "constants": [ - { - "name": "SessionsPerEra", - "type": "SessionIndex", - "value": "0x06000000", - "documentation": [ - " Number of sessions per era." - ] - }, - { - "name": "BondingDuration", - "type": "EraIndex", - "value": "0xa0020000", - "documentation": [ - " Number of eras that staked funds must remain bonded for." - ] - } - ] - }, - { - "name": "Session", - "storage": { - "prefix": "Session", - "items": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "QueuedChanged", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the underlying economic identities or weighting behind the validators", - " has changed in the queued validator set." - ] - }, - { - "name": "QueuedKeys", - "modifier": "Default", - "type": { - "Plain": "Vec<(ValidatorId,Keys)>" - }, - "fallback": "0x00", - "documentation": [ - " The queued keys for the next session. When the next session begins, these keys", - " will be used to determine the validator's session keys." - ] - }, - { - "name": "DisabledValidators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Indices of disabled validators.", - "", - " The set is cleared when `on_session_ending` returns a new set of identities." - ] - }, - { - "name": "NextKeys", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Twox64Concat", - "key1": "Bytes", - "key2": "ValidatorId", - "value": "Keys", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " The next session keys for a validator.", - "", - " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", - " the trie. Having all data in the same branch should prevent slowing down other queries." - ] - }, - { - "name": "KeyOwner", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Twox64Concat", - "key1": "Bytes", - "key2": "(KeyTypeId,Bytes)", - "value": "ValidatorId", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " The owner of a key. The second key is the `KeyTypeId` + the encoded key.", - "", - " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", - " the trie. Having all data in the same branch should prevent slowing down other queries." - ] - } - ] - }, - "calls": [ - { - "name": "set_keys", - "args": [ - { - "name": "keys", - "type": "Keys" - }, - { - "name": "proof", - "type": "Bytes" - } - ], - "documentation": [ - " Sets the session key(s) of the function caller to `key`.", - " 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.", - "", - " # ", - " - O(log n) in number of accounts.", - " - One extra DB entry.", - " # " - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "SessionIndex" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ], - "constants": [ - { - "name": "DEDUP_KEY_PREFIX", - "type": "Bytes", - "value": "0x343a73657373696f6e3a6b657973", - "documentation": [ - " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", - " of the trie." - ] - } - ] - }, - { - "name": "Democracy", - "storage": { - "prefix": "Democracy", - "items": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referenda started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only", - " if `voters_for` includes the voter when called with the referendum (you'll get the", - " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", - " also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(AccountId,Conviction)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - }, - { - "name": "LastTabledWasExternal", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the last referendum tabled was submitted externally. False if it was a public", - " proposal." - ] - }, - { - "name": "NextExternal", - "modifier": "Optional", - "type": { - "Plain": "(Proposal,VoteThreshold)" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Blacklist", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Cancellations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Record of all proposals that have been subject to emergency cancellation." - ] - } - ] - }, - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - Two DB changes, one DB entry.", - " # " - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "proxy_vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", - " the proposal; otherwise it is a vote to keep the status quo.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "emergency_cancel", - "args": [ - { - "name": "ref_index", - "type": "ReferendumIndex" - } - ], - "documentation": [ - " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", - " referendum." - ] - }, - { - "name": "external_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a referendum to be tabled once it is legal to schedule an external", - " referendum." - ] - }, - { - "name": "external_propose_majority", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", - " an external referendum.", - "", - " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", - " pre-scheduled `external_propose` call." - ] - }, - { - "name": "external_propose_default", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", - " schedule an external referendum.", - "", - " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", - " pre-scheduled `external_propose` call." - ] - }, - { - "name": "fast_track", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - }, - { - "name": "voting_period", - "type": "BlockNumber" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " 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.", - "", - " - `proposal_hash`: The hash of the current external proposal.", - " - `voting_period`: The period that is allowed for voting on this proposal.", - " - `delay`: The number of block after voting has ended in approval and this should be", - " enacted. Increased to `EmergencyVotingPeriod` if too low." - ] - }, - { - "name": "veto_external", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [ - " Veto and blacklist the external proposal hash." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - }, - { - "name": "what", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "set_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Specify a proxy. Called by the stash.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "resign_proxy", - "args": [], - "documentation": [ - " Clear the proxy. Called by the proxy.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "remove_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Clear the proxy. Called by the stash.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "conviction", - "type": "Conviction" - } - ], - "documentation": [ - " Delegate vote.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote.", - "", - " # ", - " - O(1).", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "ExternalTabled", - "args": [], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - }, - { - "name": "Vetoed", - "args": [ - "AccountId", - "Hash", - "BlockNumber" - ], - "documentation": [] - } - ], - "constants": [ - { - "name": "EnactmentPeriod", - "type": "BlockNumber", - "value": "0x002f0d00", - "documentation": [ - " 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." - ] - }, - { - "name": "LaunchPeriod", - "type": "BlockNumber", - "value": "0x004e0c00", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "VotingPeriod", - "type": "BlockNumber", - "value": "0x004e0c00", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "MinimumDeposit", - "type": "BalanceOf", - "value": "0x0000c16ff28623000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "EmergencyVotingPeriod", - "type": "BlockNumber", - "value": "0x80510100", - "documentation": [ - " Minimum voting period allowed for an emergency referendum." - ] - }, - { - "name": "CooloffPeriod", - "type": "BlockNumber", - "value": "0x004e0c00", - "documentation": [ - " Period in blocks where an external proposal may not be re-submitted after being vetoed." - ] - } - ] - }, - { - "name": "Council", - "storage": { - "prefix": "Instance1Collective", - "items": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current members of the collective. This is stored sorted (just by value)." - ] - } - ] - }, - "calls": [ - { - "name": "set_members", - "args": [ - { - "name": "new_members", - "type": "Vec" - } - ], - "documentation": [ - " Set the collective's membership manually to `new_members`. Be nice to the chain and", - " provide it pre-sorted.", - "", - " Requires root origin." - ] - }, - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a member using the `Member` origin.", - "", - " Origin must be a member of the collective." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single member did some action; `bool` is true if returned without error." - ] - } - ], - "constants": [] - }, - { - "name": "TechnicalCommittee", - "storage": { - "prefix": "Instance2Collective", - "items": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current members of the collective. This is stored sorted (just by value)." - ] - } - ] - }, - "calls": [ - { - "name": "set_members", - "args": [ - { - "name": "new_members", - "type": "Vec" - } - ], - "documentation": [ - " Set the collective's membership manually to `new_members`. Be nice to the chain and", - " provide it pre-sorted.", - "", - " Requires root origin." - ] - }, - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a member using the `Member` origin.", - "", - " Origin must be a member of the collective." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single member did some action; `bool` is true if returned without error." - ] - } - ], - "constants": [] - }, - { - "name": "Elections", - "storage": { - "prefix": "Council", - "items": [ - { - "name": "PresentationDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00000000", - "documentation": [ - " How long to give each top candidate to present themselves after the vote ends." - ] - }, - { - "name": "TermDuration", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00000000", - "documentation": [ - " How long each position is active for." - ] - }, - { - "name": "DesiredSeats", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of accounts that should constitute the collective." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BlockNumber)>" - }, - "fallback": "0x00", - "documentation": [ - " The current membership. When there's a vote going on, this should still be used for", - " executive matters. The block number (second element in the tuple) is the block that", - " their position is active until (calculated by the sum of the block number when the", - " member was elected and their term duration)." - ] - }, - { - "name": "VoteCount", - "modifier": "Default", - "type": { - "Plain": "VoteIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of vote rounds that have happened or are in progress." - ] - }, - { - "name": "ApprovalsOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(AccountId,SetIndex)", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "RegisterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(VoteIndex,u32)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The vote index and list slot that the candidate `who` was registered or `None` if they", - " are not currently registered." - ] - }, - { - "name": "VoterInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VoterInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Basic information about a voter." - ] - }, - { - "name": "Voters", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "SetIndex", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The present voter list (chunked and capped at [`VOTER_SET_SIZE`])." - ] - }, - { - "name": "NextVoterSet", - "modifier": "Default", - "type": { - "Plain": "SetIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " the next free set to store a voter in. This will keep growing." - ] - }, - { - "name": "VoterCount", - "modifier": "Default", - "type": { - "Plain": "SetIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current number of Voters." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list." - ] - }, - { - "name": "CandidateCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Current number of active candidates" - ] - }, - { - "name": "NextFinalize", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,u32,Vec)" - }, - "fallback": "0x00", - "documentation": [ - " The accounts holding the seats that will become free on the next tally." - ] - }, - { - "name": "Leaderboard", - "modifier": "Optional", - "type": { - "Plain": "Vec<(BalanceOf,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " Get the leaderboard if we're in the presentation phase. The first element is the weight", - " of each entry; It may be the direct summed approval stakes, or a weighted version of it.", - " Sorted from low to high." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - } - ] - }, - "calls": [ - { - "name": "set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "hint", - "type": "SetIndex" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals. Approval slots stay valid as long as candidates in those slots", - " are registered.", - "", - " Locks `value` from the balance of `origin` indefinitely. Only [`retract_voter`] or", - " [`reap_inactive_voter`] can unlock the balance.", - "", - " `hint` argument is interpreted differently based on:", - " - if `origin` is setting approvals for the first time: The index will be checked for", - " being a valid _hole_ in the voter list.", - " - if the hint is correctly pointing to a hole, no fee is deducted from `origin`.", - " - Otherwise, the call will succeed but the index is ignored and simply a push to the", - " last chunk with free space happens. If the new push causes a new chunk to be", - " created, a fee indicated by [`VotingFee`] is deducted.", - " - if `origin` is already a voter: the index __must__ be valid and point to the correct", - " position of the `origin` in the current voters list.", - "", - " Note that any trailing `false` votes in `votes` is ignored; In approval voting, not", - " voting for a candidate and voting false, are equal.", - "", - " # ", - " - O(1).", - " - Two extra DB entries, one DB change.", - " - Argument `votes` is limited in length to number of candidates.", - " # " - ] - }, - { - "name": "proxy_set_approvals", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "hint", - "type": "SetIndex" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Set candidate approvals from a proxy. Approval slots stay valid as long as candidates in", - " those slots are registered.", - "", - " # ", - " - Same as `set_approvals` with one additional storage read.", - " # " - ] - }, - { - "name": "reap_inactive_voter", - "args": [ - { - "name": "reporter_index", - "type": "Compact" - }, - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "who_index", - "type": "Compact" - }, - { - "name": "assumed_vote_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", - " must now be either unregistered or registered to a candidate that registered the slot", - " after the voter gave their last approval set.", - "", - " Both indices must be provided as explained in [`voter_at`] function.", - "", - " May be called by anyone. Returns the voter deposit to `signed`.", - "", - " # ", - " - O(1).", - " - Two fewer DB entries, one DB change.", - " # " - ] - }, - { - "name": "retract_voter", - "args": [ - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a voter. All votes are cancelled and the voter deposit is returned.", - "", - " The index must be provided as explained in [`voter_at`] function.", - "", - " Also removes the lock on the balance of the voter. See [`do_set_approvals()`].", - "", - " # ", - " - O(1).", - " - Two fewer DB entries, one DB change.", - " # " - ] - }, - { - "name": "submit_candidacy", - "args": [ - { - "name": "slot", - "type": "Compact" - } - ], - "documentation": [ - " Submit oneself for candidacy.", - "", - " Account must have enough transferrable funds in it to pay the bond.", - "", - " NOTE: if `origin` has already assigned approvals via [`set_approvals`],", - " it will NOT have any usable funds to pass candidacy bond and must first retract.", - " Note that setting approvals will lock the entire balance of the voter until", - " retraction or being reported.", - "", - " # ", - " - Independent of input.", - " - Three DB changes.", - " # " - ] - }, - { - "name": "present_winner", - "args": [ - { - "name": "candidate", - "type": "LookupSource" - }, - { - "name": "total", - "type": "Compact" - }, - { - "name": "index", - "type": "Compact" - } - ], - "documentation": [ - " Claim that `candidate` is one of the top `carry_count + desired_seats` candidates. Only", - " works iff the presentation period is active. `candidate` should have at least collected", - " some non-zero `total` votes and `origin` must have enough funds to pay for a potential", - " slash.", - "", - " # ", - " - O(voters) compute.", - " - One DB change.", - " # " - ] - }, - { - "name": "set_desired_seats", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the desired member count; if lower than the current count, then seats will not be up", - " election when they expire. If more, then a new vote will be started if one is not", - " already in progress." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member from the set. This is effective immediately.", - "", - " Note: A tally should happen instantly (if not already in a presentation", - " period) to fill the seat if removal means that the desired members are not met." - ] - }, - { - "name": "set_presentation_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is currently a vote being presented for, will", - " invoke `finalize_vote`." - ] - }, - { - "name": "set_term_duration", - "args": [ - { - "name": "count", - "type": "Compact" - } - ], - "documentation": [ - " Set the presentation duration. If there is current a vote being presented for, will", - " invoke `finalize_vote`." - ] - } - ], - "events": [ - { - "name": "VoterReaped", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " reaped voter, reaper" - ] - }, - { - "name": "BadReaperSlashed", - "args": [ - "AccountId" - ], - "documentation": [ - " slashed reaper" - ] - }, - { - "name": "TallyStarted", - "args": [ - "u32" - ], - "documentation": [ - " A tally (for approval votes of seat(s)) has started." - ] - }, - { - "name": "TallyFinalized", - "args": [ - "Vec", - "Vec" - ], - "documentation": [ - " A tally (for approval votes of seat(s)) has ended (with one or more new members)." - ] - } - ], - "constants": [ - { - "name": "CandidacyBond", - "type": "BalanceOf", - "value": "0x0080c6a47e8d03000000000000000000", - "documentation": [ - " How much should be locked up in order to submit one's candidacy. A reasonable", - " default value is 9." - ] - }, - { - "name": "VotingBond", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " How much should be locked up in order to be able to submit votes." - ] - }, - { - "name": "VotingFee", - "type": "BalanceOf", - "value": "0x0080f420e6b500000000000000000000", - "documentation": [ - " The amount of fee paid upon each vote submission, unless if they submit a", - " _hole_ index and replace it." - ] - }, - { - "name": "PresentSlashPerVoter", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The punishment, per voter, if you provide an invalid presentation. A", - " reasonable default value is 1." - ] - }, - { - "name": "CarryCount", - "type": "u32", - "value": "0x06000000", - "documentation": [ - " How many runners-up should have their approvals persist until the next", - " vote. A reasonable default value is 2." - ] - }, - { - "name": "InactiveGracePeriod", - "type": "VoteIndex", - "value": "0x01000000", - "documentation": [ - " How many vote indices need to go by after a target voter's last vote before", - " they can be reaped if their approvals are moot. A reasonable default value", - " is 1." - ] - }, - { - "name": "VotingPeriod", - "type": "BlockNumber", - "value": "0x00e10000", - "documentation": [ - " How often (in blocks) to check for new votes. A reasonable default value", - " is 1000." - ] - }, - { - "name": "MinimumVotingLock", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Minimum about that can be used as the locked value for voting." - ] - }, - { - "name": "DecayRatio", - "type": "u32", - "value": "0x00000000", - "documentation": [ - " Decay factor of weight when being accumulated. It should typically be set to", - " __at least__ `membership_size -1` to keep the collective secure.", - " When set to `N`, it indicates `(1/N)^t` of staked is decayed at weight", - " increment step `t`. 0 will result in no weight being added at all (normal", - " approval voting). A reasonable default value is 24." - ] - }, - { - "name": "VOTER_SET_SIZE", - "type": "u32", - "value": "0x40000000", - "documentation": [ - " The chunk size of the voter vector." - ] - }, - { - "name": "APPROVAL_SET_SIZE", - "type": "u32", - "value": "0x08000000", - "documentation": [ - " The chunk size of the approval vector." - ] - } - ] - }, - { - "name": "TechnicalMembership", - "storage": { - "prefix": "Instance1Membership", - "items": [ - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current membership, stored as an ordered Vec." - ] - } - ] - }, - "calls": [ - { - "name": "add_member", - "args": [ - { - "name": "who", - "type": "AccountId" - } - ], - "documentation": [ - " Add a member `who` to the set.", - "", - " May only be called from `AddOrigin` or root." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "AccountId" - } - ], - "documentation": [ - " Remove a member `who` from the set.", - "", - " May only be called from `RemoveOrigin` or root." - ] - }, - { - "name": "swap_member", - "args": [ - { - "name": "remove", - "type": "AccountId" - }, - { - "name": "add", - "type": "AccountId" - } - ], - "documentation": [ - " Swap out one member `remove` for another `add`.", - "", - " May only be called from `SwapOrigin` or root." - ] - }, - { - "name": "reset_members", - "args": [ - { - "name": "members", - "type": "Vec" - } - ], - "documentation": [ - " Change the membership to a new set, disregarding the existing membership. Be nice and", - " pass `members` pre-sorted.", - "", - " May only be called from `ResetOrigin` or root." - ] - } - ], - "events": [ - { - "name": "MemberAdded", - "args": [], - "documentation": [ - " The given member was added; see the transaction for who." - ] - }, - { - "name": "MemberRemoved", - "args": [], - "documentation": [ - " The given member was removed; see the transaction for who." - ] - }, - { - "name": "MembersSwapped", - "args": [], - "documentation": [ - " Two members were swapped; see the transaction for who." - ] - }, - { - "name": "MembersReset", - "args": [], - "documentation": [ - " The membership was reset; see the transaction for who the new set is." - ] - }, - { - "name": "Dummy", - "args": [ - "PhantomData" - ], - "documentation": [ - " Phantom member, never used." - ] - } - ], - "constants": [] - }, - { - "name": "FinalityTracker", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null, - "constants": [ - { - "name": "WindowSize", - "type": "BlockNumber", - "value": "0x65000000", - "documentation": [ - " The number of recent samples to keep from this chain. Default is 101." - ] - }, - { - "name": "ReportLatency", - "type": "BlockNumber", - "value": "0xe8030000", - "documentation": [ - " The delay after which point things become suspicious. Default is 1000." - ] - } - ] - }, - { - "name": "Grandpa", - "storage": { - "prefix": "GrandpaFinality", - "items": [ - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "Vec<(AuthorityId,AuthorityWeight)>" - }, - "fallback": "0x00", - "documentation": [ - " The current authority set." - ] - }, - { - "name": "State", - "modifier": "Default", - "type": { - "Plain": "StoredState" - }, - "fallback": "0x00", - "documentation": [ - " State of the current authority set." - ] - }, - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [ - " Pending change: (signaled at, scheduled change)." - ] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " next block number where we can force a change." - ] - }, - { - "name": "Stalled", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,BlockNumber)" - }, - "fallback": "0x00", - "documentation": [ - " `true` if we are currently stalled." - ] - }, - { - "name": "CurrentSetId", - "modifier": "Default", - "type": { - "Plain": "SetId" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The number of changes (both in terms of keys and underlying economic responsibilities)", - " in the \"set\" of Grandpa validators from genesis." - ] - }, - { - "name": "SetIdSession", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "SetId", - "value": "SessionIndex", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible." - ] - } - ] - }, - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "Vec<(AuthorityId,AuthorityWeight)>" - ], - "documentation": [ - " New authority set has been applied." - ] - }, - { - "name": "Paused", - "args": [], - "documentation": [ - " Current authority set has been paused." - ] - }, - { - "name": "Resumed", - "args": [], - "documentation": [ - " Current authority set has been resumed." - ] - } - ], - "constants": [] - }, - { - "name": "Treasury", - "storage": { - "prefix": "Treasury", - "items": [ - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ] - }, - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change, one extra DB entry.", - " # " - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB clear.", - " # " - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - } - ], - "constants": [ - { - "name": "ProposalBond", - "type": "Permill", - "value": "0x50c30000", - "documentation": [ - " 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." - ] - }, - { - "name": "ProposalBondMinimum", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "type": "BlockNumber", - "value": "0x80700000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "type": "Permill", - "value": "0x20a10700", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - } - ] - }, - { - "name": "Contracts", - "storage": { - "prefix": "Contract", - "items": [ - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter." - ] - }, - { - "name": "ContractInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ContractInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - } - ] - }, - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", - " You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "instantiate", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", - "", - " Instantiation is executed as follows:", - "", - " - The destination address is computed based on the sender and hash of the code.", - " - The smart-contract account is created at the computed address.", - " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any call received by this account.", - " - The contract is initialized." - ] - }, - { - "name": "claim_surcharge", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "aux_sender", - "type": "Option" - } - ], - "documentation": [ - " 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.", - "", - " If contract is not evicted as a result of this call, no actions are taken and", - " the sender is not eligible for the reward." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - }, - { - "name": "Contract", - "args": [ - "AccountId", - "Bytes" - ], - "documentation": [ - " An event from contract of account." - ] - } - ], - "constants": [ - { - "name": "SignedClaimHandicap", - "type": "BlockNumber", - "value": "0x02000000", - "documentation": [ - " 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" - ] - }, - { - "name": "TombstoneDeposit", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " The minimum amount required to generate a tombstone." - ] - }, - { - "name": "StorageSizeOffset", - "type": "u32", - "value": "0x08000000", - "documentation": [ - " Size of a contract at the time of instantiaion. This is a simple way to ensure that", - " empty contracts eventually gets deleted." - ] - }, - { - "name": "RentByteFee", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Price of a byte of storage per one block interval. Should be greater than 0." - ] - }, - { - "name": "RentDepositOffset", - "type": "BalanceOf", - "value": "0x00008a5d784563010000000000000000", - "documentation": [ - " The amount of funds a contract should deposit in order to offset", - " the cost of one byte.", - "", - " 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." - ] - }, - { - "name": "SurchargeReward", - "type": "BalanceOf", - "value": "0x0080a1a76b4a35000000000000000000", - "documentation": [ - " Reward that is received by the party whose touch has led", - " to removal of a contract." - ] - }, - { - "name": "TransferFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "type": "BalanceOf", - "value": "0x00e40b54020000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "ContractFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to instantiate a contract instance. A reasonable default value", - " is 21." - ] - }, - { - "name": "CallBaseFee", - "type": "Gas", - "value": "0xe803000000000000", - "documentation": [ - " The base fee charged for calling into a contract. A reasonable default", - " value is 135." - ] - }, - { - "name": "InstantiateBaseFee", - "type": "Gas", - "value": "0xe803000000000000", - "documentation": [ - " The base fee charged for instantiating a contract. A reasonable default value", - " is 175." - ] - }, - { - "name": "MaxDepth", - "type": "u32", - "value": "0x00040000", - "documentation": [ - " The maximum nesting level of a call/instantiate stack. A reasonable default", - " value is 100." - ] - }, - { - "name": "MaxValueSize", - "type": "u32", - "value": "0x00400000", - "documentation": [ - " The maximum size of a storage value in bytes. A reasonable default is 16 KiB." - ] - }, - { - "name": "BlockGasLimit", - "type": "Gas", - "value": "0x8096980000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block. A reasonable", - " default value is 10_000_000." - ] - } - ] - }, - { - "name": "Sudo", - "storage": { - "prefix": "Sudo", - "items": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " The `AccountId` of the sudo key." - ] - } - ] - }, - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " 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).", - " - Unknown weight of derivative `proposal` execution.", - " # " - ] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - " # " - ] - }, - { - "name": "sudo_as", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " 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).", - " - Unknown weight of derivative `proposal` execution.", - " # " - ] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - }, - { - "name": "SudoAsDone", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - } - ], - "constants": [] - }, - { - "name": "ImOnline", - "storage": { - "prefix": "ImOnline", - "items": [ - { - "name": "GossipAt", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00000000", - "documentation": [ - " The block number when we should gossip." - ] - }, - { - "name": "Keys", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of keys that may issue a heartbeat." - ] - }, - { - "name": "ReceivedHeartbeats", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "SessionIndex", - "key2": "AuthIndex", - "value": "Bytes", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " For each session index we keep a mapping of `AuthorityId`", - " to `offchain::OpaqueNetworkState`." - ] - } - ] - }, - "calls": [ - { - "name": "heartbeat", - "args": [ - { - "name": "heartbeat", - "type": "Heartbeat" - }, - { - "name": "signature", - "type": "Signature" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "HeartbeatReceived", - "args": [ - "AuthorityId" - ], - "documentation": [ - " A new heartbeat was received from `AuthorityId`" - ] - } - ], - "constants": [] - }, - { - "name": "AuthorityDiscovery", - "storage": null, - "calls": [], - "events": null, - "constants": [] - }, - { - "name": "Offences", - "storage": { - "prefix": "Offences", - "items": [ - { - "name": "Reports", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReportIdOf", - "value": "OffenceDetails", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The primary structure that holds all offence records keyed by report identifiers." - ] - }, - { - "name": "ConcurrentReportsIndex", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "Kind", - "key2": "OpaqueTimeSlot", - "value": "Vec", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " A vector of reports of the same kind that happened at the same time slot." - ] - }, - { - "name": "ReportsByKindIndex", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Kind", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - } - ] - }, - "calls": [], - "events": [ - { - "name": "Offence", - "args": [ - "Kind", - "OpaqueTimeSlot" - ], - "documentation": [ - " 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." - ] - } - ], - "constants": [] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v7/static.ts b/packages/metadata/src/Metadata/v7/static.ts deleted file mode 100644 index d1fd3de986..0000000000 --- a/packages/metadata/src/Metadata/v7/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746107581853797374656d011853797374656d3c304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e504e6578745765696768744d756c7469706c6965720100405765696768744d756c7469706c69657220000000000000000008650120546865206e65787420776569676874206d756c7469706c6965722e20546869732073686f756c6420626520757064617465642061742074686520656e64206f66206561636820626c6f636b206261736564206f6e207468656c2073617475726174696f6e206c6576656c2028776569676874292e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e3852616e646f6d4d6174657269616c0100482869382c205665633c543a3a486173683e2908000008a50120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e205468697320697320617272616e676564206173206151012072696e6720627566666572207769746820746865206069386020707265666978206265696e672074686520696e64657820696e746f20746865206056656360206f6620746865206f6c6465737420686173682e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e011c2866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564043444697370617463684572726f72045420416e2065787472696e736963206661696c65642e001c5574696c697479000104146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e04b02053656e642061206261746368206f662064697370617463682063616c6c7320286f6e6c7920726f6f74292e0104344261746368457865637574656404785665633c526573756c743c28292c2044697370617463684572726f723e3e00001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e2454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e28417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e010c207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e5cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742ce82069742077696c6c20726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e14484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e4261736546656528543a3a42616c616e6365400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656528543a3a42616c616e63654000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c5374616b696e67011c5374616b696e674c3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727301010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e3c457261536c6173684a6f75726e616c01010120457261496e646578c85665633c536c6173684a6f75726e616c456e7472793c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004bc20416c6c20736c617368657320746861742068617665206f6363757272656420696e206120676976656e206572612e013410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e2ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002041c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002041c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e2444656d6f6372616379012444656d6f63726163793c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00007028543a3a50726f706f73616c2c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01441c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479042070726f706f73616c40426f783c543a3a50726f706f73616c3e145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74042070726f706f73616c40426f783c543a3a50726f706f73616c3e144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572205101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e2d01202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265f0202020656e61637465642e20496e6372656173656420746f2060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e012c2050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e003845787465726e616c5461626c656400001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e74496400185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657200183c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e1c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0048546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0024456c656374696f6e73011c436f756e63696c405050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d6265721000000000043d0120486f77206c6f6e6720746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d6265721000000000049820486f77206c6f6e67206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c6420636f6e737469747574652074686520636f6c6c6563746976652e1c4d656d6265727301008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e040010550120205468652063757272656e74206d656d626572736869702e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f7255012020657865637574697665206d6174746572732e2054686520626c6f636b206e756d62657220287365636f6e6420656c656d656e7420696e20746865207475706c65292069732074686520626c6f636b207468617451012020746865697220706f736974696f6e2069732061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e20746865b820206d656d6265722077617320656c656374656420616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e6465781000000000041d012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f660101016028543a3a4163636f756e7449642c20536574496e64657829445665633c417070726f76616c466c61673e00040000385265676973746572496e666f4f6600010130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400085d012054686520766f746520696e64657820616e64206c69737420736c6f742074686174207468652063616e646964617465206077686f60207761732072656769737465726564206f7220604e6f6e656020696620746865797820617265206e6f742063757272656e746c7920726567697374657265642e2c566f746572496e666f4f6600010130543a3a4163636f756e7449645c566f746572496e666f3c42616c616e63654f663c543e3e000400048420426173696320696e666f726d6174696f6e2061626f7574206120766f7465722e18566f7465727301010120536574496e646578645665633c4f7074696f6e3c543a3a4163636f756e7449643e3e000400040d01205468652070726573656e7420766f746572206c69737420286368756e6b656420616e6420636170706564206174205b60564f5445525f5345545f53495a45605d292e304e657874566f746572536574010020536574496e646578100000000004fc20746865206e65787420667265652073657420746f2073746f7265206120766f74657220696e2e20546869732077696c6c206b6565702067726f77696e672e28566f746572436f756e74010020536574496e646578100000000004682043757272656e74206e756d626572206f6620566f746572732e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c753332100000000004902043757272656e74206e756d626572206f66206163746976652063616e64696461746573304e65787446696e616c697a650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040004210120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e04000c61012047657420746865206c6561646572626f61726420696620776527726520696e207468652070726573656e746174696f6e2070686173652e2054686520666972737420656c656d656e7420697320746865207765696768746501206f66206561636820656e7472793b204974206d617920626520746865206469726563742073756d6d656420617070726f76616c207374616b65732c206f7220612077656967687465642076657273696f6e206f662069742e6420536f727465642066726f6d206c6f7720746f20686967682e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e0128347365745f617070726f76616c731014766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e1068696e7420536574496e6465781476616c756554436f6d706163743c42616c616e63654f663c543e3e606101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e004d01204c6f636b73206076616c7565602066726f6d207468652062616c616e6365206f6620606f726967696e6020696e646566696e6974656c792e204f6e6c79205b60726574726163745f766f746572605d206f72c0205b60726561705f696e6163746976655f766f746572605d2063616e20756e6c6f636b207468652062616c616e63652e00d4206068696e746020617267756d656e7420697320696e74657270726574656420646966666572656e746c79206261736564206f6e3a5501202d20696620606f726967696e602069732073657474696e6720617070726f76616c7320666f72207468652066697273742074696d653a2054686520696e6465782077696c6c20626520636865636b656420666f72a82020206265696e6720612076616c6964205f686f6c655f20696e2074686520766f746572206c6973742e4d012020202d206966207468652068696e7420697320636f72726563746c7920706f696e74696e6720746f206120686f6c652c206e6f206665652069732064656475637465642066726f6d20606f726967696e602e5d012020202d204f74686572776973652c207468652063616c6c2077696c6c2073756363656564206275742074686520696e6465782069732069676e6f72656420616e642073696d706c792061207075736820746f20746865450120202020206c617374206368756e6b207769746820667265652073706163652068617070656e732e20496620746865206e65772070757368206361757365732061206e6577206368756e6b20746f206265ec2020202020637265617465642c20612066656520696e64696361746564206279205b60566f74696e67466565605d2069732064656475637465642e5d01202d20696620606f726967696e6020697320616c7265616479206120766f7465723a2074686520696e646578205f5f6d7573745f5f2062652076616c696420616e6420706f696e7420746f2074686520636f7272656374dc202020706f736974696f6e206f662074686520606f726967696e6020696e207468652063757272656e7420766f74657273206c6973742e005101204e6f7465207468617420616e7920747261696c696e67206066616c73656020766f74657320696e2060766f746573602069732069676e6f7265643b20496e20617070726f76616c20766f74696e672c206e6f74d020766f74696e6720666f7220612063616e64696461746520616e6420766f74696e672066616c73652c2061726520657175616c2e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20657874726120444220656e74726965732c206f6e65204442206368616e67652e0501202d20417267756d656e742060766f74657360206973206c696d6974656420696e206c656e67746820746f206e756d626572206f662063616e646964617465732e302023203c2f7765696768743e4c70726f78795f7365745f617070726f76616c731014766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e1068696e7420536574496e6465781476616c756554436f6d706163743c42616c616e63654f663c543e3e186501205365742063616e64696461746520617070726f76616c732066726f6d20612070726f78792e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e702074686f736520736c6f74732061726520726567697374657265642e002c2023203c7765696768743ef0202d2053616d6520617320607365745f617070726f76616c73602077697468206f6e65206164646974696f6e616c2073746f7261676520726561642e302023203c2f7765696768743e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e3061012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365735901206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74b82061667465722074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e00150120426f746820696e6469636573206d7573742062652070726f7669646564206173206578706c61696e656420696e205b60766f7465725f6174605d2066756e6374696f6e2e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20666577657220444220656e74726965732c206f6e65204442206368616e67652e302023203c2f7765696768743e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e282d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e0009012054686520696e646578206d7573742062652070726f7669646564206173206578706c61696e656420696e205b60766f7465725f6174605d2066756e6374696f6e2e003d0120416c736f2072656d6f76657320746865206c6f636b206f6e207468652062616c616e6365206f662074686520766f7465722e20536565205b60646f5f7365745f617070726f76616c732829605d2e002c2023203c7765696768743e20202d204f2831292e9c202d2054776f20666577657220444220656e74726965732c206f6e65204442206368616e67652e302023203c2f7765696768743e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e3478205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e002101204e4f54453a20696620606f726967696e602068617320616c72656164792061737369676e656420617070726f76616c7320766961205b607365745f617070726f76616c73605d2c45012069742077696c6c204e4f54206861766520616e7920757361626c652066756e647320746f20706173732063616e64696461637920626f6e6420616e64206d75737420666972737420726574726163742e3101204e6f746520746861742073657474696e6720617070726f76616c732077696c6c206c6f636b2074686520656e746972652062616c616e6365206f662074686520766f74657220756e74696c782072657472616374696f6e206f72206265696e67207265706f727465642e002c2023203c7765696768743e60202d20496e646570656e64656e74206f6620696e7075742e50202d205468726565204442206368616e6765732e302023203c2f7765696768743e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e24610120436c61696d2074686174206063616e64696461746560206973206f6e65206f662074686520746f70206063617272795f636f756e74202b20646573697265645f7365617473602063616e646964617465732e204f6e6c79610120776f726b7320696666207468652070726573656e746174696f6e20706572696f64206973206163746976652e206063616e646964617465602073686f756c642068617665206174206c6561737420636f6c6c65637465645d0120736f6d65206e6f6e2d7a65726f2060746f74616c6020766f74657320616e6420606f726967696e60206d757374206861766520656e6f7567682066756e647320746f2070617920666f72206120706f74656e7469616c1c20736c6173682e002c2023203c7765696768743e54202d204f28766f746572732920636f6d707574652e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c650120536574207468652064657369726564206d656d62657220636f756e743b206966206c6f776572207468616e207468652063757272656e7420636f756e742c207468656e2073656174732077696c6c206e6f74206265207570490120656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c2062652073746172746564206966206f6e65206973206e6f745420616c726561647920696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651021012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c792e002101204e6f74653a20412074616c6c792073686f756c642068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e410120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206d656d6265727320617265206e6f74206d65742e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08590120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e746c79206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08510120536574207468652070726573656e746174696f6e206475726174696f6e2e2049662074686572652069732063757272656e74206120766f7465206265696e672070726573656e74656420666f722c2077696c6c6020696e766f6b65206066696e616c697a655f766f7465602e01102c566f74657252656170656408244163636f756e744964244163636f756e74496404542072656170656420766f7465722c2072656170657240426164526561706572536c617368656404244163636f756e744964043c20736c6173686564207265617065723054616c6c7953746172746564040c75333204d420412074616c6c792028666f7220617070726f76616c20766f746573206f662073656174287329292068617320737461727465642e3854616c6c7946696e616c697a656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04490120412074616c6c792028666f7220617070726f76616c20766f746573206f662073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e2c3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000008390120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e204120726561736f6e61626c65502064656661756c742076616c756520697320392e28566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a0000000000000000000004090120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e24566f74696e674665653042616c616e63654f663c543e400080f420e6b5000000000000000000000829012054686520616d6f756e74206f662066656520706169642075706f6e206561636820766f7465207375626d697373696f6e2c20756e6c6573732069662074686579207375626d6974206174205f686f6c655f20696e64657820616e64207265706c6163652069742e5050726573656e74536c617368506572566f7465723042616c616e63654f663c543e400010a5d4e80000000000000000000000081501205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e20417c20726561736f6e61626c652064656661756c742076616c756520697320312e284361727279436f756e740c7533321006000000081d0120486f77206d616e792072756e6e6572732d75702073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e6578749c20766f74652e204120726561736f6e61626c652064656661756c742076616c756520697320322e4c496e6163746976654772616365506572696f6424566f7465496e64657810010000000c310120486f77206d616e7920766f746520696e6469636573206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f72652d0120746865792063616e2062652072656170656420696620746865697220617070726f76616c7320617265206d6f6f742e204120726561736f6e61626c652064656661756c742076616c75651820697320312e30566f74696e67506572696f6438543a3a426c6f636b4e756d6265721000e1000008250120486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e204120726561736f6e61626c652064656661756c742076616c75652420697320313030302e444d696e696d756d566f74696e674c6f636b3042616c616e63654f663c543e4000407a10f35a0000000000000000000004fc204d696e696d756d2061626f757420746861742063616e206265207573656420617320746865206c6f636b65642076616c756520666f7220766f74696e672e284465636179526174696f0c753332100000000014350120446563617920666163746f72206f6620776569676874207768656e206265696e6720616363756d756c617465642e2049742073686f756c64207479706963616c6c792062652073657420746f0501205f5f6174206c656173745f5f20606d656d626572736869705f73697a65202d316020746f206b6565702074686520636f6c6c656374697665207365637572652e1d01205768656e2073657420746f20604e602c20697420696e64696361746573206028312f4e295e7460206f66207374616b6564206973206465636179656420617420776569676874290120696e6372656d656e742073746570206074602e20302077696c6c20726573756c7420696e206e6f20776569676874206265696e6720616464656420617420616c6c20286e6f726d616cd020617070726f76616c20766f74696e67292e204120726561736f6e61626c652064656661756c742076616c75652069732032342e38564f5445525f5345545f53495a450c7533321040000000049020546865206368756e6b2073697a65206f662074686520766f74657220766563746f722e44415050524f56414c5f5345545f53495a450c7533321008000000049c20546865206368756e6b2073697a65206f662074686520617070726f76616c20766563746f722e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0110286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e01142c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e1444756d6d7904b4727374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e1c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f72697469657301008c5665633c28417574686f7269747949642c20417574686f72697479576569676874293e0400046c205468652063757272656e7420617574686f72697479207365742e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f726974696573048c5665633c28417574686f7269747949642c20417574686f72697479576569676874293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e103050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e24436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332100004000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e0020496d4f6e6c696e650120496d4f6e6c696e650c20476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730102013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e820466f7220656163682073657373696f6e20696e646578207765206b6565702061206d617070696e67206f662060417574686f726974794964608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e247369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265000104444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964600048417574686f72697479446973636f766572790001000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v7/toV8.ts b/packages/metadata/src/Metadata/v7/toV8.ts deleted file mode 100644 index 2b010b469f..0000000000 --- a/packages/metadata/src/Metadata/v7/toV8.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV7, MetadataV8, ModuleMetadataV8 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -/** @internal */ -export default function toV8 (registry: Registry, { modules }: MetadataV7): MetadataV8 { - return registry.createType('MetadataV8', { - modules: modules.map(({ calls, constants, events, name, storage }): ModuleMetadataV8 => - registry.createType('ModuleMetadataV8', { - calls, - constants, - errors: [], - events, - name, - storage - }) - ) - }); -} diff --git a/packages/metadata/src/Metadata/v8/Metadata.spec.ts b/packages/metadata/src/Metadata/v8/Metadata.spec.ts deleted file mode 100644 index 70c3db2a4e..0000000000 --- a/packages/metadata/src/Metadata/v8/Metadata.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { TypeRegistry } from '@polkadot/types'; - -import substrateJson from './static-substrate.json'; -import substrateData from './static'; -import { decodeLatestSubstrate, defaultValues, toLatest } from '../util/testUtil'; - -describe('MetadataV8 (substrate)', (): void => { - const registry = new TypeRegistry(); - - decodeLatestSubstrate(registry, 8, substrateData, substrateJson); - - toLatest(registry, 8, substrateData); - - defaultValues(registry, substrateData); -}); diff --git a/packages/metadata/src/Metadata/v8/static-substrate.json b/packages/metadata/src/Metadata/v8/static-substrate.json deleted file mode 100644 index c2cb076488..0000000000 --- a/packages/metadata/src/Metadata/v8/static-substrate.json +++ /dev/null @@ -1,4713 +0,0 @@ -{ - "magicNumber": 1635018093, - "metadata": { - "V8": { - "modules": [ - { - "name": "System", - "storage": { - "prefix": "System", - "items": [ - { - "name": "AccountNonce", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Index", - "linked": false - } - }, - "fallback": "0x00000000", - "documentation": [ - " Extrinsics nonce for accounts." - ] - }, - { - "name": "ExtrinsicCount", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total extrinsics count for the current block." - ] - }, - { - "name": "AllExtrinsicsWeight", - "modifier": "Optional", - "type": { - "Plain": "Weight" - }, - "fallback": "0x00", - "documentation": [ - " Total weight for all extrinsics put together, for the current block." - ] - }, - { - "name": "AllExtrinsicsLen", - "modifier": "Optional", - "type": { - "Plain": "u32" - }, - "fallback": "0x00", - "documentation": [ - " Total length (in bytes) for all extrinsics put together, for the current block." - ] - }, - { - "name": "BlockHash", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Hash", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Map of block numbers to block hashes." - ] - }, - { - "name": "ExtrinsicData", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Extrinsics data for the current block (maps an extrinsic's index to its data)." - ] - }, - { - "name": "Number", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00000000", - "documentation": [ - " The current block number being processed. Set by `execute_block`." - ] - }, - { - "name": "ParentHash", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Hash of the previous block." - ] - }, - { - "name": "ExtrinsicsRoot", - "modifier": "Default", - "type": { - "Plain": "Hash" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Extrinsics root of the current block, also part of the block header." - ] - }, - { - "name": "Digest", - "modifier": "Default", - "type": { - "Plain": "DigestOf" - }, - "fallback": "0x00", - "documentation": [ - " Digest of the current block, also part of the block header." - ] - }, - { - "name": "Events", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Events deposited for the current block." - ] - }, - { - "name": "EventCount", - "modifier": "Default", - "type": { - "Plain": "EventIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of events in the `Events` list." - ] - }, - { - "name": "EventTopics", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "()", - "key2": "Hash", - "value": "Vec<(BlockNumber,EventIndex)>", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " Mapping between a topic (represented by T::Hash) and a vector of indexes", - " of events in the `>` list.", - "", - " The first key serves no purpose. This field is declared as double_map just", - " for convenience of using `remove_prefix`.", - "", - " 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." - ] - } - ] - }, - "calls": [ - { - "name": "fill_block", - "args": [], - "documentation": [ - " A big dispatch that will disallow any other transaction to be included." - ] - }, - { - "name": "remark", - "args": [ - { - "name": "_remark", - "type": "Bytes" - } - ], - "documentation": [ - " Make some on-chain remark." - ] - }, - { - "name": "set_heap_pages", - "args": [ - { - "name": "pages", - "type": "u64" - } - ], - "documentation": [ - " Set the number of pages in the WebAssembly environment's heap." - ] - }, - { - "name": "set_code", - "args": [ - { - "name": "new", - "type": "Bytes" - } - ], - "documentation": [ - " Set the new code." - ] - }, - { - "name": "set_storage", - "args": [ - { - "name": "items", - "type": "Vec" - } - ], - "documentation": [ - " Set some items of storage." - ] - }, - { - "name": "kill_storage", - "args": [ - { - "name": "keys", - "type": "Vec" - } - ], - "documentation": [ - " Kill some items from storage." - ] - }, - { - "name": "kill_prefix", - "args": [ - { - "name": "prefix", - "type": "Key" - } - ], - "documentation": [ - " Kill all storage items with a key that starts with the given prefix." - ] - } - ], - "events": [ - { - "name": "ExtrinsicSuccess", - "args": [], - "documentation": [ - " An extrinsic completed successfully." - ] - }, - { - "name": "ExtrinsicFailed", - "args": [ - "DispatchError" - ], - "documentation": [ - " An extrinsic failed." - ] - } - ], - "constants": [], - "errors": [ - { - "name": "BadSignature", - "documentation": [] - }, - { - "name": "BlockFull", - "documentation": [] - }, - { - "name": "RequireSignedOrigin", - "documentation": [] - }, - { - "name": "RequireRootOrigin", - "documentation": [] - }, - { - "name": "RequireNoOrigin", - "documentation": [] - } - ] - }, - { - "name": "Utility", - "storage": null, - "calls": [ - { - "name": "batch", - "args": [ - { - "name": "calls", - "type": "Vec" - } - ], - "documentation": [ - " Send a batch of dispatch calls (only root)." - ] - } - ], - "events": [ - { - "name": "BatchExecuted", - "args": [ - "Vec>" - ], - "documentation": [] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "Babe", - "storage": { - "prefix": "Babe", - "items": [ - { - "name": "EpochIndex", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current epoch index." - ] - }, - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" - }, - "fallback": "0x00", - "documentation": [ - " Current epoch authorities." - ] - }, - { - "name": "GenesisSlot", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The slot at which the first epoch actually started. This is 0", - " until the first block of the chain." - ] - }, - { - "name": "CurrentSlot", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current slot number." - ] - }, - { - "name": "Randomness", - "modifier": "Default", - "type": { - "Plain": "[u8;32]" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " 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." - ] - }, - { - "name": "NextRandomness", - "modifier": "Default", - "type": { - "Plain": "[u8;32]" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Next epoch randomness." - ] - }, - { - "name": "SegmentIndex", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " 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." - ] - }, - { - "name": "UnderConstruction", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "u32", - "value": "Vec<[u8;32]>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [] - }, - { - "name": "Initialized", - "modifier": "Optional", - "type": { - "Plain": "MaybeVrf" - }, - "fallback": "0x00", - "documentation": [ - " Temporary value (cleared at block finalization) which is `Some`", - " if per-block initialization has already been called for current block." - ] - } - ] - }, - "calls": [], - "events": null, - "constants": [ - { - "name": "EpochDuration", - "type": "u64", - "value": "0xc800000000000000", - "documentation": [ - " The number of **slots** that an epoch takes. We couple sessions to", - " epochs, i.e. we start a new session once the new epoch begins." - ] - }, - { - "name": "ExpectedBlockTime", - "type": "Moment", - "value": "0xb80b000000000000", - "documentation": [ - " 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": [] - }, - { - "name": "Timestamp", - "storage": { - "prefix": "Timestamp", - "items": [ - { - "name": "Now", - "modifier": "Default", - "type": { - "Plain": "Moment" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Current time for the current block." - ] - }, - { - "name": "DidUpdate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Did the timestamp get updated in this block?" - ] - } - ] - }, - "calls": [ - { - "name": "set", - "args": [ - { - "name": "now", - "type": "Compact" - } - ], - "documentation": [ - " 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`." - ] - } - ], - "events": null, - "constants": [ - { - "name": "MinimumPeriod", - "type": "Moment", - "value": "0xdc05000000000000", - "documentation": [ - " 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": [] - }, - { - "name": "Authorship", - "storage": { - "prefix": "Authorship", - "items": [ - { - "name": "Uncles", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Uncles" - ] - }, - { - "name": "Author", - "modifier": "Optional", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x00", - "documentation": [ - " Author of current block." - ] - }, - { - "name": "DidSetUncles", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Whether uncles were already set in this block." - ] - } - ] - }, - "calls": [ - { - "name": "set_uncles", - "args": [ - { - "name": "new_uncles", - "type": "Vec
" - } - ], - "documentation": [ - " Provide a set of uncles." - ] - } - ], - "events": null, - "constants": [], - "errors": [] - }, - { - "name": "Indices", - "storage": { - "prefix": "Indices", - "items": [ - { - "name": "NextEnumSet", - "modifier": "Default", - "type": { - "Plain": "AccountIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free enumeration set." - ] - }, - { - "name": "EnumSet", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The enumeration sets." - ] - } - ] - }, - "calls": [], - "events": [ - { - "name": "NewAccountIndex", - "args": [ - "AccountId", - "AccountIndex" - ], - "documentation": [ - " A new account index was assigned.", - "", - " This event is not triggered when an existing index is reassigned", - " to another `AccountId`." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "Balances", - "storage": { - "prefix": "Balances", - "items": [ - { - "name": "TotalIssuance", - "modifier": "Default", - "type": { - "Plain": "Balance" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The total units issued in the system." - ] - }, - { - "name": "Vesting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "VestingSchedule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information regarding the vesting of a given account." - ] - }, - { - "name": "FreeBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The 'free' balance of a given account.", - "", - " This is the only balance that matters in terms of most operations on tokens. It", - " alone is used to determine the balance when in the contract execution environment. When this", - " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", - " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", - " is invoked, giving a chance to external modules to clean up data associated with", - " the deleted account.", - "", - " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`." - ] - }, - { - "name": "ReservedBalance", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Balance", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of the balance of a given account that is externally reserved; this can still get", - " slashed, but gets slashed last of all.", - "", - " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", - " that are still 'owned' by the account holder, but which are suspendable.", - "", - " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", - " is deleted: specifically, `ReservedBalance`.", - "", - " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", - " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" - ] - }, - { - "name": "Locks", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Any liquidity locks on some account balances." - ] - } - ] - }, - "calls": [ - { - "name": "transfer", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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 types. 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` and `T::OnFreeBalanceZero::on_free_balance_zero`.", - " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", - " check that the transfer will not kill the origin account.", - "", - " # " - ] - }, - { - "name": "set_balance", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "new_free", - "type": "Compact" - }, - { - "name": "new_reserved", - "type": "Compact" - } - ], - "documentation": [ - " 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 (`system::AccountNonce`).", - "", - " The dispatch origin for this call is `root`.", - "", - " # ", - " - Independent of the arguments.", - " - Contains a limited number of reads and writes.", - " # " - ] - }, - { - "name": "force_transfer", - "args": [ - { - "name": "source", - "type": "LookupSource" - }, - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Exactly as `transfer`, except the origin must be root and the source account may be", - " specified." - ] - }, - { - "name": "transfer_keep_alive", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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.Module.html#method.transfer" - ] - } - ], - "events": [ - { - "name": "NewAccount", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A new account was created." - ] - }, - { - "name": "ReapedAccount", - "args": [ - "AccountId" - ], - "documentation": [ - " An account was reaped." - ] - }, - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance", - "Balance" - ], - "documentation": [ - " Transfer succeeded (from, to, value, fees)." - ] - } - ], - "constants": [ - { - "name": "ExistentialDeposit", - "type": "Balance", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " The minimum amount required to keep an account open." - ] - }, - { - "name": "TransferFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "type": "Balance", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - } - ], - "errors": [] - }, - { - "name": "TransactionPayment", - "storage": { - "prefix": "Balances", - "items": [ - { - "name": "NextFeeMultiplier", - "modifier": "Default", - "type": { - "Plain": "Multiplier" - }, - "fallback": "0x0000000000000000", - "documentation": [] - } - ] - }, - "calls": null, - "events": null, - "constants": [ - { - "name": "TransactionBaseFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "type": "BalanceOf", - "value": "0x00e40b54020000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - } - ], - "errors": [] - }, - { - "name": "Staking", - "storage": { - "prefix": "Staking", - "items": [ - { - "name": "ValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The ideal number of staking participants." - ] - }, - { - "name": "MinimumValidatorCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x04000000", - "documentation": [ - " Minimum number of staking participants before emergency conditions are imposed." - ] - }, - { - "name": "Invulnerables", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Bonded", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all locked \"stash\" accounts to the controller account." - ] - }, - { - "name": "Ledger", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "StakingLedger", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." - ] - }, - { - "name": "Payee", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "RewardDestination", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Where the reward payment should be made. Keyed by stash." - ] - }, - { - "name": "Validators", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ValidatorPrefs", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from (wannabe) validator stash key to the preferences of that validator." - ] - }, - { - "name": "Nominators", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Nominations", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " The map from nominator stash key to the set of stash keys of all validators to nominate.", - "", - " NOTE: is private so that we can ensure upgraded before all typical accesses.", - " Direct storage APIs can still bypass this protection." - ] - }, - { - "name": "Stakers", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Exposure", - "linked": false - } - }, - "fallback": "0x000000", - "documentation": [ - " Nominators for a particular account that is in action right now. You can't iterate", - " through validators here, but you can find them in the Session module.", - "", - " This is keyed by the stash account." - ] - }, - { - "name": "CurrentElected", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The currently elected validator set keyed by stash account ID." - ] - }, - { - "name": "CurrentEra", - "modifier": "Default", - "type": { - "Plain": "EraIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The current era index." - ] - }, - { - "name": "CurrentEraStart", - "modifier": "Default", - "type": { - "Plain": "MomentOf" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The start of the current era." - ] - }, - { - "name": "CurrentEraStartSessionIndex", - "modifier": "Default", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The session index at which the current era started." - ] - }, - { - "name": "CurrentEraPointsEarned", - "modifier": "Default", - "type": { - "Plain": "EraPoints" - }, - "fallback": "0x0000000000", - "documentation": [ - " Rewards for the current era. Using indices of current elected set." - ] - }, - { - "name": "SlotStake", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of balance actively at stake for each validator slot, currently.", - "", - " This is used to derive rewards and punishments." - ] - }, - { - "name": "ForceEra", - "modifier": "Default", - "type": { - "Plain": "Forcing" - }, - "fallback": "0x00", - "documentation": [ - " True if the next session change will be a new era regardless of index." - ] - }, - { - "name": "SlashRewardFraction", - "modifier": "Default", - "type": { - "Plain": "Perbill" - }, - "fallback": "0x00000000", - "documentation": [ - " The percentage of the slash that is distributed to reporters.", - "", - " The rest of the slashed value is handled by the `Slash`." - ] - }, - { - "name": "CanceledSlashPayout", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " The amount of currency given to reporters of a slash event which was", - " canceled by extraordinary circumstances (e.g. governance)." - ] - }, - { - "name": "UnappliedSlashes", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "EraIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " All unapplied slashes that are queued for later." - ] - }, - { - "name": "BondedEras", - "modifier": "Default", - "type": { - "Plain": "Vec<(EraIndex,SessionIndex)>" - }, - "fallback": "0x00", - "documentation": [ - " A mapping from still-bonded eras to the first session index of that era." - ] - }, - { - "name": "ValidatorSlashInEra", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "EraIndex", - "key2": "AccountId", - "value": "(Perbill,BalanceOf)", - "key2Hasher": "Twox128" - } - }, - "fallback": "0x00", - "documentation": [ - " All slashing events on validators, mapped by era to the highest slash proportion", - " and slash value of the era." - ] - }, - { - "name": "NominatorSlashInEra", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "EraIndex", - "key2": "AccountId", - "value": "BalanceOf", - "key2Hasher": "Twox128" - } - }, - "fallback": "0x00", - "documentation": [ - " All slashing events on nominators, mapped by era to the highest slash value of the era." - ] - }, - { - "name": "SlashingSpans", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "SlashingSpans", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Slashing spans for stash accounts." - ] - }, - { - "name": "SpanSlash", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(AccountId,SpanIndex)", - "value": "SpanRecord", - "linked": false - } - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Records information about the maximum slash of a stash within a slashing span,", - " as well as how much reward has been paid out." - ] - }, - { - "name": "EarliestUnappliedSlash", - "modifier": "Optional", - "type": { - "Plain": "EraIndex" - }, - "fallback": "0x00", - "documentation": [ - " The earliest era for which we have a pending, unapplied slash." - ] - }, - { - "name": "StorageVersion", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The version of storage for upgrade." - ] - } - ] - }, - "calls": [ - { - "name": "bond", - "args": [ - { - "name": "controller", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - 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.", - " # " - ] - }, - { - "name": "bond_extra", - "args": [ - { - "name": "max_additional", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "unbond", - "args": [ - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " 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.", - "", - " 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.", - " " - ] - }, - { - "name": "withdraw_unbonded", - "args": [], - "documentation": [ - " 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.", - "", - " 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.", - " # " - ] - }, - { - "name": "validate", - "args": [ - { - "name": "prefs", - "type": "ValidatorPrefs" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains a limited number of reads.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "nominate", - "args": [ - { - "name": "targets", - "type": "Vec" - } - ], - "documentation": [ - " Declare the desire to nominate `targets` 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.", - "", - " # ", - " - The transaction's complexity is proportional to the size of `targets`,", - " which is capped at `MAX_NOMINATIONS`.", - " - Both the reads and writes follow a similar pattern.", - " # " - ] - }, - { - "name": "chill", - "args": [], - "documentation": [ - " 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.", - "", - " # ", - " - Independent of the arguments. Insignificant complexity.", - " - Contains one read.", - " - Writes are limited to the `origin` account key.", - " # " - ] - }, - { - "name": "set_payee", - "args": [ - { - "name": "payee", - "type": "RewardDestination" - } - ], - "documentation": [ - " (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.", - " # " - ] - }, - { - "name": "set_controller", - "args": [ - { - "name": "controller", - "type": "LookupSource" - } - ], - "documentation": [ - " (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.", - " # " - ] - }, - { - "name": "set_validator_count", - "args": [ - { - "name": "new", - "type": "Compact" - } - ], - "documentation": [ - " The ideal number of validators." - ] - }, - { - "name": "force_no_eras", - "args": [], - "documentation": [ - " Force there to be no new eras indefinitely.", - "", - " # ", - " - No arguments.", - " # " - ] - }, - { - "name": "force_new_era", - "args": [], - "documentation": [ - " 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.", - "", - " # ", - " - No arguments.", - " # " - ] - }, - { - "name": "set_invulnerables", - "args": [ - { - "name": "validators", - "type": "Vec" - } - ], - "documentation": [ - " Set the validators who cannot be slashed (if any)." - ] - }, - { - "name": "force_unstake", - "args": [ - { - "name": "stash", - "type": "AccountId" - } - ], - "documentation": [ - " Force a current staker to become completely unstaked, immediately." - ] - }, - { - "name": "force_new_era_always", - "args": [], - "documentation": [ - " Force there to be a new era at the end of sessions indefinitely.", - "", - " # ", - " - One storage write", - " # " - ] - }, - { - "name": "cancel_deferred_slash", - "args": [ - { - "name": "era", - "type": "EraIndex" - }, - { - "name": "slash_indices", - "type": "Vec" - } - ], - "documentation": [ - " Cancel enactment of a deferred slash. Can only be called by the root origin,", - " passing the era and indices of the slashes for that era to kill.", - "", - " # ", - " - One storage write.", - " # " - ] - } - ], - "events": [ - { - "name": "Reward", - "args": [ - "Balance", - "Balance" - ], - "documentation": [ - " All validators have been rewarded by the first balance; the second is the remainder", - " from the maximum amount of reward." - ] - }, - { - "name": "Slash", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " One validator (and its nominators) has been slashed by the given amount." - ] - }, - { - "name": "OldSlashingReportDiscarded", - "args": [ - "SessionIndex" - ], - "documentation": [ - " An old slashing report from a prior era was discarded because it could", - " not be processed." - ] - } - ], - "constants": [ - { - "name": "SessionsPerEra", - "type": "SessionIndex", - "value": "0x06000000", - "documentation": [ - " Number of sessions per era." - ] - }, - { - "name": "BondingDuration", - "type": "EraIndex", - "value": "0xa0020000", - "documentation": [ - " Number of eras that staked funds must remain bonded for." - ] - } - ], - "errors": [] - }, - { - "name": "Session", - "storage": { - "prefix": "Session", - "items": [ - { - "name": "Validators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of validators." - ] - }, - { - "name": "CurrentIndex", - "modifier": "Default", - "type": { - "Plain": "SessionIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Current index of the session." - ] - }, - { - "name": "QueuedChanged", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the underlying economic identities or weighting behind the validators", - " has changed in the queued validator set." - ] - }, - { - "name": "QueuedKeys", - "modifier": "Default", - "type": { - "Plain": "Vec<(ValidatorId,Keys)>" - }, - "fallback": "0x00", - "documentation": [ - " The queued keys for the next session. When the next session begins, these keys", - " will be used to determine the validator's session keys." - ] - }, - { - "name": "DisabledValidators", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Indices of disabled validators.", - "", - " The set is cleared when `on_session_ending` returns a new set of identities." - ] - }, - { - "name": "NextKeys", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Twox64Concat", - "key1": "Bytes", - "key2": "ValidatorId", - "value": "Keys", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " The next session keys for a validator.", - "", - " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", - " the trie. Having all data in the same branch should prevent slowing down other queries." - ] - }, - { - "name": "KeyOwner", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Twox64Concat", - "key1": "Bytes", - "key2": "(KeyTypeId,Bytes)", - "value": "ValidatorId", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " The owner of a key. The second key is the `KeyTypeId` + the encoded key.", - "", - " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", - " the trie. Having all data in the same branch should prevent slowing down other queries." - ] - } - ] - }, - "calls": [ - { - "name": "set_keys", - "args": [ - { - "name": "keys", - "type": "Keys" - }, - { - "name": "proof", - "type": "Bytes" - } - ], - "documentation": [ - " Sets the session key(s) of the function caller to `key`.", - " 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.", - "", - " # ", - " - O(log n) in number of accounts.", - " - One extra DB entry.", - " # " - ] - } - ], - "events": [ - { - "name": "NewSession", - "args": [ - "SessionIndex" - ], - "documentation": [ - " New session has happened. Note that the argument is the session index, not the block", - " number as the type might suggest." - ] - } - ], - "constants": [ - { - "name": "DEDUP_KEY_PREFIX", - "type": "Bytes", - "value": "0x343a73657373696f6e3a6b657973", - "documentation": [ - " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", - " of the trie." - ] - } - ], - "errors": [] - }, - { - "name": "Democracy", - "storage": { - "prefix": "Democracy", - "items": [ - { - "name": "PublicPropCount", - "modifier": "Default", - "type": { - "Plain": "PropIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The number of (public) proposals that have been made so far." - ] - }, - { - "name": "PublicProps", - "modifier": "Default", - "type": { - "Plain": "Vec<(PropIndex,Proposal,AccountId)>" - }, - "fallback": "0x00", - "documentation": [ - " The public proposals. Unsorted." - ] - }, - { - "name": "DepositOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "PropIndex", - "value": "(BalanceOf,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Those who have locked a deposit." - ] - }, - { - "name": "ReferendumCount", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next free referendum index, aka the number of referenda started so far." - ] - }, - { - "name": "NextTally", - "modifier": "Default", - "type": { - "Plain": "ReferendumIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " The next referendum index that should be tallied." - ] - }, - { - "name": "ReferendumInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "ReferendumInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Information concerning any given referendum." - ] - }, - { - "name": "DispatchQueue", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "BlockNumber", - "value": "Vec>", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Queue of successful referenda to be dispatched." - ] - }, - { - "name": "VotersFor", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReferendumIndex", - "value": "Vec", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the voters for the current proposal." - ] - }, - { - "name": "VoteOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "(ReferendumIndex,AccountId)", - "value": "Vote", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Get the vote in a given referendum of a particular voter. The result is meaningful only", - " if `voters_for` includes the voter when called with the referendum (you'll get the", - " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", - " also check for simple existence with `VoteOf::exists` first." - ] - }, - { - "name": "Proxy", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "AccountId", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Who is able to vote for whom. Value is the fund-holding account, key is the", - " vote-transaction-sending account." - ] - }, - { - "name": "Delegations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(AccountId,Conviction)", - "linked": true - } - }, - "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " Get the account (and lock periods) to which another account is delegating vote." - ] - }, - { - "name": "LastTabledWasExternal", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " True if the last referendum tabled was submitted externally. False if it was a public", - " proposal." - ] - }, - { - "name": "NextExternal", - "modifier": "Optional", - "type": { - "Plain": "(Proposal,VoteThreshold)" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Blacklist", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "(BlockNumber,Vec)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - }, - { - "name": "Cancellations", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "bool", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Record of all proposals that have been subject to emergency cancellation." - ] - } - ] - }, - "calls": [ - { - "name": "propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - Two DB changes, one DB entry.", - " # " - ] - }, - { - "name": "second", - "args": [ - { - "name": "proposal", - "type": "Compact" - } - ], - "documentation": [ - " Propose a sensitive action to be taken.", - "", - " # ", - " - O(1).", - " - One DB entry.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "proxy_vote", - "args": [ - { - "name": "ref_index", - "type": "Compact" - }, - { - "name": "vote", - "type": "Vote" - } - ], - "documentation": [ - " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", - " the proposal; otherwise it is a vote to keep the status quo.", - "", - " # ", - " - O(1).", - " - One DB change, one DB entry.", - " # " - ] - }, - { - "name": "emergency_cancel", - "args": [ - { - "name": "ref_index", - "type": "ReferendumIndex" - } - ], - "documentation": [ - " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", - " referendum." - ] - }, - { - "name": "external_propose", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a referendum to be tabled once it is legal to schedule an external", - " referendum." - ] - }, - { - "name": "external_propose_majority", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", - " an external referendum.", - "", - " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", - " pre-scheduled `external_propose` call." - ] - }, - { - "name": "external_propose_default", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", - " schedule an external referendum.", - "", - " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", - " pre-scheduled `external_propose` call." - ] - }, - { - "name": "fast_track", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - }, - { - "name": "voting_period", - "type": "BlockNumber" - }, - { - "name": "delay", - "type": "BlockNumber" - } - ], - "documentation": [ - " 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.", - "", - " - `proposal_hash`: The hash of the current external proposal.", - " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", - " `EmergencyVotingPeriod` 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." - ] - }, - { - "name": "veto_external", - "args": [ - { - "name": "proposal_hash", - "type": "Hash" - } - ], - "documentation": [ - " Veto and blacklist the external proposal hash." - ] - }, - { - "name": "cancel_referendum", - "args": [ - { - "name": "ref_index", - "type": "Compact" - } - ], - "documentation": [ - " Remove a referendum." - ] - }, - { - "name": "cancel_queued", - "args": [ - { - "name": "when", - "type": "Compact" - }, - { - "name": "which", - "type": "Compact" - }, - { - "name": "what", - "type": "Compact" - } - ], - "documentation": [ - " Cancel a proposal queued for enactment." - ] - }, - { - "name": "set_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Specify a proxy. Called by the stash.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "resign_proxy", - "args": [], - "documentation": [ - " Clear the proxy. Called by the proxy.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "remove_proxy", - "args": [ - { - "name": "proxy", - "type": "AccountId" - } - ], - "documentation": [ - " Clear the proxy. Called by the stash.", - "", - " # ", - " - One DB clear.", - " # " - ] - }, - { - "name": "delegate", - "args": [ - { - "name": "to", - "type": "AccountId" - }, - { - "name": "conviction", - "type": "Conviction" - } - ], - "documentation": [ - " Delegate vote.", - "", - " # ", - " - One extra DB entry.", - " # " - ] - }, - { - "name": "undelegate", - "args": [], - "documentation": [ - " Undelegate vote.", - "", - " # ", - " - O(1).", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "PropIndex", - "Balance" - ], - "documentation": [] - }, - { - "name": "Tabled", - "args": [ - "PropIndex", - "Balance", - "Vec" - ], - "documentation": [] - }, - { - "name": "ExternalTabled", - "args": [], - "documentation": [] - }, - { - "name": "Started", - "args": [ - "ReferendumIndex", - "VoteThreshold" - ], - "documentation": [] - }, - { - "name": "Passed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "NotPassed", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Cancelled", - "args": [ - "ReferendumIndex" - ], - "documentation": [] - }, - { - "name": "Executed", - "args": [ - "ReferendumIndex", - "bool" - ], - "documentation": [] - }, - { - "name": "Delegated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [] - }, - { - "name": "Undelegated", - "args": [ - "AccountId" - ], - "documentation": [] - }, - { - "name": "Vetoed", - "args": [ - "AccountId", - "Hash", - "BlockNumber" - ], - "documentation": [] - } - ], - "constants": [ - { - "name": "EnactmentPeriod", - "type": "BlockNumber", - "value": "0x002f0d00", - "documentation": [ - " 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." - ] - }, - { - "name": "LaunchPeriod", - "type": "BlockNumber", - "value": "0x004e0c00", - "documentation": [ - " How often (in blocks) new public referenda are launched." - ] - }, - { - "name": "VotingPeriod", - "type": "BlockNumber", - "value": "0x004e0c00", - "documentation": [ - " How often (in blocks) to check for new votes." - ] - }, - { - "name": "MinimumDeposit", - "type": "BalanceOf", - "value": "0x0000c16ff28623000000000000000000", - "documentation": [ - " The minimum amount to be used as a deposit for a public referendum proposal." - ] - }, - { - "name": "EmergencyVotingPeriod", - "type": "BlockNumber", - "value": "0x80510100", - "documentation": [ - " Minimum voting period allowed for an emergency referendum." - ] - }, - { - "name": "CooloffPeriod", - "type": "BlockNumber", - "value": "0x004e0c00", - "documentation": [ - " Period in blocks where an external proposal may not be re-submitted after being vetoed." - ] - } - ], - "errors": [] - }, - { - "name": "Council", - "storage": { - "prefix": "Instance1Collective", - "items": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current members of the collective. This is stored sorted (just by value)." - ] - } - ] - }, - "calls": [ - { - "name": "set_members", - "args": [ - { - "name": "new_members", - "type": "Vec" - } - ], - "documentation": [ - " Set the collective's membership manually to `new_members`. Be nice to the chain and", - " provide it pre-sorted.", - "", - " Requires root origin." - ] - }, - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a member using the `Member` origin.", - "", - " Origin must be a member of the collective." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single member did some action; `bool` is true if returned without error." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "TechnicalCommittee", - "storage": { - "prefix": "Instance2Collective", - "items": [ - { - "name": "Proposals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The hashes of the active proposals." - ] - }, - { - "name": "ProposalOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Proposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Actual proposal for a given hash, if it's current." - ] - }, - { - "name": "Voting", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Hash", - "value": "Votes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Votes on a given proposal, if it is ongoing." - ] - }, - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " Proposals so far." - ] - }, - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current members of the collective. This is stored sorted (just by value)." - ] - } - ] - }, - "calls": [ - { - "name": "set_members", - "args": [ - { - "name": "new_members", - "type": "Vec" - } - ], - "documentation": [ - " Set the collective's membership manually to `new_members`. Be nice to the chain and", - " provide it pre-sorted.", - "", - " Requires root origin." - ] - }, - { - "name": "execute", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " Dispatch a proposal from a member using the `Member` origin.", - "", - " Origin must be a member of the collective." - ] - }, - { - "name": "propose", - "args": [ - { - "name": "threshold", - "type": "Compact" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " # ", - " - Bounded storage reads and writes.", - " - Argument `threshold` has bearing on weight.", - " # " - ] - }, - { - "name": "vote", - "args": [ - { - "name": "proposal", - "type": "Hash" - }, - { - "name": "index", - "type": "Compact" - }, - { - "name": "approve", - "type": "bool" - } - ], - "documentation": [ - " # ", - " - Bounded storage read and writes.", - " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "AccountId", - "ProposalIndex", - "Hash", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been proposed (by given account) with a threshold (given", - " `MemberCount`)." - ] - }, - { - "name": "Voted", - "args": [ - "AccountId", - "Hash", - "bool", - "MemberCount", - "MemberCount" - ], - "documentation": [ - " A motion (given hash) has been voted on by given account, leaving", - " a tally (yes votes and no votes given respectively as `MemberCount`)." - ] - }, - { - "name": "Approved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was approved by the required threshold." - ] - }, - { - "name": "Disapproved", - "args": [ - "Hash" - ], - "documentation": [ - " A motion was not approved by the required threshold." - ] - }, - { - "name": "Executed", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A motion was executed; `bool` is true if returned without error." - ] - }, - { - "name": "MemberExecuted", - "args": [ - "Hash", - "bool" - ], - "documentation": [ - " A single member did some action; `bool` is true if returned without error." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "Elections", - "storage": { - "prefix": "PhragmenElection", - "items": [ - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BalanceOf)>" - }, - "fallback": "0x00", - "documentation": [ - " The current elected membership. Sorted based on account id." - ] - }, - { - "name": "RunnersUp", - "modifier": "Default", - "type": { - "Plain": "Vec<(AccountId,BalanceOf)>" - }, - "fallback": "0x00", - "documentation": [ - " The current runners_up. Sorted based on low to high merit (worse to best runner)." - ] - }, - { - "name": "ElectionRounds", - "modifier": "Default", - "type": { - "Plain": "u32" - }, - "fallback": "0x00000000", - "documentation": [ - " The total number of vote rounds that have happened, excluding the upcoming one." - ] - }, - { - "name": "VotesOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "Vec", - "linked": true - } - }, - "fallback": "0x00", - "documentation": [ - " Votes of a particular voter, with the round index of the votes." - ] - }, - { - "name": "StakeOf", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "BalanceOf", - "linked": false - } - }, - "fallback": "0x00000000000000000000000000000000", - "documentation": [ - " Locked stake of a voter." - ] - }, - { - "name": "Candidates", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The present candidate list. Sorted based on account id. A current member can never enter", - " this vector and is always implicitly assumed to be a candidate." - ] - }, - { - "name": "DidMigrate", - "modifier": "Default", - "type": { - "Plain": "bool" - }, - "fallback": "0x00", - "documentation": [ - " Has the storage format been updated?", - " NOTE: Only use and set to false if you have used an early version of this module. Should", - " be set to true otherwise." - ] - } - ] - }, - "calls": [ - { - "name": "vote", - "args": [ - { - "name": "votes", - "type": "Vec" - }, - { - "name": "value", - "type": "Compact" - } - ], - "documentation": [ - " Vote for a set of candidates for the upcoming round of election.", - "", - " The `votes` should:", - " - not be empty.", - " - be less than the number of candidates.", - "", - " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.", - " It is the responsibility of the caller to not place all of their balance into the lock", - " and keep some for further transactions.", - "", - " # ", - " #### State", - " Reads: O(1)", - " Writes: O(V) given `V` votes. V is bounded by 16.", - " # " - ] - }, - { - "name": "remove_voter", - "args": [], - "documentation": [ - " Remove `origin` as a voter. This removes the lock and returns the bond.", - "", - " # ", - " #### State", - " Reads: O(1)", - " Writes: O(1)", - " # " - ] - }, - { - "name": "report_defunct_voter", - "args": [ - { - "name": "target", - "type": "LookupSource" - } - ], - "documentation": [ - " Report `target` for being an defunct voter. In case of a valid report, the reporter is", - " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", - " their bond is slashed.", - "", - " A defunct voter is defined to be:", - " - a voter whose current submitted votes are all invalid. i.e. all of them are no", - " longer a candidate nor an active member.", - "", - " # ", - " #### State", - " Reads: O(NLogM) given M current candidates and N votes for `target`.", - " Writes: O(1)", - " # " - ] - }, - { - "name": "submit_candidacy", - "args": [], - "documentation": [ - " Submit oneself for candidacy.", - "", - " A candidate will either:", - " - Lose at the end of the term and forfeit their deposit.", - " - Win and become a member. Members will eventually get their stash back.", - " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", - " removed.", - "", - " # ", - " #### State", - " Reads: O(LogN) Given N candidates.", - " Writes: O(1)", - " # " - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove a particular member from the set. This is effective immediately.", - "", - " If a runner-up is available, then the best runner-up will be removed and replaces the", - " outgoing member. Otherwise, a new phragmen round is started.", - "", - " Note that this does not affect the designated block number of the next election.", - "", - " # ", - " #### State", - " Reads: O(do_phragmen)", - " Writes: O(do_phragmen)", - " # " - ] - } - ], - "events": [ - { - "name": "NewTerm", - "args": [ - "Vec<(AccountId,Balance)>" - ], - "documentation": [ - " A new term with new members. This indicates that enough candidates existed, not that", - " enough have has been elected. The inner value must be examined for this purpose." - ] - }, - { - "name": "EmptyTerm", - "args": [], - "documentation": [ - " No (or not enough) candidates existed for this round." - ] - }, - { - "name": "MemberKicked", - "args": [ - "AccountId" - ], - "documentation": [ - " A member has been removed. This should always be followed by either `NewTerm` ot", - " `EmptyTerm`." - ] - }, - { - "name": "VoterReported", - "args": [ - "AccountId", - "AccountId", - "bool" - ], - "documentation": [ - " A voter (first element) was reported (byt the second element) with the the report being", - " successful or not (third element)." - ] - } - ], - "constants": [ - { - "name": "CandidacyBond", - "type": "BalanceOf", - "value": "0x0080c6a47e8d03000000000000000000", - "documentation": [] - }, - { - "name": "VotingBond", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [] - }, - { - "name": "DesiredMembers", - "type": "u32", - "value": "0x0d000000", - "documentation": [] - }, - { - "name": "DesiredRunnersUp", - "type": "u32", - "value": "0x07000000", - "documentation": [] - }, - { - "name": "TermDuration", - "type": "BlockNumber", - "value": "0x80130300", - "documentation": [] - } - ], - "errors": [] - }, - { - "name": "TechnicalMembership", - "storage": { - "prefix": "Instance1Membership", - "items": [ - { - "name": "Members", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current membership, stored as an ordered Vec." - ] - } - ] - }, - "calls": [ - { - "name": "add_member", - "args": [ - { - "name": "who", - "type": "AccountId" - } - ], - "documentation": [ - " Add a member `who` to the set.", - "", - " May only be called from `AddOrigin` or root." - ] - }, - { - "name": "remove_member", - "args": [ - { - "name": "who", - "type": "AccountId" - } - ], - "documentation": [ - " Remove a member `who` from the set.", - "", - " May only be called from `RemoveOrigin` or root." - ] - }, - { - "name": "swap_member", - "args": [ - { - "name": "remove", - "type": "AccountId" - }, - { - "name": "add", - "type": "AccountId" - } - ], - "documentation": [ - " Swap out one member `remove` for another `add`.", - "", - " May only be called from `SwapOrigin` or root." - ] - }, - { - "name": "reset_members", - "args": [ - { - "name": "members", - "type": "Vec" - } - ], - "documentation": [ - " Change the membership to a new set, disregarding the existing membership. Be nice and", - " pass `members` pre-sorted.", - "", - " May only be called from `ResetOrigin` or root." - ] - } - ], - "events": [ - { - "name": "MemberAdded", - "args": [], - "documentation": [ - " The given member was added; see the transaction for who." - ] - }, - { - "name": "MemberRemoved", - "args": [], - "documentation": [ - " The given member was removed; see the transaction for who." - ] - }, - { - "name": "MembersSwapped", - "args": [], - "documentation": [ - " Two members were swapped; see the transaction for who." - ] - }, - { - "name": "MembersReset", - "args": [], - "documentation": [ - " The membership was reset; see the transaction for who the new set is." - ] - }, - { - "name": "Dummy", - "args": [ - "PhantomData" - ], - "documentation": [ - " Phantom member, never used." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "FinalityTracker", - "storage": null, - "calls": [ - { - "name": "final_hint", - "args": [ - { - "name": "hint", - "type": "Compact" - } - ], - "documentation": [ - " Hint that the author of this block thinks the best finalized", - " block is the given number." - ] - } - ], - "events": null, - "constants": [ - { - "name": "WindowSize", - "type": "BlockNumber", - "value": "0x65000000", - "documentation": [ - " The number of recent samples to keep from this chain. Default is 101." - ] - }, - { - "name": "ReportLatency", - "type": "BlockNumber", - "value": "0xe8030000", - "documentation": [ - " The delay after which point things become suspicious. Default is 1000." - ] - } - ], - "errors": [] - }, - { - "name": "Grandpa", - "storage": { - "prefix": "GrandpaFinality", - "items": [ - { - "name": "Authorities", - "modifier": "Default", - "type": { - "Plain": "AuthorityList" - }, - "fallback": "0x00", - "documentation": [ - " DEPRECATED", - "", - " This used to store the current authority set, which has been migrated to the well-known", - " GRANDPA_AUTHORITES_KEY unhashed key." - ] - }, - { - "name": "State", - "modifier": "Default", - "type": { - "Plain": "StoredState" - }, - "fallback": "0x00", - "documentation": [ - " State of the current authority set." - ] - }, - { - "name": "PendingChange", - "modifier": "Optional", - "type": { - "Plain": "StoredPendingChange" - }, - "fallback": "0x00", - "documentation": [ - " Pending change: (signaled at, scheduled change)." - ] - }, - { - "name": "NextForced", - "modifier": "Optional", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00", - "documentation": [ - " next block number where we can force a change." - ] - }, - { - "name": "Stalled", - "modifier": "Optional", - "type": { - "Plain": "(BlockNumber,BlockNumber)" - }, - "fallback": "0x00", - "documentation": [ - " `true` if we are currently stalled." - ] - }, - { - "name": "CurrentSetId", - "modifier": "Default", - "type": { - "Plain": "SetId" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The number of changes (both in terms of keys and underlying economic responsibilities)", - " in the \"set\" of Grandpa validators from genesis." - ] - }, - { - "name": "SetIdSession", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "SetId", - "value": "SessionIndex", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible." - ] - } - ] - }, - "calls": [ - { - "name": "report_misbehavior", - "args": [ - { - "name": "_report", - "type": "Bytes" - } - ], - "documentation": [ - " Report some misbehavior." - ] - } - ], - "events": [ - { - "name": "NewAuthorities", - "args": [ - "AuthorityList" - ], - "documentation": [ - " New authority set has been applied." - ] - }, - { - "name": "Paused", - "args": [], - "documentation": [ - " Current authority set has been paused." - ] - }, - { - "name": "Resumed", - "args": [], - "documentation": [ - " Current authority set has been resumed." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "Treasury", - "storage": { - "prefix": "Treasury", - "items": [ - { - "name": "ProposalCount", - "modifier": "Default", - "type": { - "Plain": "ProposalIndex" - }, - "fallback": "0x00000000", - "documentation": [ - " Number of proposals that have been made." - ] - }, - { - "name": "Proposals", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ProposalIndex", - "value": "TreasuryProposal", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " Proposals that have been made." - ] - }, - { - "name": "Approvals", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " Proposal indices that have been approved but not yet awarded." - ] - } - ] - }, - "calls": [ - { - "name": "propose_spend", - "args": [ - { - "name": "value", - "type": "Compact" - }, - { - "name": "beneficiary", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change, one extra DB entry.", - " # " - ] - }, - { - "name": "reject_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Reject a proposed spend. The original deposit will be slashed.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB clear.", - " # " - ] - }, - { - "name": "approve_proposal", - "args": [ - { - "name": "proposal_id", - "type": "Compact" - } - ], - "documentation": [ - " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", - " and the original deposit will be returned.", - "", - " # ", - " - O(1).", - " - Limited storage reads.", - " - One DB change.", - " # " - ] - } - ], - "events": [ - { - "name": "Proposed", - "args": [ - "ProposalIndex" - ], - "documentation": [ - " New proposal." - ] - }, - { - "name": "Spending", - "args": [ - "Balance" - ], - "documentation": [ - " We have ended a spend period and will now allocate funds." - ] - }, - { - "name": "Awarded", - "args": [ - "ProposalIndex", - "Balance", - "AccountId" - ], - "documentation": [ - " Some funds have been allocated." - ] - }, - { - "name": "Burnt", - "args": [ - "Balance" - ], - "documentation": [ - " Some of our funds have been burnt." - ] - }, - { - "name": "Rollover", - "args": [ - "Balance" - ], - "documentation": [ - " Spending has finished; this is the amount that rolls over until next spend." - ] - }, - { - "name": "Deposit", - "args": [ - "Balance" - ], - "documentation": [ - " Some funds have been deposited." - ] - } - ], - "constants": [ - { - "name": "ProposalBond", - "type": "Permill", - "value": "0x50c30000", - "documentation": [ - " 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." - ] - }, - { - "name": "ProposalBondMinimum", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Minimum amount of funds that should be placed in a deposit for making a proposal." - ] - }, - { - "name": "SpendPeriod", - "type": "BlockNumber", - "value": "0x80700000", - "documentation": [ - " Period between successive spends." - ] - }, - { - "name": "Burn", - "type": "Permill", - "value": "0x20a10700", - "documentation": [ - " Percentage of spare funds (if any) that are burnt per spend period." - ] - } - ], - "errors": [] - }, - { - "name": "Contracts", - "storage": { - "prefix": "Contract", - "items": [ - { - "name": "GasSpent", - "modifier": "Default", - "type": { - "Plain": "Gas" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " Gas spent so far in this block." - ] - }, - { - "name": "CurrentSchedule", - "modifier": "Default", - "type": { - "Plain": "Schedule" - }, - "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000", - "documentation": [ - " Current cost schedule for contracts." - ] - }, - { - "name": "PristineCode", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping from an original code hash to the original code, untouched by instrumentation." - ] - }, - { - "name": "CodeStorage", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "CodeHash", - "value": "PrefabWasmModule", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " A mapping between an original code hash and instrumented wasm code, ready for execution." - ] - }, - { - "name": "AccountCounter", - "modifier": "Default", - "type": { - "Plain": "u64" - }, - "fallback": "0x0000000000000000", - "documentation": [ - " The subtrie counter." - ] - }, - { - "name": "ContractInfoOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "ContractInfo", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The code associated with a given account." - ] - }, - { - "name": "GasPrice", - "modifier": "Default", - "type": { - "Plain": "BalanceOf" - }, - "fallback": "0x01000000000000000000000000000000", - "documentation": [ - " The price of one unit of gas." - ] - } - ] - }, - "calls": [ - { - "name": "update_schedule", - "args": [ - { - "name": "schedule", - "type": "Schedule" - } - ], - "documentation": [ - " Updates the schedule for metering contracts.", - "", - " The schedule must have a greater version than the stored schedule." - ] - }, - { - "name": "put_code", - "args": [ - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code", - "type": "Bytes" - } - ], - "documentation": [ - " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", - " You can instantiate contracts only with stored code." - ] - }, - { - "name": "call", - "args": [ - { - "name": "dest", - "type": "LookupSource" - }, - { - "name": "value", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " 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." - ] - }, - { - "name": "instantiate", - "args": [ - { - "name": "endowment", - "type": "Compact" - }, - { - "name": "gas_limit", - "type": "Compact" - }, - { - "name": "code_hash", - "type": "CodeHash" - }, - { - "name": "data", - "type": "Bytes" - } - ], - "documentation": [ - " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", - "", - " Instantiation is executed as follows:", - "", - " - The destination address is computed based on the sender and hash of the code.", - " - The smart-contract account is created at the computed address.", - " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", - " after the execution is saved as the `code` of the account. That code will be invoked", - " upon any call received by this account.", - " - The contract is initialized." - ] - }, - { - "name": "claim_surcharge", - "args": [ - { - "name": "dest", - "type": "AccountId" - }, - { - "name": "aux_sender", - "type": "Option" - } - ], - "documentation": [ - " 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.", - "", - " If contract is not evicted as a result of this call, no actions are taken and", - " the sender is not eligible for the reward." - ] - } - ], - "events": [ - { - "name": "Transfer", - "args": [ - "AccountId", - "AccountId", - "Balance" - ], - "documentation": [ - " Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`." - ] - }, - { - "name": "Instantiated", - "args": [ - "AccountId", - "AccountId" - ], - "documentation": [ - " Contract deployed by address at the specified address." - ] - }, - { - "name": "CodeStored", - "args": [ - "Hash" - ], - "documentation": [ - " Code with the specified hash has been stored." - ] - }, - { - "name": "ScheduleUpdated", - "args": [ - "u32" - ], - "documentation": [ - " Triggered when the current schedule is updated." - ] - }, - { - "name": "Dispatched", - "args": [ - "AccountId", - "bool" - ], - "documentation": [ - " A call was dispatched from the given account. The bool signals whether it was", - " successful execution or not." - ] - }, - { - "name": "Contract", - "args": [ - "AccountId", - "Bytes" - ], - "documentation": [ - " An event from contract of account." - ] - } - ], - "constants": [ - { - "name": "SignedClaimHandicap", - "type": "BlockNumber", - "value": "0x02000000", - "documentation": [ - " 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" - ] - }, - { - "name": "TombstoneDeposit", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " The minimum amount required to generate a tombstone." - ] - }, - { - "name": "StorageSizeOffset", - "type": "u32", - "value": "0x08000000", - "documentation": [ - " Size of a contract at the time of instantiaion. This is a simple way to ensure that", - " empty contracts eventually gets deleted." - ] - }, - { - "name": "RentByteFee", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Price of a byte of storage per one block interval. Should be greater than 0." - ] - }, - { - "name": "RentDepositOffset", - "type": "BalanceOf", - "value": "0x00008a5d784563010000000000000000", - "documentation": [ - " The amount of funds a contract should deposit in order to offset", - " the cost of one byte.", - "", - " 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." - ] - }, - { - "name": "SurchargeReward", - "type": "BalanceOf", - "value": "0x0080a1a76b4a35000000000000000000", - "documentation": [ - " Reward that is received by the party whose touch has led", - " to removal of a contract." - ] - }, - { - "name": "TransferFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to make a transfer." - ] - }, - { - "name": "CreationFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to create an account." - ] - }, - { - "name": "TransactionBaseFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the base." - ] - }, - { - "name": "TransactionByteFee", - "type": "BalanceOf", - "value": "0x00e40b54020000000000000000000000", - "documentation": [ - " The fee to be paid for making a transaction; the per-byte portion." - ] - }, - { - "name": "ContractFee", - "type": "BalanceOf", - "value": "0x0010a5d4e80000000000000000000000", - "documentation": [ - " The fee required to instantiate a contract instance. A reasonable default value", - " is 21." - ] - }, - { - "name": "CallBaseFee", - "type": "Gas", - "value": "0xe803000000000000", - "documentation": [ - " The base fee charged for calling into a contract. A reasonable default", - " value is 135." - ] - }, - { - "name": "InstantiateBaseFee", - "type": "Gas", - "value": "0xe803000000000000", - "documentation": [ - " The base fee charged for instantiating a contract. A reasonable default value", - " is 175." - ] - }, - { - "name": "MaxDepth", - "type": "u32", - "value": "0x20000000", - "documentation": [ - " The maximum nesting level of a call/instantiate stack. A reasonable default", - " value is 100." - ] - }, - { - "name": "MaxValueSize", - "type": "u32", - "value": "0x00400000", - "documentation": [ - " The maximum size of a storage value in bytes. A reasonable default is 16 KiB." - ] - }, - { - "name": "BlockGasLimit", - "type": "Gas", - "value": "0x8096980000000000", - "documentation": [ - " The maximum amount of gas that could be expended per block. A reasonable", - " default value is 10_000_000." - ] - } - ], - "errors": [] - }, - { - "name": "Sudo", - "storage": { - "prefix": "Sudo", - "items": [ - { - "name": "Key", - "modifier": "Default", - "type": { - "Plain": "AccountId" - }, - "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", - "documentation": [ - " The `AccountId` of the sudo key." - ] - } - ] - }, - "calls": [ - { - "name": "sudo", - "args": [ - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " 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).", - " - Unknown weight of derivative `proposal` execution.", - " # " - ] - }, - { - "name": "set_key", - "args": [ - { - "name": "new", - "type": "LookupSource" - } - ], - "documentation": [ - " 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.", - " # " - ] - }, - { - "name": "sudo_as", - "args": [ - { - "name": "who", - "type": "LookupSource" - }, - { - "name": "proposal", - "type": "Proposal" - } - ], - "documentation": [ - " 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).", - " - Unknown weight of derivative `proposal` execution.", - " # " - ] - } - ], - "events": [ - { - "name": "Sudid", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - }, - { - "name": "KeyChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " The sudoer just switched identity; the old key is supplied." - ] - }, - { - "name": "SudoAsDone", - "args": [ - "bool" - ], - "documentation": [ - " A sudo just took place." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "ImOnline", - "storage": { - "prefix": "ImOnline", - "items": [ - { - "name": "GossipAt", - "modifier": "Default", - "type": { - "Plain": "BlockNumber" - }, - "fallback": "0x00000000", - "documentation": [ - " The block number when we should gossip." - ] - }, - { - "name": "Keys", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " The current set of keys that may issue a heartbeat." - ] - }, - { - "name": "ReceivedHeartbeats", - "modifier": "Optional", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "SessionIndex", - "key2": "AuthIndex", - "value": "Bytes", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " For each session index, we keep a mapping of `AuthIndex`", - " to `offchain::OpaqueNetworkState`." - ] - }, - { - "name": "AuthoredBlocks", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "SessionIndex", - "key2": "ValidatorId", - "value": "u32", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00000000", - "documentation": [ - " For each session index, we keep a mapping of `T::ValidatorId` to the", - " number of blocks authored by the given authority." - ] - } - ] - }, - "calls": [ - { - "name": "heartbeat", - "args": [ - { - "name": "heartbeat", - "type": "Heartbeat" - }, - { - "name": "_signature", - "type": "Signature" - } - ], - "documentation": [] - } - ], - "events": [ - { - "name": "HeartbeatReceived", - "args": [ - "AuthorityId" - ], - "documentation": [ - " A new heartbeat was received from `AuthorityId`" - ] - }, - { - "name": "AllGood", - "args": [], - "documentation": [ - " At the end of the session, no offence was committed." - ] - }, - { - "name": "SomeOffline", - "args": [ - "Vec" - ], - "documentation": [ - " At the end of the session, at least once validator was found to be offline." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "AuthorityDiscovery", - "storage": null, - "calls": [], - "events": null, - "constants": [], - "errors": [] - }, - { - "name": "Offences", - "storage": { - "prefix": "Offences", - "items": [ - { - "name": "Reports", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "ReportIdOf", - "value": "OffenceDetails", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The primary structure that holds all offence records keyed by report identifiers." - ] - }, - { - "name": "ConcurrentReportsIndex", - "modifier": "Default", - "type": { - "DoubleMap": { - "hasher": "Blake2_256", - "key1": "Kind", - "key2": "OpaqueTimeSlot", - "value": "Vec", - "key2Hasher": "Blake2_256" - } - }, - "fallback": "0x00", - "documentation": [ - " A vector of reports of the same kind that happened at the same time slot." - ] - }, - { - "name": "ReportsByKindIndex", - "modifier": "Default", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "Kind", - "value": "Bytes", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - } - ] - }, - "calls": [], - "events": [ - { - "name": "Offence", - "args": [ - "Kind", - "OpaqueTimeSlot" - ], - "documentation": [ - " 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." - ] - } - ], - "constants": [], - "errors": [] - }, - { - "name": "RandomnessCollectiveFlip", - "storage": { - "prefix": "RandomnessCollectiveFlip", - "items": [ - { - "name": "RandomMaterial", - "modifier": "Default", - "type": { - "Plain": "Vec" - }, - "fallback": "0x00", - "documentation": [ - " 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." - ] - } - ] - }, - "calls": [], - "events": null, - "constants": [], - "errors": [] - }, - { - "name": "Nicks", - "storage": { - "prefix": "Sudo", - "items": [ - { - "name": "NameOf", - "modifier": "Optional", - "type": { - "Map": { - "hasher": "Blake2_256", - "key": "AccountId", - "value": "(Bytes,BalanceOf)", - "linked": false - } - }, - "fallback": "0x00", - "documentation": [ - " The lookup table for names." - ] - } - ] - }, - "calls": [ - { - "name": "set_name", - "args": [ - { - "name": "name", - "type": "Bytes" - } - ], - "documentation": [ - " Set an account's name. The name should be a UTF-8-encoded string by convention, though", - " we don't check it.", - "", - " The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.", - "", - " If the account doesn't already have a name, then a fee of `ReservationFee` is reserved", - " in the account.", - "", - " The dispatch origin for this call must be _Signed_.", - "", - " # ", - " - O(1).", - " - At most one balance operation.", - " - One storage read/write.", - " - One event.", - " # " - ] - }, - { - "name": "clear_name", - "args": [], - "documentation": [ - " Clear an account's name and return the deposit. Fails if the account was not named.", - "", - " The dispatch origin for this call must be _Signed_.", - "", - " # ", - " - O(1).", - " - One balance operation.", - " - One storage read/write.", - " - One event.", - " # " - ] - }, - { - "name": "kill_name", - "args": [ - { - "name": "target", - "type": "LookupSource" - } - ], - "documentation": [ - " Remove an account's name and take charge of the deposit.", - "", - " Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`", - " imbalance handler.", - "", - " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", - "", - " # ", - " - O(1).", - " - One unbalanced handler (probably a balance transfer)", - " - One storage read/write.", - " - One event.", - " # " - ] - }, - { - "name": "force_name", - "args": [ - { - "name": "target", - "type": "LookupSource" - }, - { - "name": "name", - "type": "Bytes" - } - ], - "documentation": [ - " Set a third-party account's name with no deposit.", - "", - " No length checking is done on the name.", - "", - " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", - "", - " # ", - " - O(1).", - " - At most one balance operation.", - " - One storage read/write.", - " - One event.", - " # " - ] - } - ], - "events": [ - { - "name": "NameSet", - "args": [ - "AccountId" - ], - "documentation": [ - " A name was set." - ] - }, - { - "name": "NameForced", - "args": [ - "AccountId" - ], - "documentation": [ - " A name was forcibly set." - ] - }, - { - "name": "NameChanged", - "args": [ - "AccountId" - ], - "documentation": [ - " A name was changed." - ] - }, - { - "name": "NameCleared", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A name was cleared, and the given balance returned." - ] - }, - { - "name": "NameKilled", - "args": [ - "AccountId", - "Balance" - ], - "documentation": [ - " A name was removed and the given balance slashed." - ] - } - ], - "constants": [ - { - "name": "ReservationFee", - "type": "BalanceOf", - "value": "0x00407a10f35a00000000000000000000", - "documentation": [ - " Reservation fee." - ] - }, - { - "name": "MinLength", - "type": "u32", - "value": "0x03000000", - "documentation": [ - " The minimum length a name may be." - ] - }, - { - "name": "MaxLength", - "type": "u32", - "value": "0x10000000", - "documentation": [ - " The maximum length a name may be." - ] - } - ], - "errors": [] - } - ] - } - } -} diff --git a/packages/metadata/src/Metadata/v8/static.ts b/packages/metadata/src/Metadata/v8/static.ts deleted file mode 100644 index 4356e77a3c..0000000000 --- a/packages/metadata/src/Metadata/v8/static.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -const meta = '0x6d65746108641853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e011c2866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564043444697370617463684572726f72045420416e2065787472696e736963206661696c65642e0014304261645369676e61747572650024426c6f636b46756c6c004c526571756972655369676e65644f726967696e004452657175697265526f6f744f726967696e003c526571756972654e6f4f726967696e001c5574696c697479000104146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e04b02053656e642061206261746368206f662064697370617463682063616c6c7320286f6e6c7920726f6f74292e0104344261746368457865637574656404785665633c526573756c743c28292c2044697370617463684572726f723e3e0000001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e0000001c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742ce82069742077696c6c20726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e73666572010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e00485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e001c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2902040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e02040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e2ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1835012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e206f6e6c792062652063616c6c65642062792074686520726f6f74206f726967696e2c05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e001c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002041c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002041c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e002444656d6f6372616379012444656d6f63726163793c3c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e0400048020546865207075626c69632070726f706f73616c732e20556e736f727465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00007028543a3a50726f706f73616c2c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01441c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479042070726f706f73616c40426f783c543a3a50726f706f73616c3e145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74042070726f706f73616c40426f783c543a3a50726f706f73616c3e144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e012c2050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e003845787465726e616c5461626c656400001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e74496400185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657200183c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e001c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e000048546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e000024456c656374696f6e73014050687261676d656e456c656374696f6e1c1c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742069642e20412063757272656e74206d656d6265722063616e206e6576657220656e7465720101207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e284469644d696772617465010010626f6f6c04000c9420486173207468652073746f7261676520666f726d6174206265656e20757064617465643f6501204e4f54453a204f6e6c792075736520616e642073657420746f2066616c736520696620796f752068617665207573656420616e206561726c792076657273696f6e206f662074686973206d6f64756c652e2053686f756c64682062652073657420746f2074727565206f74686572776973652e011410766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653021012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c792e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01101c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000004c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0110286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e01142c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e1444756d6d7904b4727374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e001c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e0000205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01182050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e103050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0024436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e00105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e000020496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000048417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000144e69636b7301105375646f04184e616d654f6600010130543a3a4163636f756e7449645c285665633c75383e2c2042616c616e63654f663c543e29000400047020546865206c6f6f6b7570207461626c6520666f72206e616d65732e0110207365745f6e616d6504106e616d651c5665633c75383e405d012053657420616e206163636f756e742773206e616d652e20546865206e616d652073686f756c642062652061205554462d382d656e636f64656420737472696e6720627920636f6e76656e74696f6e2c2074686f7567684c20776520646f6e277420636865636b2069742e00610120546865206e616d65206d6179206e6f74206265206d6f7265207468616e2060543a3a4d61784c656e677468602062797465732c206e6f72206c657373207468616e2060543a3a4d696e4c656e677468602062797465732e005d0120496620746865206163636f756e7420646f65736e277420616c726561647920686176652061206e616d652c207468656e206120666565206f6620605265736572766174696f6e466565602069732072657365727665644020696e20746865206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28636c6561725f6e616d650028510120436c65617220616e206163636f756e742773206e616d6520616e642072657475726e20746865206465706f7369742e204661696c7320696620746865206163636f756e7420776173206e6f74206e616d65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e246b696c6c5f6e616d6504187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636534e42052656d6f766520616e206163636f756e742773206e616d6520616e642074616b6520636861726765206f6620746865206465706f7369742e004901204661696c73206966206077686f6020686173206e6f74206265656e206e616d65642e20546865206465706f736974206973206465616c742077697468207468726f7567682060543a3a536c6173686564604c20696d62616c616e63652068616e646c65722e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292edc202d204f6e6520756e62616c616e6365642068616e646c6572202870726f6261626c7920612062616c616e6365207472616e736665722968202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28666f7263655f6e616d6508187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106e616d651c5665633c75383e30c82053657420612074686972642d7061727479206163636f756e742773206e616d652077697468206e6f206465706f7369742e00a0204e6f206c656e67746820636865636b696e6720697320646f6e65206f6e20746865206e616d652e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e01141c4e616d6553657404244163636f756e74496404402041206e616d6520776173207365742e284e616d65466f7263656404244163636f756e74496404642041206e616d652077617320666f726369626c79207365742e2c4e616d654368616e67656404244163636f756e74496404502041206e616d6520776173206368616e6765642e2c4e616d65436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e284e616d654b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e0c385265736572766174696f6e4665653042616c616e63654f663c543e4000407a10f35a000000000000000000000444205265736572766174696f6e206665652e244d696e4c656e6774680c7533321003000000048820546865206d696e696d756d206c656e6774682061206e616d65206d61792062652e244d61784c656e6774680c7533321010000000048820546865206d6178696d756d206c656e6774682061206e616d65206d61792062652e00'; - -export default meta; diff --git a/packages/metadata/src/Metadata/v8/toV9.ts b/packages/metadata/src/Metadata/v8/toV9.ts deleted file mode 100644 index 73e2b098a2..0000000000 --- a/packages/metadata/src/Metadata/v8/toV9.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2020 @polkadot/metadata authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { MetadataV8, MetadataV9 } from '@polkadot/types/interfaces/metadata'; -import { Registry } from '@polkadot/types/types'; - -/** @internal */ -export default function toV9 (registry: Registry, { modules }: MetadataV8): MetadataV9 { - return registry.createType('MetadataV9', { modules }); -} diff --git a/packages/rpc-core/src/formatting.spec.FIXME-ts b/packages/rpc-core/src/formatting.spec.FIXME-ts deleted file mode 100644 index e2357d9332..0000000000 --- a/packages/rpc-core/src/formatting.spec.FIXME-ts +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2017-2020 @polkadot/rpc-core authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { Balance } from '@polkadot/types/interfaces'; -import { Codec } from '@polkadot/types/types'; - -import Metadata from '@polkadot/metadata/Decorated'; -import rpcMetadataV3 from '@polkadot/metadata/Metadata/v3/static'; -import rpcMetadataV4 from '@polkadot/metadata/Metadata/v4/static'; -import rpcMetadataV5 from '@polkadot/metadata/Metadata/v5/static'; -import rpcMetadataV6 from '@polkadot/metadata/Metadata/v6/static'; -import rpcMetadataV7 from '@polkadot/metadata/Metadata/v7/static'; -import rpcMetadataV8 from '@polkadot/metadata/Metadata/v8/static'; -import { TypeRegistry } from '@polkadot/types'; - -import Rpc from '.'; - -const registry = new TypeRegistry(); -const ADDR_ONE = '5DkQbYAExs3M2sZgT1Ec3mKfZnAQCL4Dt9beTCknkCUn5jzo'; -const ADDR_TWO = '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'; -const BALANCE_KEYS = [ - /* v3-, using xxHash */ '0x4af2c53fce3ec33c6ccccf22e926f1a7', - /* v4+, using blake2_256 */ '0xec8f96437274a883afcac82d01a9defeb68209cd4f2c084632813692aa5e65ad' -]; -const OPTION_BYTES_HEX = '0x210100000000000000000000000000000000000000000000000000000000000000000000000000000000011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce'; - -function formattingTests (version: string, decorated: Metadata, encodedValues: [string, string, string]): void { - const [ENC_ONE, ENC_TWO, CONTRACT_KEY] = encodedValues; - - describe(`formatting with Metadata ${version}`, (): void => { - let api: Rpc; - let provider: any; - - beforeEach((): void => { - provider = { - send: jest.fn((method, [key]): Promise => - Promise.resolve( - BALANCE_KEYS.includes(key) - ? '0x01020000000000000000000000000000' - : null - ) - ), - subscribe: jest.fn((type, method, params, cb): Promise => { - if (params[0][0] === CONTRACT_KEY) { - // this emulates https://github.com/polkadot-js/api/issues/1051 - cb(null, { - block: '0x2345', - changes: [ - [CONTRACT_KEY, OPTION_BYTES_HEX] - ] - }); - } else if (params[0][0] === ENC_ONE || params[0][0] === ENC_TWO) { - // known values for the balanaces - cb(null, { - block: '0x1234', - changes: [ - [ENC_ONE, '0x01020000000000000000000000000000'], - [ENC_TWO, '0x02010000000000000000000000000000'] - ] - }); - } else { - // return empty values for all else - cb(null, { - block: '0x3456', - changes: [ - [params[0][0], null] - ] - }); - } - - return Promise.resolve(); - }) - }; - - api = new Rpc(registry, provider); - }); - - it('encodes key (with params), decoding response', (done): void => { - api.state - .getStorage([decorated.query.balances.freeBalance, ADDR_ONE]) - .subscribe((value): void => { - expect( - provider.send - ).toHaveBeenCalledWith( - 'state_getStorage', - [ENC_ONE] - ); - expect(value.toNumber()).toEqual(513); - done(); - }); - }); - - it('returns the fallback result on not-found values', (done): void => { - api.state - .getStorage([decorated.query.system.account, ADDR_ONE]) - .subscribe(([value]: any): void => { - expect(value.toHex()).toEqual('0x00000000'); - done(); - }); - }); - - it('encodes multiple keys, decoding multiple results', (done): void => { - api.state.subscribeStorage<[Balance, Balance]>( - [ - [decorated.query.balances.freeBalance, ADDR_ONE], - [decorated.query.balances.freeBalance, ADDR_TWO] - ] - ).subscribe((value): void => { - // console.error(value); - - expect( - provider.subscribe - ).toHaveBeenCalledWith( - 'state_storage', - 'state_subscribeStorage', - [[ENC_ONE, ENC_TWO]], - expect.anything() - ); - expect( - value.map((balance): number => - balance.toNumber() - ) - ).toEqual([0x0201, 0x0102]); - - done(); - }); - }); - - it('handles the case where Option are retrieved', (done): void => { - const call = Number(version.slice(1)) <= 5 - ? decorated.query.contract.pristineCode - : decorated.query.contracts.pristineCode; - - api.state - .subscribeStorage([[call, '0x00']]) - // eslint-disable-next-line @typescript-eslint/no-unused-vars - .subscribe((value: Codec[]): void => { - expect(value).toHaveLength(1); - // console.error(value); - - // expect(value.toHex()).toBe(OPTION_BYTES_HEX); - done(); - }); - }); - - it('handles fallbacks for linked heads (new metadata only)', (done): void => { - const iterKey = decorated.query.staking.validators && decorated.query.staking.validators.iterKey; - - // skip for old - if (!iterKey) { - return done(); - } - - api.state - .subscribeStorage([iterKey()]) - .subscribe((value: Codec[]): void => { - expect(value).toHaveLength(1); - // console.error('head fallback', value); - - done(); - }); - }); - - it('handles fallbacks for linked maps (new metadata only)', (done): void => { - api.state - .subscribeStorage([[decorated.query.staking.validators, '0x00']]) - .subscribe(([value]: Codec[]): void => { - expect(value).toBeDefined(); - // console.error('linked fallback', value); - - done(); - }); - }); - }); -} - -formattingTests('v3', new Metadata(registry, rpcMetadataV3), [ - '0x4af2c53fce3ec33c6ccccf22e926f1a7', - '0x3e62f7ed6e788e1337bce2a97b68a12a', - '0x777519cd81f845abdb40d253923d6098' -]); - -formattingTests('v4', new Metadata(registry, rpcMetadataV4), [ - '0xec8f96437274a883afcac82d01a9defeb68209cd4f2c084632813692aa5e65ad', - '0x1dbb0224910f42a14e7f1406b24c6fe8157296691b02a78756e01946038fffab', - '0xc7879f4faa637a90d782070a3cb6be99a9fb0316e19a0454ce93c4f0a34712f1' -]); - -formattingTests('v5', new Metadata(registry, rpcMetadataV5), [ - '0xec8f96437274a883afcac82d01a9defeb68209cd4f2c084632813692aa5e65ad', - '0x1dbb0224910f42a14e7f1406b24c6fe8157296691b02a78756e01946038fffab', - '0xc7879f4faa637a90d782070a3cb6be99a9fb0316e19a0454ce93c4f0a34712f1' -]); - -formattingTests('v6', new Metadata(registry, rpcMetadataV6), [ - '0xec8f96437274a883afcac82d01a9defeb68209cd4f2c084632813692aa5e65ad', - '0x1dbb0224910f42a14e7f1406b24c6fe8157296691b02a78756e01946038fffab', - '0xc7879f4faa637a90d782070a3cb6be99a9fb0316e19a0454ce93c4f0a34712f1' -]); - -formattingTests('v7', new Metadata(registry, rpcMetadataV7), [ - '0xec8f96437274a883afcac82d01a9defeb68209cd4f2c084632813692aa5e65ad', - '0x1dbb0224910f42a14e7f1406b24c6fe8157296691b02a78756e01946038fffab', - '0xc7879f4faa637a90d782070a3cb6be99a9fb0316e19a0454ce93c4f0a34712f1' -]); - -formattingTests('v8', new Metadata(registry, rpcMetadataV8), [ - '0xec8f96437274a883afcac82d01a9defeb68209cd4f2c084632813692aa5e65ad', - '0x1dbb0224910f42a14e7f1406b24c6fe8157296691b02a78756e01946038fffab', - '0xc7879f4faa637a90d782070a3cb6be99a9fb0316e19a0454ce93c4f0a34712f1' -]); diff --git a/packages/typegen/src/generate/tsDef.ts b/packages/typegen/src/generate/tsDef.ts index 256e620d93..c6785397a3 100644 --- a/packages/typegen/src/generate/tsDef.ts +++ b/packages/typegen/src/generate/tsDef.ts @@ -51,10 +51,12 @@ function tsEnum (definitions: Record, { name: enumName, sub const keys = (sub as TypeDef[]).map(({ info, name = '', type }): string => { const getter = stringUpperFirst(stringCamelCase(name.replace(' ', '_'))); const isComplexType = [TypeDefInfo.Tuple, TypeDefInfo.VecFixed].includes(info); - const asGetter = type === 'Null' + const asGetter = type === 'Null' || info === TypeDefInfo.DoNotConstruct ? '' : createGetter(definitions, `as${getter}`, isComplexType ? formatType(definitions, type, imports) : type, imports); - const isGetter = createGetter(definitions, `is${getter}`, 'boolean', imports); + const isGetter = info === TypeDefInfo.DoNotConstruct + ? '' + : createGetter(definitions, `is${getter}`, 'boolean', imports); switch (info) { case TypeDefInfo.Compact: @@ -65,6 +67,9 @@ function tsEnum (definitions: Record, { name: enumName, sub case TypeDefInfo.VecFixed: return `${isGetter}${asGetter}`; + case TypeDefInfo.DoNotConstruct: + return ''; + default: throw new Error(`Enum: ${enumName || 'undefined'}: Unhandled type ${TypeDefInfo[info]}`); } diff --git a/packages/types-known/src/index.ts b/packages/types-known/src/index.ts index 54d9ee015c..38df777fec 100644 --- a/packages/types-known/src/index.ts +++ b/packages/types-known/src/index.ts @@ -9,7 +9,6 @@ import { Text } from '@polkadot/types'; import { bnToBn, isUndefined } from '@polkadot/util'; import typesChain from './chain'; -import typesMeta from './metadata'; import typesModules from './modules'; import typesSpec from './spec'; import upgrades from './upgrades'; @@ -29,13 +28,6 @@ function filterVersions (versions: OverrideVersionedType[] = [], specVersion: nu }), {}); } -/** - * @description Based on the metadata version, return the registry types - */ -export function getMetadataTypes (_registry: Registry, specVersion: number): RegistryTypes { - return filterVersions(typesMeta, specVersion); -} - /** * @description Get types for specific modules (metadata override) */ diff --git a/packages/types-known/src/metadata.ts b/packages/types-known/src/metadata.ts deleted file mode 100644 index a98d8cd158..0000000000 --- a/packages/types-known/src/metadata.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2017-2020 @polkadot/types-known authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { OverrideVersionedType } from '@polkadot/types/types'; - -// Type overrides based on metadata versions -const typesMeta: OverrideVersionedType[] = [ - { - // NOTE this is for support of old, e.g. Alex, old metadata and BlockNumber/Index - // This is detected based on metadata version, since this is what we have up-front - // v3 = Alex - // v4 = v1.0 branch - minmax: [0, 4], - types: { - Address: 'GenericAddress', - BlockNumber: 'u64', - EventRecord: 'EventRecordTo76', - Index: 'u64', - StakingLedger: 'StakingLedgerTo223', - ValidatorPrefs: 'ValidatorPrefsTo145' - } - } -]; - -export default typesMeta; diff --git a/packages/types-known/src/modules.ts b/packages/types-known/src/modules.ts index f8ef806797..28c2a05bea 100644 --- a/packages/types-known/src/modules.ts +++ b/packages/types-known/src/modules.ts @@ -11,10 +11,6 @@ const typesModules: Record = { balances: { Status: 'BalanceStatus' }, - contract: { // old metadata & naming - // v2 & v3 - AccountInfo: 'ContractAccountInfo' - }, contracts: { StorageKey: 'ContractStorageKey' }, diff --git a/packages/types/src/augment/registry.ts b/packages/types/src/augment/registry.ts index a95900235b..ac325ccf44 100644 --- a/packages/types/src/augment/registry.ts +++ b/packages/types/src/augment/registry.ts @@ -25,7 +25,7 @@ import { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV import { AuthorityIndex, AuthorityList, AuthorityWeight, EncodedFinalityProofs, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaPrevote, JustificationNotification, KeyOwnerProof, NextAuthority, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa'; import { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement } from '@polkadot/types/interfaces/identity'; import { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline'; -import { CallMetadataV0, DoubleMapTypeLatest, DoubleMapTypeV10, DoubleMapTypeV11, DoubleMapTypeV12, DoubleMapTypeV3, DoubleMapTypeV4, DoubleMapTypeV5, DoubleMapTypeV6, DoubleMapTypeV7, DoubleMapTypeV8, DoubleMapTypeV9, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV8, ErrorMetadataV9, EventMetadataLatest, EventMetadataV0, EventMetadataV1, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV2, EventMetadataV3, EventMetadataV4, EventMetadataV5, EventMetadataV6, EventMetadataV7, EventMetadataV8, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV0, FunctionArgumentMetadataV1, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV2, FunctionArgumentMetadataV3, FunctionArgumentMetadataV4, FunctionArgumentMetadataV5, FunctionArgumentMetadataV6, FunctionArgumentMetadataV7, FunctionArgumentMetadataV8, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV0, FunctionMetadataV1, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV2, FunctionMetadataV3, FunctionMetadataV4, FunctionMetadataV5, FunctionMetadataV6, FunctionMetadataV7, FunctionMetadataV8, FunctionMetadataV9, MapTypeLatest, MapTypeV0, MapTypeV10, MapTypeV11, MapTypeV12, MapTypeV2, MapTypeV3, MapTypeV4, MapTypeV5, MapTypeV6, MapTypeV7, MapTypeV8, MapTypeV9, MetadataAll, MetadataLatest, MetadataV0, MetadataV1, MetadataV10, MetadataV11, MetadataV12, MetadataV2, MetadataV3, MetadataV4, MetadataV5, MetadataV6, MetadataV7, MetadataV8, MetadataV9, ModuleConstantMetadataLatest, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV6, ModuleConstantMetadataV7, ModuleConstantMetadataV8, ModuleConstantMetadataV9, ModuleMetadataLatest, ModuleMetadataV0, ModuleMetadataV1, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV2, ModuleMetadataV3, ModuleMetadataV4, ModuleMetadataV5, ModuleMetadataV6, ModuleMetadataV7, ModuleMetadataV8, ModuleMetadataV9, OuterDispatchCallV0, OuterDispatchMetadataV0, OuterEventEventMetadataEventsV0, OuterEventEventMetadataV0, OuterEventMetadataV0, PlainTypeLatest, PlainTypeV0, PlainTypeV10, PlainTypeV11, PlainTypeV12, PlainTypeV2, PlainTypeV3, PlainTypeV4, PlainTypeV5, PlainTypeV6, PlainTypeV7, PlainTypeV8, PlainTypeV9, RuntimeModuleMetadataV0, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV6, StorageEntryMetadataV7, StorageEntryMetadataV8, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV6, StorageEntryModifierV7, StorageEntryModifierV8, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV6, StorageEntryTypeV7, StorageEntryTypeV8, StorageEntryTypeV9, StorageFunctionMetadataV0, StorageFunctionMetadataV1, StorageFunctionMetadataV2, StorageFunctionMetadataV3, StorageFunctionMetadataV4, StorageFunctionMetadataV5, StorageFunctionModifierV0, StorageFunctionModifierV1, StorageFunctionModifierV2, StorageFunctionModifierV3, StorageFunctionModifierV4, StorageFunctionModifierV5, StorageFunctionTypeV0, StorageFunctionTypeV1, StorageFunctionTypeV2, StorageFunctionTypeV3, StorageFunctionTypeV4, StorageFunctionTypeV5, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV4, StorageHasherV5, StorageHasherV6, StorageHasherV7, StorageHasherV8, StorageHasherV9, StorageMetadataLatest, StorageMetadataV0, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV7, StorageMetadataV8, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata'; +import { DoubleMapTypeLatest, DoubleMapTypeV10, DoubleMapTypeV11, DoubleMapTypeV12, DoubleMapTypeV9, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV9, MapTypeLatest, MapTypeV10, MapTypeV11, MapTypeV12, MapTypeV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV9, ModuleConstantMetadataLatest, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV9, ModuleMetadataLatest, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV9, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV9, StorageMetadataLatest, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata'; import { StorageKind } from '@polkadot/types/interfaces/offchain'; import { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences'; import { AbridgedCandidateReceipt, AttestedCandidate, AuctionIndex, Bidder, CandidateCommitments, CandidateReceipt, CollatorId, CollatorSignature, DoubleVoteReport, DownwardMessage, GlobalValidationSchedule, HeadData, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, LeasePeriod, LeasePeriodOf, LocalValidationData, NewBidder, ParaId, ParaInfo, ParaPastCodeMeta, ParaScheduling, ParachainDispatchOrigin, ParachainProposal, RegisteredParachainInfo, RelayChainBlockNumber, Remark, Retriable, Scheduling, SigningContext, SlotRange, Statement, SubId, UpwardMessage, ValidationCode, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, WinningData, WinningDataEntry } from '@polkadot/types/interfaces/parachains'; @@ -42,7 +42,7 @@ import { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatu import { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactScore, CompactScoreCompact, ElectionCompute, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RewardDestination, RewardDestinationTo257, RewardPoint, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196 } from '@polkadot/types/interfaces/staking'; import { ApiId, KeyValueOption, ReadProof, RuntimeVersion, RuntimeVersionApi, StorageChangeSet } from '@polkadot/types/interfaces/state'; import { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support'; -import { AccountInfo, ApplyExtrinsicResult, ChainProperties, ChainType, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, EventRecordTo76, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, Phase, RefCount, RefCountTo259, TransactionValidityError, UnknownTransaction } from '@polkadot/types/interfaces/system'; +import { AccountInfo, ApplyExtrinsicResult, ChainProperties, ChainType, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, Phase, RefCount, RefCountTo259, TransactionValidityError, UnknownTransaction } from '@polkadot/types/interfaces/system'; import { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury'; import { Multiplier } from '@polkadot/types/interfaces/txpayment'; import { Multisig, Timepoint } from '@polkadot/types/interfaces/utility'; @@ -1134,9 +1134,6 @@ declare module '@polkadot/types/types/registry' { EventRecord: EventRecord; 'Option': Option; 'Vec': Vec; - EventRecordTo76: EventRecordTo76; - 'Option': Option; - 'Vec': Vec; Health: Health; 'Option': Option; 'Vec': Vec; @@ -1401,345 +1398,6 @@ declare module '@polkadot/types/types/registry' { EthereumLookupSource: EthereumLookupSource; 'Option': Option; 'Vec': Vec; - CallMetadataV0: CallMetadataV0; - 'Option': Option; - 'Vec': Vec; - EventMetadataV0: EventMetadataV0; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV0: FunctionArgumentMetadataV0; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV0: FunctionMetadataV0; - 'Option': Option; - 'Vec': Vec; - MapTypeV0: MapTypeV0; - 'Option': Option; - 'Vec': Vec; - MetadataV0: MetadataV0; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV0: ModuleMetadataV0; - 'Option': Option; - 'Vec': Vec; - OuterDispatchCallV0: OuterDispatchCallV0; - 'Option': Option; - 'Vec': Vec; - OuterDispatchMetadataV0: OuterDispatchMetadataV0; - 'Option': Option; - 'Vec': Vec; - OuterEventEventMetadataEventsV0: OuterEventEventMetadataEventsV0; - 'Option': Option; - 'Vec': Vec; - OuterEventEventMetadataV0: OuterEventEventMetadataV0; - 'Option': Option; - 'Vec': Vec; - OuterEventMetadataV0: OuterEventMetadataV0; - 'Option': Option; - 'Vec': Vec; - PlainTypeV0: PlainTypeV0; - 'Option': Option; - 'Vec': Vec; - RuntimeModuleMetadataV0: RuntimeModuleMetadataV0; - 'Option': Option; - 'Vec': Vec; - StorageFunctionMetadataV0: StorageFunctionMetadataV0; - 'Option': Option; - 'Vec': Vec; - StorageFunctionModifierV0: StorageFunctionModifierV0; - 'Option': Option; - 'Vec': Vec; - StorageFunctionTypeV0: StorageFunctionTypeV0; - 'Option': Option; - 'Vec': Vec; - StorageMetadataV0: StorageMetadataV0; - 'Option': Option; - 'Vec': Vec; - EventMetadataV1: EventMetadataV1; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV1: FunctionArgumentMetadataV1; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV1: FunctionMetadataV1; - 'Option': Option; - 'Vec': Vec; - MetadataV1: MetadataV1; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV1: ModuleMetadataV1; - 'Option': Option; - 'Vec': Vec; - StorageFunctionMetadataV1: StorageFunctionMetadataV1; - 'Option': Option; - 'Vec': Vec; - StorageFunctionModifierV1: StorageFunctionModifierV1; - 'Option': Option; - 'Vec': Vec; - StorageFunctionTypeV1: StorageFunctionTypeV1; - 'Option': Option; - 'Vec': Vec; - EventMetadataV2: EventMetadataV2; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV2: FunctionArgumentMetadataV2; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV2: FunctionMetadataV2; - 'Option': Option; - 'Vec': Vec; - MapTypeV2: MapTypeV2; - 'Option': Option; - 'Vec': Vec; - MetadataV2: MetadataV2; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV2: ModuleMetadataV2; - 'Option': Option; - 'Vec': Vec; - PlainTypeV2: PlainTypeV2; - 'Option': Option; - 'Vec': Vec; - StorageFunctionMetadataV2: StorageFunctionMetadataV2; - 'Option': Option; - 'Vec': Vec; - StorageFunctionModifierV2: StorageFunctionModifierV2; - 'Option': Option; - 'Vec': Vec; - StorageFunctionTypeV2: StorageFunctionTypeV2; - 'Option': Option; - 'Vec': Vec; - DoubleMapTypeV3: DoubleMapTypeV3; - 'Option': Option; - 'Vec': Vec; - EventMetadataV3: EventMetadataV3; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV3: FunctionArgumentMetadataV3; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV3: FunctionMetadataV3; - 'Option': Option; - 'Vec': Vec; - MapTypeV3: MapTypeV3; - 'Option': Option; - 'Vec': Vec; - MetadataV3: MetadataV3; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV3: ModuleMetadataV3; - 'Option': Option; - 'Vec': Vec; - PlainTypeV3: PlainTypeV3; - 'Option': Option; - 'Vec': Vec; - StorageFunctionMetadataV3: StorageFunctionMetadataV3; - 'Option': Option; - 'Vec': Vec; - StorageFunctionModifierV3: StorageFunctionModifierV3; - 'Option': Option; - 'Vec': Vec; - StorageFunctionTypeV3: StorageFunctionTypeV3; - 'Option': Option; - 'Vec': Vec; - DoubleMapTypeV4: DoubleMapTypeV4; - 'Option': Option; - 'Vec': Vec; - EventMetadataV4: EventMetadataV4; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV4: FunctionArgumentMetadataV4; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV4: FunctionMetadataV4; - 'Option': Option; - 'Vec': Vec; - MapTypeV4: MapTypeV4; - 'Option': Option; - 'Vec': Vec; - MetadataV4: MetadataV4; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV4: ModuleMetadataV4; - 'Option': Option; - 'Vec': Vec; - PlainTypeV4: PlainTypeV4; - 'Option': Option; - 'Vec': Vec; - StorageFunctionMetadataV4: StorageFunctionMetadataV4; - 'Option': Option; - 'Vec': Vec; - StorageFunctionModifierV4: StorageFunctionModifierV4; - 'Option': Option; - 'Vec': Vec; - StorageFunctionTypeV4: StorageFunctionTypeV4; - 'Option': Option; - 'Vec': Vec; - StorageHasherV4: StorageHasherV4; - 'Option': Option; - 'Vec': Vec; - DoubleMapTypeV5: DoubleMapTypeV5; - 'Option': Option; - 'Vec': Vec; - EventMetadataV5: EventMetadataV5; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV5: FunctionArgumentMetadataV5; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV5: FunctionMetadataV5; - 'Option': Option; - 'Vec': Vec; - MapTypeV5: MapTypeV5; - 'Option': Option; - 'Vec': Vec; - MetadataV5: MetadataV5; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV5: ModuleMetadataV5; - 'Option': Option; - 'Vec': Vec; - PlainTypeV5: PlainTypeV5; - 'Option': Option; - 'Vec': Vec; - StorageFunctionMetadataV5: StorageFunctionMetadataV5; - 'Option': Option; - 'Vec': Vec; - StorageFunctionModifierV5: StorageFunctionModifierV5; - 'Option': Option; - 'Vec': Vec; - StorageFunctionTypeV5: StorageFunctionTypeV5; - 'Option': Option; - 'Vec': Vec; - StorageHasherV5: StorageHasherV5; - 'Option': Option; - 'Vec': Vec; - DoubleMapTypeV6: DoubleMapTypeV6; - 'Option': Option; - 'Vec': Vec; - EventMetadataV6: EventMetadataV6; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV6: FunctionArgumentMetadataV6; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV6: FunctionMetadataV6; - 'Option': Option; - 'Vec': Vec; - MapTypeV6: MapTypeV6; - 'Option': Option; - 'Vec': Vec; - MetadataV6: MetadataV6; - 'Option': Option; - 'Vec': Vec; - ModuleConstantMetadataV6: ModuleConstantMetadataV6; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV6: ModuleMetadataV6; - 'Option': Option; - 'Vec': Vec; - PlainTypeV6: PlainTypeV6; - 'Option': Option; - 'Vec': Vec; - StorageEntryModifierV6: StorageEntryModifierV6; - 'Option': Option; - 'Vec': Vec; - StorageEntryMetadataV6: StorageEntryMetadataV6; - 'Option': Option; - 'Vec': Vec; - StorageEntryTypeV6: StorageEntryTypeV6; - 'Option': Option; - 'Vec': Vec; - StorageHasherV6: StorageHasherV6; - 'Option': Option; - 'Vec': Vec; - DoubleMapTypeV7: DoubleMapTypeV7; - 'Option': Option; - 'Vec': Vec; - EventMetadataV7: EventMetadataV7; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV7: FunctionArgumentMetadataV7; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV7: FunctionMetadataV7; - 'Option': Option; - 'Vec': Vec; - MapTypeV7: MapTypeV7; - 'Option': Option; - 'Vec': Vec; - MetadataV7: MetadataV7; - 'Option': Option; - 'Vec': Vec; - ModuleConstantMetadataV7: ModuleConstantMetadataV7; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV7: ModuleMetadataV7; - 'Option': Option; - 'Vec': Vec; - PlainTypeV7: PlainTypeV7; - 'Option': Option; - 'Vec': Vec; - StorageEntryModifierV7: StorageEntryModifierV7; - 'Option': Option; - 'Vec': Vec; - StorageEntryMetadataV7: StorageEntryMetadataV7; - 'Option': Option; - 'Vec': Vec; - StorageEntryTypeV7: StorageEntryTypeV7; - 'Option': Option; - 'Vec': Vec; - StorageHasherV7: StorageHasherV7; - 'Option': Option; - 'Vec': Vec; - StorageMetadataV7: StorageMetadataV7; - 'Option': Option; - 'Vec': Vec; - DoubleMapTypeV8: DoubleMapTypeV8; - 'Option': Option; - 'Vec': Vec; - ErrorMetadataV8: ErrorMetadataV8; - 'Option': Option; - 'Vec': Vec; - EventMetadataV8: EventMetadataV8; - 'Option': Option; - 'Vec': Vec; - FunctionArgumentMetadataV8: FunctionArgumentMetadataV8; - 'Option': Option; - 'Vec': Vec; - FunctionMetadataV8: FunctionMetadataV8; - 'Option': Option; - 'Vec': Vec; - MapTypeV8: MapTypeV8; - 'Option': Option; - 'Vec': Vec; - MetadataV8: MetadataV8; - 'Option': Option; - 'Vec': Vec; - ModuleConstantMetadataV8: ModuleConstantMetadataV8; - 'Option': Option; - 'Vec': Vec; - ModuleMetadataV8: ModuleMetadataV8; - 'Option': Option; - 'Vec': Vec; - PlainTypeV8: PlainTypeV8; - 'Option': Option; - 'Vec': Vec; - StorageEntryModifierV8: StorageEntryModifierV8; - 'Option': Option; - 'Vec': Vec; - StorageEntryMetadataV8: StorageEntryMetadataV8; - 'Option': Option; - 'Vec': Vec; - StorageEntryTypeV8: StorageEntryTypeV8; - 'Option': Option; - 'Vec': Vec; - StorageHasherV8: StorageHasherV8; - 'Option': Option; - 'Vec': Vec; - StorageMetadataV8: StorageMetadataV8; - 'Option': Option; - 'Vec': Vec; DoubleMapTypeV9: DoubleMapTypeV9; 'Option': Option; 'Vec': Vec; @@ -1767,15 +1425,12 @@ declare module '@polkadot/types/types/registry' { ModuleMetadataV9: ModuleMetadataV9; 'Option': Option; 'Vec': Vec; - PlainTypeV9: PlainTypeV9; - 'Option': Option; - 'Vec': Vec; - StorageEntryModifierV9: StorageEntryModifierV9; - 'Option': Option; - 'Vec': Vec; StorageEntryMetadataV9: StorageEntryMetadataV9; 'Option': Option; 'Vec': Vec; + StorageEntryModifierV9: StorageEntryModifierV9; + 'Option': Option; + 'Vec': Vec; StorageEntryTypeV9: StorageEntryTypeV9; 'Option': Option; 'Vec': Vec; @@ -1812,9 +1467,6 @@ declare module '@polkadot/types/types/registry' { ModuleMetadataV10: ModuleMetadataV10; 'Option': Option; 'Vec': Vec; - PlainTypeV10: PlainTypeV10; - 'Option': Option; - 'Vec': Vec; StorageEntryModifierV10: StorageEntryModifierV10; 'Option': Option; 'Vec': Vec; @@ -1860,9 +1512,6 @@ declare module '@polkadot/types/types/registry' { ModuleMetadataV11: ModuleMetadataV11; 'Option': Option; 'Vec': Vec; - PlainTypeV11: PlainTypeV11; - 'Option': Option; - 'Vec': Vec; StorageEntryModifierV11: StorageEntryModifierV11; 'Option': Option; 'Vec': Vec; @@ -1908,9 +1557,6 @@ declare module '@polkadot/types/types/registry' { ModuleMetadataV12: ModuleMetadataV12; 'Option': Option; 'Vec': Vec; - PlainTypeV12: PlainTypeV12; - 'Option': Option; - 'Vec': Vec; StorageEntryModifierV12: StorageEntryModifierV12; 'Option': Option; 'Vec': Vec; @@ -1953,9 +1599,6 @@ declare module '@polkadot/types/types/registry' { ModuleMetadataLatest: ModuleMetadataLatest; 'Option': Option; 'Vec': Vec; - PlainTypeLatest: PlainTypeLatest; - 'Option': Option; - 'Vec': Vec; StorageEntryMetadataLatest: StorageEntryMetadataLatest; 'Option': Option; 'Vec': Vec; diff --git a/packages/types/src/index.spec.ts b/packages/types/src/index.spec.ts index 8da13a4f88..594972100b 100644 --- a/packages/types/src/index.spec.ts +++ b/packages/types/src/index.spec.ts @@ -17,6 +17,7 @@ const UNCONSTRUCTABLE = [ 'ExtrinsicPayloadUnknown', 'GenericExtrinsicPayloadUnknown', 'ExtrinsicUnknown', 'GenericExtrinsicUnknown', 'DoNotConstruct', + 'MetadataAll', 'Origin', 'usize' ].map((v): string => v.toLowerCase()); diff --git a/packages/types/src/interfaces/metadata/definitions.ts b/packages/types/src/interfaces/metadata/definitions.ts index e9275abaf7..c4ddf445a2 100644 --- a/packages/types/src/interfaces/metadata/definitions.ts +++ b/packages/types/src/interfaces/metadata/definitions.ts @@ -22,220 +22,73 @@ export { AllHashers }; export default { rpc: {}, types: { - // v0 - CallMetadataV0: { - name: 'Text', - functions: 'Vec' + // v9 + DoubleMapTypeV9: { + hasher: 'StorageHasherV9', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV9' }, - EventMetadataV0: { + ErrorMetadataV9: { + name: 'Text', + documentation: 'Vec' + }, + EventMetadataV9: { name: 'Text', args: 'Vec', documentation: 'Vec' }, - FunctionArgumentMetadataV0: { + FunctionArgumentMetadataV9: { name: 'Text', type: 'Type' }, - FunctionMetadataV0: { - id: 'u16', + FunctionMetadataV9: { name: 'Text', - args: 'Vec', + args: 'Vec', documentation: 'Vec' }, - MapTypeV0: { + MapTypeV9: { + hasher: 'StorageHasherV9', key: 'Type', - value: 'Type' + value: 'Type', + linked: 'bool' }, - MetadataV0: { - outerEvent: 'OuterEventMetadataV0', - modules: 'Vec', - outerDispatch: 'OuterDispatchMetadataV0' + MetadataV9: { + modules: 'Vec' }, - ModuleMetadataV0: { + ModuleConstantMetadataV9: { name: 'Text', - call: 'CallMetadataV0' + type: 'Type', + value: 'Bytes', + documentation: 'Vec' }, - OuterDispatchCallV0: { + ModuleMetadataV9: { name: 'Text', - prefix: 'Text', - index: 'u16' + storage: 'Option', + calls: 'Option>', + events: 'Option>', + constants: 'Vec', + errors: 'Vec' }, - OuterDispatchMetadataV0: { + StorageEntryMetadataV9: { name: 'Text', - calls: 'Vec' - }, - OuterEventEventMetadataEventsV0: 'Vec', - OuterEventEventMetadataV0: '(Text, OuterEventEventMetadataEventsV0)', - OuterEventMetadataV0: { - name: 'Text', - events: 'Vec' - }, - PlainTypeV0: 'Type', - RuntimeModuleMetadataV0: { - prefix: 'Text', - module: 'ModuleMetadataV0', - storage: 'Option' - }, - StorageFunctionMetadataV0: { - name: 'Text', - modifier: 'StorageFunctionModifierV0', - type: 'StorageFunctionTypeV0', + modifier: 'StorageEntryModifierV9', + type: 'StorageEntryTypeV9', fallback: 'Bytes', documentation: 'Vec' }, - StorageFunctionModifierV0: { + StorageEntryModifierV9: { _enum: ['Optional', 'Default', 'Required'] }, - StorageFunctionTypeV0: { + StorageEntryTypeV9: { _enum: { - Plain: 'PlainTypeV0', - Map: 'MapTypeV0' + Plain: 'Type', + Map: 'MapTypeV9', + DoubleMap: 'DoubleMapTypeV9' } }, - StorageMetadataV0: { - prefix: 'Text', - functions: 'Vec' - }, - - // v1 - EventMetadataV1: 'EventMetadataV0', - FunctionArgumentMetadataV1: 'FunctionArgumentMetadataV0', - FunctionMetadataV1: { - name: 'Text', - args: 'Vec', - documentation: 'Vec' - }, - MetadataV1: { - modules: 'Vec' - }, - ModuleMetadataV1: { - name: 'Text', - prefix: 'Text', - storage: 'Option>', - calls: 'Option>', - events: 'Option>' - }, - StorageFunctionMetadataV1: 'StorageFunctionMetadataV0', - StorageFunctionModifierV1: 'StorageFunctionModifierV0', - StorageFunctionTypeV1: 'StorageFunctionTypeV0', - - // v2 - EventMetadataV2: 'EventMetadataV1', - FunctionArgumentMetadataV2: 'FunctionArgumentMetadataV1', - FunctionMetadataV2: 'FunctionMetadataV1', - MapTypeV2: { - key: 'Type', - value: 'Type', - linked: 'bool' - }, - MetadataV2: { - modules: 'Vec' - }, - ModuleMetadataV2: { - name: 'Text', - prefix: 'Text', - storage: 'Option>', - calls: 'Option>', - events: 'Option>' - }, - PlainTypeV2: 'Type', - StorageFunctionMetadataV2: { - name: 'Text', - modifier: 'StorageFunctionModifierV2', - type: 'StorageFunctionTypeV2', - fallback: 'Bytes', - documentation: 'Vec' - }, - StorageFunctionModifierV2: 'StorageFunctionModifierV1', - StorageFunctionTypeV2: { - _enum: { - Plain: 'PlainTypeV2', - Map: 'MapTypeV2' - } - }, - - // v3 - DoubleMapTypeV3: { - key1: 'Type', - key2: 'Type', - value: 'Type', - key2Hasher: 'Text' - }, - EventMetadataV3: 'EventMetadataV2', - FunctionArgumentMetadataV3: 'FunctionArgumentMetadataV2', - FunctionMetadataV3: 'FunctionMetadataV2', - MapTypeV3: 'MapTypeV2', - MetadataV3: { - modules: 'Vec' - }, - ModuleMetadataV3: { - name: 'Text', - prefix: 'Text', - storage: 'Option>', - calls: 'Option>', - events: 'Option>' - }, - PlainTypeV3: 'Type', - StorageFunctionMetadataV3: { - name: 'Text', - modifier: 'StorageFunctionModifierV3', - type: 'StorageFunctionTypeV3', - fallback: 'Bytes', - documentation: 'Vec' - }, - StorageFunctionModifierV3: 'StorageFunctionModifierV2', - StorageFunctionTypeV3: { - _enum: { - Plain: 'PlainTypeV3', - Map: 'MapTypeV3', - DoubleMap: 'DoubleMapTypeV3' - } - }, - - // v4 - DoubleMapTypeV4: { - hasher: 'StorageHasherV4', - key1: 'Type', - key2: 'Type', - value: 'Type', - key2Hasher: 'Text' - }, - EventMetadataV4: 'EventMetadataV3', - FunctionArgumentMetadataV4: 'FunctionArgumentMetadataV3', - FunctionMetadataV4: 'FunctionMetadataV3', - MapTypeV4: { - hasher: 'StorageHasherV4', - key: 'Type', - value: 'Type', - linked: 'bool' - }, - MetadataV4: { - modules: 'Vec' - }, - ModuleMetadataV4: { - name: 'Text', - prefix: 'Text', - storage: 'Option>', - calls: 'Option>', - events: 'Option>' - }, - PlainTypeV4: 'Type', - StorageFunctionMetadataV4: { - name: 'Text', - modifier: 'StorageFunctionModifierV4', - type: 'StorageFunctionTypeV4', - fallback: 'Bytes', - documentation: 'Vec' - }, - StorageFunctionModifierV4: 'StorageFunctionModifierV3', - StorageFunctionTypeV4: { - _enum: { - Plain: 'PlainTypeV4', - Map: 'MapTypeV4', - DoubleMap: 'DoubleMapTypeV4' - } - }, - StorageHasherV4: { + StorageHasherV9: { _enum: { Blake2_128: null, // eslint-disable-line camelcase Blake2_256: null, // eslint-disable-line camelcase @@ -244,148 +97,10 @@ export default { Twox64Concat: null } }, - - // v5 - DoubleMapTypeV5: { - hasher: 'StorageHasherV5', - key1: 'Type', - key2: 'Type', - value: 'Type', - key2Hasher: 'StorageHasherV5' - }, - EventMetadataV5: 'EventMetadataV4', - FunctionArgumentMetadataV5: 'FunctionArgumentMetadataV4', - FunctionMetadataV5: 'FunctionMetadataV4', - MapTypeV5: 'MapTypeV4', - MetadataV5: { - modules: 'Vec' - }, - ModuleMetadataV5: { - name: 'Text', + StorageMetadataV9: { prefix: 'Text', - storage: 'Option>', - calls: 'Option>', - events: 'Option>' + items: 'Vec' }, - PlainTypeV5: 'Type', - StorageFunctionMetadataV5: { - name: 'Text', - modifier: 'StorageFunctionModifierV5', - type: 'StorageFunctionTypeV5', - fallback: 'Bytes', - documentation: 'Vec' - }, - StorageFunctionModifierV5: 'StorageFunctionModifierV4', - StorageFunctionTypeV5: { - _enum: { - Plain: 'PlainTypeV5', - Map: 'MapTypeV5', - DoubleMap: 'DoubleMapTypeV5' - } - }, - StorageHasherV5: 'StorageHasherV4', - - // v6 - DoubleMapTypeV6: 'DoubleMapTypeV5', - EventMetadataV6: 'EventMetadataV5', - FunctionArgumentMetadataV6: 'FunctionArgumentMetadataV5', - FunctionMetadataV6: 'FunctionMetadataV5', - MapTypeV6: 'MapTypeV5', - MetadataV6: { - modules: 'Vec' - }, - ModuleConstantMetadataV6: { - name: 'Text', - type: 'Type', - value: 'Bytes', - documentation: 'Vec' - }, - ModuleMetadataV6: { - name: 'Text', - prefix: 'Text', - storage: 'Option>', - calls: 'Option>', - events: 'Option>', - constants: 'Vec' - }, - PlainTypeV6: 'Type', - StorageEntryModifierV6: 'StorageFunctionModifierV5', - StorageEntryMetadataV6: 'StorageFunctionMetadataV5', - StorageEntryTypeV6: 'StorageFunctionTypeV5', - StorageHasherV6: 'StorageHasherV5', - - // v7 - DoubleMapTypeV7: 'DoubleMapTypeV6', - EventMetadataV7: 'EventMetadataV6', - FunctionArgumentMetadataV7: 'FunctionArgumentMetadataV6', - FunctionMetadataV7: 'FunctionMetadataV6', - MapTypeV7: 'MapTypeV6', - MetadataV7: { - modules: 'Vec' - }, - ModuleConstantMetadataV7: 'ModuleConstantMetadataV6', - ModuleMetadataV7: { - name: 'Text', - storage: 'Option', - calls: 'Option>', - events: 'Option>', - constants: 'Vec' - }, - PlainTypeV7: 'Type', - StorageEntryModifierV7: 'StorageEntryModifierV6', - StorageEntryMetadataV7: 'StorageEntryMetadataV6', - StorageEntryTypeV7: 'StorageEntryTypeV6', - StorageHasherV7: 'StorageHasherV6', - StorageMetadataV7: { - prefix: 'Text', - items: 'Vec' - }, - - // v8 - DoubleMapTypeV8: 'DoubleMapTypeV7', - ErrorMetadataV8: { - name: 'Text', - documentation: 'Vec' - }, - EventMetadataV8: 'EventMetadataV7', - FunctionArgumentMetadataV8: 'FunctionArgumentMetadataV7', - FunctionMetadataV8: 'FunctionMetadataV7', - MapTypeV8: 'MapTypeV7', - MetadataV8: { - modules: 'Vec' - }, - ModuleConstantMetadataV8: 'ModuleConstantMetadataV7', - ModuleMetadataV8: { - name: 'Text', - storage: 'Option', - calls: 'Option>', - events: 'Option>', - constants: 'Vec', - errors: 'Vec' - }, - PlainTypeV8: 'Type', - StorageEntryModifierV8: 'StorageEntryModifierV7', - StorageEntryMetadataV8: 'StorageEntryMetadataV7', - StorageEntryTypeV8: 'StorageEntryTypeV7', - StorageHasherV8: 'StorageHasherV7', - StorageMetadataV8: 'StorageMetadataV7', - - // v9 - DoubleMapTypeV9: 'DoubleMapTypeV8', - ErrorMetadataV9: 'ErrorMetadataV8', - EventMetadataV9: 'EventMetadataV8', - FunctionArgumentMetadataV9: 'FunctionArgumentMetadataV8', - FunctionMetadataV9: 'FunctionMetadataV8', - MapTypeV9: 'MapTypeV8', - MetadataV9: 'MetadataV8', - ModuleConstantMetadataV9: 'ModuleConstantMetadataV8', - ModuleMetadataV9: 'ModuleMetadataV8', - PlainTypeV9: 'Type', - StorageEntryModifierV9: 'StorageEntryModifierV8', - StorageEntryMetadataV9: 'StorageEntryMetadataV8', - StorageEntryTypeV9: 'StorageEntryTypeV8', - StorageHasherV9: 'StorageHasherV8', - StorageMetadataV9: 'StorageMetadataV8', // v10 DoubleMapTypeV10: { @@ -417,7 +132,6 @@ export default { constants: 'Vec', errors: 'Vec' }, - PlainTypeV10: 'Type', StorageEntryModifierV10: 'StorageEntryModifierV9', StorageEntryMetadataV10: { name: 'Text', @@ -428,7 +142,7 @@ export default { }, StorageEntryTypeV10: { _enum: { - Plain: 'PlainTypeV10', + Plain: 'Type', Map: 'MapTypeV10', DoubleMap: 'DoubleMapTypeV10' } @@ -483,7 +197,6 @@ export default { constants: 'Vec', errors: 'Vec' }, - PlainTypeV11: 'Type', StorageEntryModifierV11: 'StorageEntryModifierV10', StorageEntryMetadataV11: { name: 'Text', @@ -494,7 +207,7 @@ export default { }, StorageEntryTypeV11: { _enum: { - Plain: 'PlainTypeV11', + Plain: 'Type', Map: 'MapTypeV11', DoubleMap: 'DoubleMapTypeV11' } @@ -529,7 +242,6 @@ export default { errors: 'Vec', index: 'u8' }, - PlainTypeV12: 'Type', StorageEntryModifierV12: 'StorageEntryModifierV11', StorageEntryMetadataV12: 'StorageEntryMetadataV11', StorageEntryTypeV12: 'StorageEntryTypeV11', @@ -546,7 +258,6 @@ export default { MetadataLatest: 'MetadataV12', ModuleConstantMetadataLatest: 'ModuleConstantMetadataV12', ModuleMetadataLatest: 'ModuleMetadataV12', - PlainTypeLatest: 'PlainTypeV12', StorageEntryMetadataLatest: 'StorageEntryMetadataV12', StorageEntryModifierLatest: 'StorageEntryModifierV12', StorageEntryTypeLatest: 'StorageEntryTypeV12', @@ -556,15 +267,16 @@ export default { // the enum containing all the mappings MetadataAll: { _enum: { - V0: 'MetadataV0', - V1: 'MetadataV1', - V2: 'MetadataV2', - V3: 'MetadataV3', - V4: 'MetadataV4', - V5: 'MetadataV5', - V6: 'MetadataV6', - V7: 'MetadataV7', - V8: 'MetadataV8', + V0: 'DoNotConstruct', + V1: 'DoNotConstruct', + V2: 'DoNotConstruct', + V3: 'DoNotConstruct', + V4: 'DoNotConstruct', + V5: 'DoNotConstruct', + V6: 'DoNotConstruct', + V7: 'DoNotConstruct', + V8: 'DoNotConstruct', + // First version on Kusama in V9, dropping will be problematic V9: 'MetadataV9', V10: 'MetadataV10', V11: 'MetadataV11', diff --git a/packages/types/src/interfaces/metadata/types.ts b/packages/types/src/interfaces/metadata/types.ts index 78fe66f05b..8a26ac710b 100644 --- a/packages/types/src/interfaces/metadata/types.ts +++ b/packages/types/src/interfaces/metadata/types.ts @@ -1,15 +1,8 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ -import { ITuple } from '@polkadot/types/types'; import { Enum, Option, Struct, Vec } from '@polkadot/types/codec'; -import { Bytes, Text, Type, bool, u16, u8 } from '@polkadot/types/primitive'; - -/** @name CallMetadataV0 */ -export interface CallMetadataV0 extends Struct { - readonly name: Text; - readonly functions: Vec; -} +import { Bytes, Text, Type, bool, u8 } from '@polkadot/types/primitive'; /** @name DoubleMapTypeLatest */ export interface DoubleMapTypeLatest extends DoubleMapTypeV12 {} @@ -35,43 +28,14 @@ export interface DoubleMapTypeV11 extends Struct { /** @name DoubleMapTypeV12 */ export interface DoubleMapTypeV12 extends DoubleMapTypeV11 {} -/** @name DoubleMapTypeV3 */ -export interface DoubleMapTypeV3 extends Struct { - readonly key1: Type; - readonly key2: Type; - readonly value: Type; - readonly key2Hasher: Text; -} - -/** @name DoubleMapTypeV4 */ -export interface DoubleMapTypeV4 extends Struct { - readonly hasher: StorageHasherV4; - readonly key1: Type; - readonly key2: Type; - readonly value: Type; - readonly key2Hasher: Text; -} - -/** @name DoubleMapTypeV5 */ -export interface DoubleMapTypeV5 extends Struct { - readonly hasher: StorageHasherV5; - readonly key1: Type; - readonly key2: Type; - readonly value: Type; - readonly key2Hasher: StorageHasherV5; -} - -/** @name DoubleMapTypeV6 */ -export interface DoubleMapTypeV6 extends DoubleMapTypeV5 {} - -/** @name DoubleMapTypeV7 */ -export interface DoubleMapTypeV7 extends DoubleMapTypeV6 {} - -/** @name DoubleMapTypeV8 */ -export interface DoubleMapTypeV8 extends DoubleMapTypeV7 {} - /** @name DoubleMapTypeV9 */ -export interface DoubleMapTypeV9 extends DoubleMapTypeV8 {} +export interface DoubleMapTypeV9 extends Struct { + readonly hasher: StorageHasherV9; + readonly key1: Type; + readonly key2: Type; + readonly value: Type; + readonly key2Hasher: StorageHasherV9; +} /** @name ErrorMetadataV10 */ export interface ErrorMetadataV10 extends ErrorMetadataV9 {} @@ -82,28 +46,15 @@ export interface ErrorMetadataV11 extends ErrorMetadataV10 {} /** @name ErrorMetadataV12 */ export interface ErrorMetadataV12 extends ErrorMetadataV11 {} -/** @name ErrorMetadataV8 */ -export interface ErrorMetadataV8 extends Struct { +/** @name ErrorMetadataV9 */ +export interface ErrorMetadataV9 extends Struct { readonly name: Text; readonly documentation: Vec; } -/** @name ErrorMetadataV9 */ -export interface ErrorMetadataV9 extends ErrorMetadataV8 {} - /** @name EventMetadataLatest */ export interface EventMetadataLatest extends EventMetadataV12 {} -/** @name EventMetadataV0 */ -export interface EventMetadataV0 extends Struct { - readonly name: Text; - readonly args: Vec; - readonly documentation: Vec; -} - -/** @name EventMetadataV1 */ -export interface EventMetadataV1 extends EventMetadataV0 {} - /** @name EventMetadataV10 */ export interface EventMetadataV10 extends EventMetadataV9 {} @@ -113,29 +64,12 @@ export interface EventMetadataV11 extends EventMetadataV10 {} /** @name EventMetadataV12 */ export interface EventMetadataV12 extends EventMetadataV11 {} -/** @name EventMetadataV2 */ -export interface EventMetadataV2 extends EventMetadataV1 {} - -/** @name EventMetadataV3 */ -export interface EventMetadataV3 extends EventMetadataV2 {} - -/** @name EventMetadataV4 */ -export interface EventMetadataV4 extends EventMetadataV3 {} - -/** @name EventMetadataV5 */ -export interface EventMetadataV5 extends EventMetadataV4 {} - -/** @name EventMetadataV6 */ -export interface EventMetadataV6 extends EventMetadataV5 {} - -/** @name EventMetadataV7 */ -export interface EventMetadataV7 extends EventMetadataV6 {} - -/** @name EventMetadataV8 */ -export interface EventMetadataV8 extends EventMetadataV7 {} - /** @name EventMetadataV9 */ -export interface EventMetadataV9 extends EventMetadataV8 {} +export interface EventMetadataV9 extends Struct { + readonly name: Text; + readonly args: Vec; + readonly documentation: Vec; +} /** @name ExtrinsicMetadataLatest */ export interface ExtrinsicMetadataLatest extends ExtrinsicMetadataV12 {} @@ -152,15 +86,6 @@ export interface ExtrinsicMetadataV12 extends ExtrinsicMetadataV11 {} /** @name FunctionArgumentMetadataLatest */ export interface FunctionArgumentMetadataLatest extends FunctionArgumentMetadataV12 {} -/** @name FunctionArgumentMetadataV0 */ -export interface FunctionArgumentMetadataV0 extends Struct { - readonly name: Text; - readonly type: Type; -} - -/** @name FunctionArgumentMetadataV1 */ -export interface FunctionArgumentMetadataV1 extends FunctionArgumentMetadataV0 {} - /** @name FunctionArgumentMetadataV10 */ export interface FunctionArgumentMetadataV10 extends FunctionArgumentMetadataV9 {} @@ -170,48 +95,15 @@ export interface FunctionArgumentMetadataV11 extends FunctionArgumentMetadataV10 /** @name FunctionArgumentMetadataV12 */ export interface FunctionArgumentMetadataV12 extends FunctionArgumentMetadataV11 {} -/** @name FunctionArgumentMetadataV2 */ -export interface FunctionArgumentMetadataV2 extends FunctionArgumentMetadataV1 {} - -/** @name FunctionArgumentMetadataV3 */ -export interface FunctionArgumentMetadataV3 extends FunctionArgumentMetadataV2 {} - -/** @name FunctionArgumentMetadataV4 */ -export interface FunctionArgumentMetadataV4 extends FunctionArgumentMetadataV3 {} - -/** @name FunctionArgumentMetadataV5 */ -export interface FunctionArgumentMetadataV5 extends FunctionArgumentMetadataV4 {} - -/** @name FunctionArgumentMetadataV6 */ -export interface FunctionArgumentMetadataV6 extends FunctionArgumentMetadataV5 {} - -/** @name FunctionArgumentMetadataV7 */ -export interface FunctionArgumentMetadataV7 extends FunctionArgumentMetadataV6 {} - -/** @name FunctionArgumentMetadataV8 */ -export interface FunctionArgumentMetadataV8 extends FunctionArgumentMetadataV7 {} - /** @name FunctionArgumentMetadataV9 */ -export interface FunctionArgumentMetadataV9 extends FunctionArgumentMetadataV8 {} +export interface FunctionArgumentMetadataV9 extends Struct { + readonly name: Text; + readonly type: Type; +} /** @name FunctionMetadataLatest */ export interface FunctionMetadataLatest extends FunctionMetadataV12 {} -/** @name FunctionMetadataV0 */ -export interface FunctionMetadataV0 extends Struct { - readonly id: u16; - readonly name: Text; - readonly args: Vec; - readonly documentation: Vec; -} - -/** @name FunctionMetadataV1 */ -export interface FunctionMetadataV1 extends Struct { - readonly name: Text; - readonly args: Vec; - readonly documentation: Vec; -} - /** @name FunctionMetadataV10 */ export interface FunctionMetadataV10 extends FunctionMetadataV9 {} @@ -221,39 +113,16 @@ export interface FunctionMetadataV11 extends FunctionMetadataV10 {} /** @name FunctionMetadataV12 */ export interface FunctionMetadataV12 extends FunctionMetadataV11 {} -/** @name FunctionMetadataV2 */ -export interface FunctionMetadataV2 extends FunctionMetadataV1 {} - -/** @name FunctionMetadataV3 */ -export interface FunctionMetadataV3 extends FunctionMetadataV2 {} - -/** @name FunctionMetadataV4 */ -export interface FunctionMetadataV4 extends FunctionMetadataV3 {} - -/** @name FunctionMetadataV5 */ -export interface FunctionMetadataV5 extends FunctionMetadataV4 {} - -/** @name FunctionMetadataV6 */ -export interface FunctionMetadataV6 extends FunctionMetadataV5 {} - -/** @name FunctionMetadataV7 */ -export interface FunctionMetadataV7 extends FunctionMetadataV6 {} - -/** @name FunctionMetadataV8 */ -export interface FunctionMetadataV8 extends FunctionMetadataV7 {} - /** @name FunctionMetadataV9 */ -export interface FunctionMetadataV9 extends FunctionMetadataV8 {} +export interface FunctionMetadataV9 extends Struct { + readonly name: Text; + readonly args: Vec; + readonly documentation: Vec; +} /** @name MapTypeLatest */ export interface MapTypeLatest extends MapTypeV12 {} -/** @name MapTypeV0 */ -export interface MapTypeV0 extends Struct { - readonly key: Type; - readonly value: Type; -} - /** @name MapTypeV10 */ export interface MapTypeV10 extends Struct { readonly hasher: StorageHasherV10; @@ -273,59 +142,16 @@ export interface MapTypeV11 extends Struct { /** @name MapTypeV12 */ export interface MapTypeV12 extends MapTypeV11 {} -/** @name MapTypeV2 */ -export interface MapTypeV2 extends Struct { - readonly key: Type; - readonly value: Type; - readonly linked: bool; -} - -/** @name MapTypeV3 */ -export interface MapTypeV3 extends MapTypeV2 {} - -/** @name MapTypeV4 */ -export interface MapTypeV4 extends Struct { - readonly hasher: StorageHasherV4; - readonly key: Type; - readonly value: Type; - readonly linked: bool; -} - -/** @name MapTypeV5 */ -export interface MapTypeV5 extends MapTypeV4 {} - -/** @name MapTypeV6 */ -export interface MapTypeV6 extends MapTypeV5 {} - -/** @name MapTypeV7 */ -export interface MapTypeV7 extends MapTypeV6 {} - -/** @name MapTypeV8 */ -export interface MapTypeV8 extends MapTypeV7 {} - /** @name MapTypeV9 */ -export interface MapTypeV9 extends MapTypeV8 {} +export interface MapTypeV9 extends Struct { + readonly hasher: StorageHasherV9; + readonly key: Type; + readonly value: Type; + readonly linked: bool; +} /** @name MetadataAll */ export interface MetadataAll extends Enum { - readonly isV0: boolean; - readonly asV0: MetadataV0; - readonly isV1: boolean; - readonly asV1: MetadataV1; - readonly isV2: boolean; - readonly asV2: MetadataV2; - readonly isV3: boolean; - readonly asV3: MetadataV3; - readonly isV4: boolean; - readonly asV4: MetadataV4; - readonly isV5: boolean; - readonly asV5: MetadataV5; - readonly isV6: boolean; - readonly asV6: MetadataV6; - readonly isV7: boolean; - readonly asV7: MetadataV7; - readonly isV8: boolean; - readonly asV8: MetadataV8; readonly isV9: boolean; readonly asV9: MetadataV9; readonly isV10: boolean; @@ -339,18 +165,6 @@ export interface MetadataAll extends Enum { /** @name MetadataLatest */ export interface MetadataLatest extends MetadataV12 {} -/** @name MetadataV0 */ -export interface MetadataV0 extends Struct { - readonly outerEvent: OuterEventMetadataV0; - readonly modules: Vec; - readonly outerDispatch: OuterDispatchMetadataV0; -} - -/** @name MetadataV1 */ -export interface MetadataV1 extends Struct { - readonly modules: Vec; -} - /** @name MetadataV10 */ export interface MetadataV10 extends Struct { readonly modules: Vec; @@ -368,43 +182,10 @@ export interface MetadataV12 extends Struct { readonly extrinsic: ExtrinsicMetadataV12; } -/** @name MetadataV2 */ -export interface MetadataV2 extends Struct { - readonly modules: Vec; -} - -/** @name MetadataV3 */ -export interface MetadataV3 extends Struct { - readonly modules: Vec; -} - -/** @name MetadataV4 */ -export interface MetadataV4 extends Struct { - readonly modules: Vec; -} - -/** @name MetadataV5 */ -export interface MetadataV5 extends Struct { - readonly modules: Vec; -} - -/** @name MetadataV6 */ -export interface MetadataV6 extends Struct { - readonly modules: Vec; -} - -/** @name MetadataV7 */ -export interface MetadataV7 extends Struct { - readonly modules: Vec; -} - -/** @name MetadataV8 */ -export interface MetadataV8 extends Struct { - readonly modules: Vec; -} - /** @name MetadataV9 */ -export interface MetadataV9 extends MetadataV8 {} +export interface MetadataV9 extends Struct { + readonly modules: Vec; +} /** @name ModuleConstantMetadataLatest */ export interface ModuleConstantMetadataLatest extends ModuleConstantMetadataV12 {} @@ -418,41 +199,17 @@ export interface ModuleConstantMetadataV11 extends ModuleConstantMetadataV10 {} /** @name ModuleConstantMetadataV12 */ export interface ModuleConstantMetadataV12 extends ModuleConstantMetadataV11 {} -/** @name ModuleConstantMetadataV6 */ -export interface ModuleConstantMetadataV6 extends Struct { +/** @name ModuleConstantMetadataV9 */ +export interface ModuleConstantMetadataV9 extends Struct { readonly name: Text; readonly type: Type; readonly value: Bytes; readonly documentation: Vec; } -/** @name ModuleConstantMetadataV7 */ -export interface ModuleConstantMetadataV7 extends ModuleConstantMetadataV6 {} - -/** @name ModuleConstantMetadataV8 */ -export interface ModuleConstantMetadataV8 extends ModuleConstantMetadataV7 {} - -/** @name ModuleConstantMetadataV9 */ -export interface ModuleConstantMetadataV9 extends ModuleConstantMetadataV8 {} - /** @name ModuleMetadataLatest */ export interface ModuleMetadataLatest extends ModuleMetadataV12 {} -/** @name ModuleMetadataV0 */ -export interface ModuleMetadataV0 extends Struct { - readonly name: Text; - readonly call: CallMetadataV0; -} - -/** @name ModuleMetadataV1 */ -export interface ModuleMetadataV1 extends Struct { - readonly name: Text; - readonly prefix: Text; - readonly storage: Option>; - readonly calls: Option>; - readonly events: Option>; -} - /** @name ModuleMetadataV10 */ export interface ModuleMetadataV10 extends Struct { readonly name: Text; @@ -484,143 +241,14 @@ export interface ModuleMetadataV12 extends Struct { readonly index: u8; } -/** @name ModuleMetadataV2 */ -export interface ModuleMetadataV2 extends Struct { - readonly name: Text; - readonly prefix: Text; - readonly storage: Option>; - readonly calls: Option>; - readonly events: Option>; -} - -/** @name ModuleMetadataV3 */ -export interface ModuleMetadataV3 extends Struct { - readonly name: Text; - readonly prefix: Text; - readonly storage: Option>; - readonly calls: Option>; - readonly events: Option>; -} - -/** @name ModuleMetadataV4 */ -export interface ModuleMetadataV4 extends Struct { - readonly name: Text; - readonly prefix: Text; - readonly storage: Option>; - readonly calls: Option>; - readonly events: Option>; -} - -/** @name ModuleMetadataV5 */ -export interface ModuleMetadataV5 extends Struct { - readonly name: Text; - readonly prefix: Text; - readonly storage: Option>; - readonly calls: Option>; - readonly events: Option>; -} - -/** @name ModuleMetadataV6 */ -export interface ModuleMetadataV6 extends Struct { - readonly name: Text; - readonly prefix: Text; - readonly storage: Option>; - readonly calls: Option>; - readonly events: Option>; - readonly constants: Vec; -} - -/** @name ModuleMetadataV7 */ -export interface ModuleMetadataV7 extends Struct { - readonly name: Text; - readonly storage: Option; - readonly calls: Option>; - readonly events: Option>; - readonly constants: Vec; -} - -/** @name ModuleMetadataV8 */ -export interface ModuleMetadataV8 extends Struct { - readonly name: Text; - readonly storage: Option; - readonly calls: Option>; - readonly events: Option>; - readonly constants: Vec; - readonly errors: Vec; -} - /** @name ModuleMetadataV9 */ -export interface ModuleMetadataV9 extends ModuleMetadataV8 {} - -/** @name OuterDispatchCallV0 */ -export interface OuterDispatchCallV0 extends Struct { +export interface ModuleMetadataV9 extends Struct { readonly name: Text; - readonly prefix: Text; - readonly index: u16; -} - -/** @name OuterDispatchMetadataV0 */ -export interface OuterDispatchMetadataV0 extends Struct { - readonly name: Text; - readonly calls: Vec; -} - -/** @name OuterEventEventMetadataEventsV0 */ -export interface OuterEventEventMetadataEventsV0 extends Vec {} - -/** @name OuterEventEventMetadataV0 */ -export interface OuterEventEventMetadataV0 extends ITuple<[Text, OuterEventEventMetadataEventsV0]> {} - -/** @name OuterEventMetadataV0 */ -export interface OuterEventMetadataV0 extends Struct { - readonly name: Text; - readonly events: Vec; -} - -/** @name PlainTypeLatest */ -export interface PlainTypeLatest extends PlainTypeV12 {} - -/** @name PlainTypeV0 */ -export interface PlainTypeV0 extends Type {} - -/** @name PlainTypeV10 */ -export interface PlainTypeV10 extends Type {} - -/** @name PlainTypeV11 */ -export interface PlainTypeV11 extends Type {} - -/** @name PlainTypeV12 */ -export interface PlainTypeV12 extends Type {} - -/** @name PlainTypeV2 */ -export interface PlainTypeV2 extends Type {} - -/** @name PlainTypeV3 */ -export interface PlainTypeV3 extends Type {} - -/** @name PlainTypeV4 */ -export interface PlainTypeV4 extends Type {} - -/** @name PlainTypeV5 */ -export interface PlainTypeV5 extends Type {} - -/** @name PlainTypeV6 */ -export interface PlainTypeV6 extends Type {} - -/** @name PlainTypeV7 */ -export interface PlainTypeV7 extends Type {} - -/** @name PlainTypeV8 */ -export interface PlainTypeV8 extends Type {} - -/** @name PlainTypeV9 */ -export interface PlainTypeV9 extends Type {} - -/** @name RuntimeModuleMetadataV0 */ -export interface RuntimeModuleMetadataV0 extends Struct { - readonly prefix: Text; - readonly module: ModuleMetadataV0; - readonly storage: Option; + readonly storage: Option; + readonly calls: Option>; + readonly events: Option>; + readonly constants: Vec; + readonly errors: Vec; } /** @name StorageEntryMetadataLatest */ @@ -647,17 +275,14 @@ export interface StorageEntryMetadataV11 extends Struct { /** @name StorageEntryMetadataV12 */ export interface StorageEntryMetadataV12 extends StorageEntryMetadataV11 {} -/** @name StorageEntryMetadataV6 */ -export interface StorageEntryMetadataV6 extends StorageFunctionMetadataV5 {} - -/** @name StorageEntryMetadataV7 */ -export interface StorageEntryMetadataV7 extends StorageEntryMetadataV6 {} - -/** @name StorageEntryMetadataV8 */ -export interface StorageEntryMetadataV8 extends StorageEntryMetadataV7 {} - /** @name StorageEntryMetadataV9 */ -export interface StorageEntryMetadataV9 extends StorageEntryMetadataV8 {} +export interface StorageEntryMetadataV9 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV9; + readonly type: StorageEntryTypeV9; + readonly fallback: Bytes; + readonly documentation: Vec; +} /** @name StorageEntryModifierLatest */ export interface StorageEntryModifierLatest extends StorageEntryModifierV12 {} @@ -671,17 +296,12 @@ export interface StorageEntryModifierV11 extends StorageEntryModifierV10 {} /** @name StorageEntryModifierV12 */ export interface StorageEntryModifierV12 extends StorageEntryModifierV11 {} -/** @name StorageEntryModifierV6 */ -export interface StorageEntryModifierV6 extends StorageFunctionModifierV5 {} - -/** @name StorageEntryModifierV7 */ -export interface StorageEntryModifierV7 extends StorageEntryModifierV6 {} - -/** @name StorageEntryModifierV8 */ -export interface StorageEntryModifierV8 extends StorageEntryModifierV7 {} - /** @name StorageEntryModifierV9 */ -export interface StorageEntryModifierV9 extends StorageEntryModifierV8 {} +export interface StorageEntryModifierV9 extends Enum { + readonly isOptional: boolean; + readonly isDefault: boolean; + readonly isRequired: boolean; +} /** @name StorageEntryTypeLatest */ export interface StorageEntryTypeLatest extends StorageEntryTypeV12 {} @@ -689,7 +309,7 @@ export interface StorageEntryTypeLatest extends StorageEntryTypeV12 {} /** @name StorageEntryTypeV10 */ export interface StorageEntryTypeV10 extends Enum { readonly isPlain: boolean; - readonly asPlain: PlainTypeV10; + readonly asPlain: Type; readonly isMap: boolean; readonly asMap: MapTypeV10; readonly isDoubleMap: boolean; @@ -699,7 +319,7 @@ export interface StorageEntryTypeV10 extends Enum { /** @name StorageEntryTypeV11 */ export interface StorageEntryTypeV11 extends Enum { readonly isPlain: boolean; - readonly asPlain: PlainTypeV11; + readonly asPlain: Type; readonly isMap: boolean; readonly asMap: MapTypeV11; readonly isDoubleMap: boolean; @@ -709,135 +329,14 @@ export interface StorageEntryTypeV11 extends Enum { /** @name StorageEntryTypeV12 */ export interface StorageEntryTypeV12 extends StorageEntryTypeV11 {} -/** @name StorageEntryTypeV6 */ -export interface StorageEntryTypeV6 extends StorageFunctionTypeV5 {} - -/** @name StorageEntryTypeV7 */ -export interface StorageEntryTypeV7 extends StorageEntryTypeV6 {} - -/** @name StorageEntryTypeV8 */ -export interface StorageEntryTypeV8 extends StorageEntryTypeV7 {} - /** @name StorageEntryTypeV9 */ -export interface StorageEntryTypeV9 extends StorageEntryTypeV8 {} - -/** @name StorageFunctionMetadataV0 */ -export interface StorageFunctionMetadataV0 extends Struct { - readonly name: Text; - readonly modifier: StorageFunctionModifierV0; - readonly type: StorageFunctionTypeV0; - readonly fallback: Bytes; - readonly documentation: Vec; -} - -/** @name StorageFunctionMetadataV1 */ -export interface StorageFunctionMetadataV1 extends StorageFunctionMetadataV0 {} - -/** @name StorageFunctionMetadataV2 */ -export interface StorageFunctionMetadataV2 extends Struct { - readonly name: Text; - readonly modifier: StorageFunctionModifierV2; - readonly type: StorageFunctionTypeV2; - readonly fallback: Bytes; - readonly documentation: Vec; -} - -/** @name StorageFunctionMetadataV3 */ -export interface StorageFunctionMetadataV3 extends Struct { - readonly name: Text; - readonly modifier: StorageFunctionModifierV3; - readonly type: StorageFunctionTypeV3; - readonly fallback: Bytes; - readonly documentation: Vec; -} - -/** @name StorageFunctionMetadataV4 */ -export interface StorageFunctionMetadataV4 extends Struct { - readonly name: Text; - readonly modifier: StorageFunctionModifierV4; - readonly type: StorageFunctionTypeV4; - readonly fallback: Bytes; - readonly documentation: Vec; -} - -/** @name StorageFunctionMetadataV5 */ -export interface StorageFunctionMetadataV5 extends Struct { - readonly name: Text; - readonly modifier: StorageFunctionModifierV5; - readonly type: StorageFunctionTypeV5; - readonly fallback: Bytes; - readonly documentation: Vec; -} - -/** @name StorageFunctionModifierV0 */ -export interface StorageFunctionModifierV0 extends Enum { - readonly isOptional: boolean; - readonly isDefault: boolean; - readonly isRequired: boolean; -} - -/** @name StorageFunctionModifierV1 */ -export interface StorageFunctionModifierV1 extends StorageFunctionModifierV0 {} - -/** @name StorageFunctionModifierV2 */ -export interface StorageFunctionModifierV2 extends StorageFunctionModifierV1 {} - -/** @name StorageFunctionModifierV3 */ -export interface StorageFunctionModifierV3 extends StorageFunctionModifierV2 {} - -/** @name StorageFunctionModifierV4 */ -export interface StorageFunctionModifierV4 extends StorageFunctionModifierV3 {} - -/** @name StorageFunctionModifierV5 */ -export interface StorageFunctionModifierV5 extends StorageFunctionModifierV4 {} - -/** @name StorageFunctionTypeV0 */ -export interface StorageFunctionTypeV0 extends Enum { +export interface StorageEntryTypeV9 extends Enum { readonly isPlain: boolean; - readonly asPlain: PlainTypeV0; + readonly asPlain: Type; readonly isMap: boolean; - readonly asMap: MapTypeV0; -} - -/** @name StorageFunctionTypeV1 */ -export interface StorageFunctionTypeV1 extends StorageFunctionTypeV0 {} - -/** @name StorageFunctionTypeV2 */ -export interface StorageFunctionTypeV2 extends Enum { - readonly isPlain: boolean; - readonly asPlain: PlainTypeV2; - readonly isMap: boolean; - readonly asMap: MapTypeV2; -} - -/** @name StorageFunctionTypeV3 */ -export interface StorageFunctionTypeV3 extends Enum { - readonly isPlain: boolean; - readonly asPlain: PlainTypeV3; - readonly isMap: boolean; - readonly asMap: MapTypeV3; + readonly asMap: MapTypeV9; readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV3; -} - -/** @name StorageFunctionTypeV4 */ -export interface StorageFunctionTypeV4 extends Enum { - readonly isPlain: boolean; - readonly asPlain: PlainTypeV4; - readonly isMap: boolean; - readonly asMap: MapTypeV4; - readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV4; -} - -/** @name StorageFunctionTypeV5 */ -export interface StorageFunctionTypeV5 extends Enum { - readonly isPlain: boolean; - readonly asPlain: PlainTypeV5; - readonly isMap: boolean; - readonly asMap: MapTypeV5; - readonly isDoubleMap: boolean; - readonly asDoubleMap: DoubleMapTypeV5; + readonly asDoubleMap: DoubleMapTypeV9; } /** @name StorageHasher */ @@ -867,8 +366,8 @@ export interface StorageHasherV11 extends Enum { /** @name StorageHasherV12 */ export interface StorageHasherV12 extends StorageHasherV11 {} -/** @name StorageHasherV4 */ -export interface StorageHasherV4 extends Enum { +/** @name StorageHasherV9 */ +export interface StorageHasherV9 extends Enum { readonly isBlake2128: boolean; readonly isBlake2256: boolean; readonly isTwox128: boolean; @@ -876,30 +375,9 @@ export interface StorageHasherV4 extends Enum { readonly isTwox64Concat: boolean; } -/** @name StorageHasherV5 */ -export interface StorageHasherV5 extends StorageHasherV4 {} - -/** @name StorageHasherV6 */ -export interface StorageHasherV6 extends StorageHasherV5 {} - -/** @name StorageHasherV7 */ -export interface StorageHasherV7 extends StorageHasherV6 {} - -/** @name StorageHasherV8 */ -export interface StorageHasherV8 extends StorageHasherV7 {} - -/** @name StorageHasherV9 */ -export interface StorageHasherV9 extends StorageHasherV8 {} - /** @name StorageMetadataLatest */ export interface StorageMetadataLatest extends StorageMetadataV12 {} -/** @name StorageMetadataV0 */ -export interface StorageMetadataV0 extends Struct { - readonly prefix: Text; - readonly functions: Vec; -} - /** @name StorageMetadataV10 */ export interface StorageMetadataV10 extends Struct { readonly prefix: Text; @@ -915,16 +393,10 @@ export interface StorageMetadataV11 extends Struct { /** @name StorageMetadataV12 */ export interface StorageMetadataV12 extends StorageMetadataV11 {} -/** @name StorageMetadataV7 */ -export interface StorageMetadataV7 extends Struct { +/** @name StorageMetadataV9 */ +export interface StorageMetadataV9 extends Struct { readonly prefix: Text; - readonly items: Vec; + readonly items: Vec; } -/** @name StorageMetadataV8 */ -export interface StorageMetadataV8 extends StorageMetadataV7 {} - -/** @name StorageMetadataV9 */ -export interface StorageMetadataV9 extends StorageMetadataV8 {} - export type PHANTOM_METADATA = 'metadata'; diff --git a/packages/types/src/interfaces/system/EventRecord.spec.ts b/packages/types/src/interfaces/system/EventRecord.spec.ts index 07903b9ddc..f1e7ed822e 100644 --- a/packages/types/src/interfaces/system/EventRecord.spec.ts +++ b/packages/types/src/interfaces/system/EventRecord.spec.ts @@ -5,7 +5,6 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import Metadata from '@polkadot/metadata/Metadata'; -import rpcMetadataV1 from '@polkadot/metadata/Metadata/v1/static'; import rpcMetadata from '@polkadot/metadata/Metadata/static'; import { TypeRegistry } from '../../create'; @@ -15,21 +14,6 @@ import json3 from '../../json/EventRecord.003.json'; describe('EventRecord', (): void => { const registry = new TypeRegistry(); - describe('EventRecordTo76', (): void => { - beforeEach((): void => { - const metadata = new Metadata(registry, rpcMetadataV1); - - registry.setMetadata(metadata); - }); - - it('decodes correctly', (): void => { - const records = registry.createType('Vec', json1.params.result.changes[0][1]) as any; - const er = records[0]; - - expect(er.phase.type).toEqual('ApplyExtrinsic'); - }); - }); - describe('EventRecord (current)', (): void => { beforeEach((): void => { const metadata = new Metadata(registry, rpcMetadata); diff --git a/packages/types/src/interfaces/system/definitions.ts b/packages/types/src/interfaces/system/definitions.ts index 878ba86b74..b9df2a9acf 100644 --- a/packages/types/src/interfaces/system/definitions.ts +++ b/packages/types/src/interfaces/system/definitions.ts @@ -178,10 +178,6 @@ export default { event: 'Event', topics: 'Vec' }, - EventRecordTo76: { - phase: 'Phase', - event: 'Event' - }, Health: { peers: 'u64', isSyncing: 'bool', diff --git a/packages/types/src/interfaces/system/types.ts b/packages/types/src/interfaces/system/types.ts index c9c1975b7c..84d77ba444 100644 --- a/packages/types/src/interfaces/system/types.ts +++ b/packages/types/src/interfaces/system/types.ts @@ -133,12 +133,6 @@ export interface EventRecord extends Struct { readonly topics: Vec; } -/** @name EventRecordTo76 */ -export interface EventRecordTo76 extends Struct { - readonly phase: Phase; - readonly event: Event; -} - /** @name Health */ export interface Health extends Struct { readonly peers: u64; diff --git a/packages/types/src/primitive/StorageKey.spec.ts b/packages/types/src/primitive/StorageKey.spec.ts index 8d89fdda51..a81e8dda2d 100644 --- a/packages/types/src/primitive/StorageKey.spec.ts +++ b/packages/types/src/primitive/StorageKey.spec.ts @@ -3,14 +3,7 @@ import Decorated from '@polkadot/metadata/Decorated'; import Metadata from '@polkadot/metadata/Metadata'; -import rpcDataV3 from '@polkadot/metadata/Metadata/v3/static'; -import rpcDataV4 from '@polkadot/metadata/Metadata/v4/static'; -import rpcDataV5 from '@polkadot/metadata/Metadata/v5/static'; -import rpcDataV6 from '@polkadot/metadata/Metadata/v6/static'; -import rpcDataV7 from '@polkadot/metadata/Metadata/v7/static'; -import rpcDataV8 from '@polkadot/metadata/Metadata/v8/static'; import rpcDataV11 from '@polkadot/metadata/Metadata/v11/static'; -import { hexToU8a } from '@polkadot/util'; import { TypeRegistry } from '../create'; import StorageKey from './StorageKey'; @@ -18,244 +11,6 @@ import StorageKey from './StorageKey'; describe('StorageKey', (): void => { const registry = new TypeRegistry(); - describe('with MetadataV3 (uses xxHash by default)', (): void => { - const metadata = new Metadata(registry, rpcDataV3); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should correctly get Alice\'s freeBalance storage key (hex)', (): void => { - expect( - new StorageKey( - registry, - decorated - .query - .balances - .freeBalance('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY') - ) - .toHex() - ).toBe('0xc99f5446efa57788f39ab529311f4550'); // FIXME OK this should be length-prefixed in reality - }); - - it('should correctly get Alice\'s freeBalance storage key (u8a)', (): void => { - expect( - new StorageKey( - registry, - decorated - .query - .balances - .freeBalance('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY') - ) - .toU8a() - ).toEqual( - // length prefix attached - hexToU8a('0x40c99f5446efa57788f39ab529311f4550') - ); - }); - }); - - describe('with MetadataV4 (uses xxHash by default)', (): void => { - const metadata = new Metadata(registry, rpcDataV4); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should correctly get Alice\'s freeBalance storage key (hex)', (): void => { - expect( - new StorageKey( - registry, - decorated - .query - .balances - .freeBalance('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY') - ) - .toHex() - ).toBe('0x7f864e18e3dd8b58386310d2fe0919eef27c6e558564b7f67f22d99d20f587bb'); - }); - - it('should correctly get Alice\'s freeBalance storage key (u8a)', (): void => { - expect( - new StorageKey( - registry, - decorated - .query - .balances - .freeBalance('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY') - ) - .toU8a() - ).toEqual( - // length prefix attached - Uint8Array.from([ - 128, 127, 134, 78, 24, 227, 221, 139, 88, 56, 99, 16, 210, 254, 9, 25, 238, 242, 124, 110, 85, 133, 100, 183, 246, 127, 34, 217, 157, 32, 245, 135, 187 - ]) - ); - }); - - it('should correctly get the EventTopics double map storage key (hex)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toHex() - ).toBe('0x3007c9ff7027f65900abcdfca4fdb107ead47e2a9e3558e01b691b0f4a5f8518d487326614f066416308bf6aa4e5041d1949928e4b26ede98e3cebb36a3b1726'); - }); - - it('should correctly get the EventTopics double map storage key (u8a)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toU8a() - ).toEqual(Uint8Array.from([1, 1, 48, 7, 201, 255, 112, 39, 246, 89, 0, 171, 205, 252, 164, 253, 177, 7, 234, 212, 126, 42, 158, 53, 88, 224, 27, 105, 27, 15, 74, 95, 133, 24, 212, 135, 50, 102, 20, 240, 102, 65, 99, 8, 191, 106, 164, 229, 4, 29, 25, 73, 146, 142, 75, 38, 237, 233, 142, 60, 235, 179, 106, 59, 23, 38])); - }); - }); - - describe('with MetadataV5', (): void => { - const metadata = new Metadata(registry, rpcDataV5); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should correctly get the EventTopics double map storage key (hex)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toHex() - ).toBe('0x3007c9ff7027f65900abcdfca4fdb107ead47e2a9e3558e01b691b0f4a5f8518d487326614f066416308bf6aa4e5041d1949928e4b26ede98e3cebb36a3b1726'); - }); - - it('should correctly get the EventTopics double map storage key (u8a)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toU8a() - ).toEqual(Uint8Array.from([1, 1, 48, 7, 201, 255, 112, 39, 246, 89, 0, 171, 205, 252, 164, 253, 177, 7, 234, 212, 126, 42, 158, 53, 88, 224, 27, 105, 27, 15, 74, 95, 133, 24, 212, 135, 50, 102, 20, 240, 102, 65, 99, 8, 191, 106, 164, 229, 4, 29, 25, 73, 146, 142, 75, 38, 237, 233, 142, 60, 235, 179, 106, 59, 23, 38])); - }); - }); - - describe('with MetadataV6', (): void => { - const metadata = new Metadata(registry, rpcDataV6); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should correctly get the EventTopics double map storage key (hex)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toHex() - ).toBe('0x3007c9ff7027f65900abcdfca4fdb107ead47e2a9e3558e01b691b0f4a5f8518d487326614f066416308bf6aa4e5041d1949928e4b26ede98e3cebb36a3b1726'); - }); - - it('should correctly get the EventTopics double map storage key (u8a)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toU8a() - ).toEqual(Uint8Array.from([1, 1, 48, 7, 201, 255, 112, 39, 246, 89, 0, 171, 205, 252, 164, 253, 177, 7, 234, 212, 126, 42, 158, 53, 88, 224, 27, 105, 27, 15, 74, 95, 133, 24, 212, 135, 50, 102, 20, 240, 102, 65, 99, 8, 191, 106, 164, 229, 4, 29, 25, 73, 146, 142, 75, 38, 237, 233, 142, 60, 235, 179, 106, 59, 23, 38])); - }); - }); - - describe('with MetadataV7', (): void => { - const metadata = new Metadata(registry, rpcDataV7); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should correctly get the EventTopics double map storage key (hex)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toHex() - ).toBe('0x3007c9ff7027f65900abcdfca4fdb107ead47e2a9e3558e01b691b0f4a5f8518d487326614f066416308bf6aa4e5041d1949928e4b26ede98e3cebb36a3b1726'); - }); - - it('should correctly get the EventTopics double map storage key (u8a)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toU8a() - ).toEqual(Uint8Array.from([1, 1, 48, 7, 201, 255, 112, 39, 246, 89, 0, 171, 205, 252, 164, 253, 177, 7, 234, 212, 126, 42, 158, 53, 88, 224, 27, 105, 27, 15, 74, 95, 133, 24, 212, 135, 50, 102, 20, 240, 102, 65, 99, 8, 191, 106, 164, 229, 4, 29, 25, 73, 146, 142, 75, 38, 237, 233, 142, 60, 235, 179, 106, 59, 23, 38])); - }); - }); - - describe('with MetadataV8', (): void => { - const metadata = new Metadata(registry, rpcDataV8); - - registry.setMetadata(metadata); - - const decorated = new Decorated(registry, metadata); - - it('should correctly get the EventTopics double map storage key (hex)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toHex() - ).toBe('0x3007c9ff7027f65900abcdfca4fdb107ead47e2a9e3558e01b691b0f4a5f8518d487326614f066416308bf6aa4e5041d1949928e4b26ede98e3cebb36a3b1726'); - }); - - it('should correctly get the EventTopics double map storage key (u8a)', (): void => { - expect( - new StorageKey(registry, [ - decorated - .query - .system - .eventTopics, - ['any', [1, 2, 3]] - ]) - .toU8a() - ).toEqual(Uint8Array.from([1, 1, 48, 7, 201, 255, 112, 39, 246, 89, 0, 171, 205, 252, 164, 253, 177, 7, 234, 212, 126, 42, 158, 53, 88, 224, 27, 105, 27, 15, 74, 95, 133, 24, 212, 135, 50, 102, 20, 240, 102, 65, 99, 8, 191, 106, 164, 229, 4, 29, 25, 73, 146, 142, 75, 38, 237, 233, 142, 60, 235, 179, 106, 59, 23, 38])); - }); - }); - describe('with MetadataV11', (): void => { const metadata = new Metadata(registry, rpcDataV11);